pwn题目搭建过程中glibc出现问题的解决方案

news2024/9/24 7:16:23

前言:

在做pwn的堆题时,会遇到不同版本的glibc。为了更好地与远程环境对应,我们可以通过patchelf和glibc-all-in-one来更换程序动态加载时的glibc。简单介绍一下,glibc-all-in-one用来下载需要的glibc包,然后用petchelf进行更换操作。

1、安装patchelf:

git clone https://github.com/NixOS/patchelf.git
cd patchelf
./bootstrap.sh
./configure
make
make check
sudo make install

或者:

安装命令: sudo apt install patchelf

检查一下: patchelf -h

第一种命令可能存在无法访问的情况,可以使用第二种方法。 

 2、下载glibc-all-in-one

 github克隆: git clone https://github.com/matrix1001/glibc-all-in-one

 进入该文件夹:更新glibc版本信息,文件夹下会出现list和old_list两个文件

错误处理: 再该过程中会遇到文件无法执行的问题,原因是没有安装指定版本的python

解决方法:编辑该文件,将文件的第一行改为你当下python的版本,我这里改为python3

使用命令:which python3 查询python3的文件的绝对路径,之后进行更改。(这里将python3改为相应的版本)

3、下载pwn题目源文件执行需要的glibc:

由于我们需要2.34的版本,所以查看old_list文件

cat old_list

 

下载list文件中的版本 使用命令:

./dawnload [版本号]

下载old_list里面对应的glibc,要用

./download_old 2.34-0ubuntu3_amd64

 4、更换glibc

更换链接器:
patchelf --set-interpreter /root/glibc-all-in-one/libs/2.34-0ubuntu3_amd64/ld-linux-x86-64.so.2 ./pwns

更换glibc搜索路径:
patchelf --set-rpath /root/glibc-all-in-one/libs/2.34-0ubuntu3_amd64 ./pwns

路径和可执行文件根据实际情况进行更改。错误解决: 在执行更换链接器命令时要在源程序文件夹下,否则无法找到该文件

执行命令:检查安装成功

ldd [源程序文件名]

另一种方法:

更换链接器+直接更换动态库

更换链接器命令:
patchelf --set-interpreter /root/glibc-all-in-one/libs/2.34-0ubuntu3_amd64/ld-linux-x86-64.so.2 ./pwns

更换动态库:(参数libc.so.6似乎是固定的)
patchelf --replace-needed libc.so.6 /root/glibc-all-in-one/libs/2.34-0ubuntu3_amd64 ./pwns

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2138615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Git】初识Git

本篇文章的环境是在 Ubuntu/Linux 环境下编写的 文章目录 版本控制器Git 基本操作安装 Git创建 Git 本地仓库配置 Git认识工作区、暂存区、版本库添加文件修改文件版本回退撤销修改删除文件 版本控制器 在日常工作和学习中,老板/老师要求我们修改文档,…

Live800:客户服务新纪元,从响应到主动关怀的转型之路

在当今这个快速变化的商业环境中,客户服务已不再是简单的售后响应或问题解决的环节,而是企业赢得市场、构建品牌忠诚度、实现可持续增长的核心驱动力。随着技术的飞速发展和消费者需求的日益多样化,客户服务正步入一个新的纪元——从传统的被…

电脑上如何多开微信软件(多个微信同时使用)

想登录几个就下面这种文件里,复制几行即可: 创建的是以 .bat 文件结尾的txt文件(先创建一个txt文本文档,等写好了命令保存后,再把文件的后缀名改为: .bat )再保存即可。然后,右键以管理员运行&a…

电子废物检测回收系统源码分享

电子废物检测回收检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

mysql 8.0 日期维度表生成(可运行)

mysql 8.0 日期维度表生成(可运行) 文章目录 mysql 8.0 日期维度表生成(可运行)日期维度表左右日期维度表生成技术点 日期维度表左右 在数据仓库(Data Warehouse)中,日期维度表(Dat…

离谱碾压!奇安信中标:高出第二名近70分!

2024年08月09日,广东省政务服务和数据管理局,近日发布了网络安全第三方服务(2024年)项目之关基检查及重要政务应用安全检查服务招标公告! 预算金额:2,896,200.00元,其中安全检查服务包&#xf…

Pytorch+Anaconda+Pycharm+Python

0 python知识 0.1 os库常见用法 os 库提供了许多用于操作操作系统功能的函数。常见用法包括: 文件和目录操作: os.listdir(path):列出指定路径下的所有文件和目录。os.mkdir(path):创建新目录。os.remove(path):删除…

清理C盘缓存,删除电脑缓存指令是什么

在处理计算机系统的C盘缓存清理任务时,需要谨慎操作以确保系统的稳定性和数据的安全性。通常,Windows操作系统中并没有直接的“一键清理C盘缓存”的单一命令,因为缓存文件分散存储于多个位置,并且有些缓存对于系统性能至关重要&am…

【MySQL】EXPLAIN(执行计划)关键字是什么?

简介: explain是一个强大的 SQL 命令,用于分析和优化查询性能。通过查看数据库执行计划,我们可以理解查询是如何被处理的,包括表的访问顺序、使用的索引、连接类型等。这对于找到潜在的性能瓶颈非常重要。 目录 一、基本含义 二…

四、链表————相关概念详解

链表 前言一、链表是什么?二、链表的类型2.1 单向链表2.2 环形链表2.3 双向链表 三、链表中常用操作 (以单向列表为例)3.1 初始化链表3.2 判断链表是否为空3.3 获取链表长度3.4 插入节点3.4.1 链表头部添加节点3.4.2 链表尾部添加节点3.4.3 指定位置添加节点 3.5 删…

大数据处理技术:分布式文件系统HDFS

目录 1 实验名称: 2 实验目的 3 实验内容 4 实验原理 5 实验过程或源代码 5.1 HDFS的基本操作 5.2 HDFS-JAVA接口之读取文件 5.3 HDFS-JAVA接口之上传文件 5.4 HDFS-JAVA接口之删除文件 6 实验结果 6.1 HDFS的基本操作 6.2 HDFS-JAVA接口之读取文件 6.…

精通推荐算法30:行为序列建模之SIM— 基于检索建模长周期行为序列

1 行为序列建模总体架构 2 SIM提出的背景 MIMN第一次真正实现了长周期行为序列的建模,并取得了非常不错的业务效果。但受困于离线建模,它没办法实现用户行为序列和候选物品的交叉。同时采用一个固定大小的记忆网络来压缩超长序列,存在网络容…

redis-shake v4全量增量同步redis数据

1 概述 RedisShake是一个用于处理和迁移 Redis 数据的工具,github地址是https://github.com/tair-opensource/RedisShake。它提供以下特性: 1)Redis 兼容性: RedisShake 兼容从 2.8 到 7.2 的 Redis 版本,并支持各种部…

Spring Event 业务解耦神器(泛型喔!)

一.前言 又与我一直负责Cocos Creator的开发,我发现在TS领域,是可以自定义事件(有兴趣的大宝可以坐飞机直达:[CocosCreator]自定义事件(订阅/发布)管理器),这样做有什么好处呢?回答:解耦! 于是乎,我就觉得前端能干的事,后端也一样能干!当然,如果后端是TS或JS写的,比如nodeJS,…

Cyber Weekly #24

赛博新闻 1、OpenAI发布最强模型o1 本周四(9月12日),OpenAI宣布推出OpenAIo1系列模型,标志着AI推理能力的新高度。o1系列包括性能强大的o1以及经济高效的o1-mini,适用于不同复杂度的推理任务。新模型在科学、编码、数…

自动排课管理系统(源代码+论文+开题报告)

一、题目摘要 题目简要说明: 选排课系统功能的设计上,选排课系统可以分为登录、排课和选课3个子系统。登录子系统区分排课者(也即系统的管理者)、教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的功…

Java 入门指南:JVM(Java虚拟机)——类的生命周期与加载过程

文章目录 类的生命周期类加载过程1)载入(Loading)2)验证(Verification)文件格式验证符号引用验证 3)准备(Preparation)4)解析(Resolution&#xf…

FreeRTOS—任务通知

一,概念介绍 队列、信号量、事件组等IPC技术都需要创建一个中间对象进程之间通过这些中间对象进行通讯或同步。创建对象就需要分配内存,占用一定内存。 二,任务通知的特点: 一个任务或ISR向另外一个指定的任务发送通知&#xff0c…

2024年最新版Vue3学习笔记

本篇文章是记录来自尚硅谷禹神2023年课程的学习笔记,不得不说禹神讲的是真的超级棒! 文章目录 创建Vue3工程main.ts文件解析初始化项目写一个简单的效果 Vue3核心语法setup函数setup和选项式的区别setup语法糖指定组件名称 响应式数据ref函数定义基本类…

C#学习系列之Gmap地图界面上的实时绘制问题

C#学习系列之Gmap地图界面上的实时绘制问题 前言总结 前言 在地图控件上增加绘制不规则图形,在之前的经验来看, System.InvalidOperationException:“无法使用 DependencyObject,它属于其父 Freezable 之外的其他线程。” 其实就是ui线程中…