patchelf 和 glibc-all-in-one

文章讲述了作者因栈溢出问题导致Ubuntu16系统崩溃,从而开始学习patchelf工具来修改ELF文件属性,包括动态链接库和动态链接器。同时提到了在安装Python过程中遇到的SSL证书问题。作者还介绍了glibc-all-in-one项目,这是一个方便的glibc二进制、调试文件下载和源码自动构建工具。
摘要由CSDN通过智能技术生成

小白垃圾笔记。不建议阅读。

为什么突然学这个呢?

因为因为因为一个栈溢出题,把我的ubuntu16搞崩了。具体是什么原因呢。

我很菜,我不知道pip是干啥的,之前装pwntools都是直接粘贴命令。然而这次,ubuntu16的python其实有一个高版本的带pwntools库的pyton3.10.但是呢我一不小心搞丢了。

于是乎我去装python结果遇到了很多问题,现在想想,是没有ssl证书。去网上搜了下没有解决。好吧,果断下卡里。ubuntu16太老了。之前有师傅说做哪个题用哪个版本的ubuntu。

我--没有坚持下去。我还是下了卡里。

1.patchelf

首先说下patchelf  它可以用于改elf文件属性的,可以改很多东西。比如动态链接库,动态链接器。

具体的可以去看这个

GitHub - NixOS/patchelf: A small utility to modify the dynamic linker and RPATH of ELF executables

其实没有学太明白。

先来说下连接器和链接库吧。我理解的就是连接器是用来链接程序的,他链接的时候会去找链接库。

chat这样说:

 

首先是更改libc链接库的指令

patchelf --set-interpreter 链接器路径   所要设置的文件的路径。 

 他会更改动态链接器的路径:

ldd用于查看文件加载的属性。例如动态链接库,和动态链接器的路径

ldd

  1. linux-gate.so.1是一个特殊的共享对象,它是Linux内核提供给用户空间程序进行系统调用的接口。

  2. libc.so.6是链接到程序的C库(GNU C Library)。它提供了C编程所需的基本功能和标准库函数。第二行=>后边的路径就是动态链接库的路径。做libc题目的时候就写这个。

  3. 第三行是动态链接库的路径。

至于更改动态连接库的指令,我用着好像不是很那啥。

没办法谁让咱菜呢。

 2.glibc-all-in-one

还有一个是glibc-all-in-one

也是从github下载。

GitHub - matrix1001/glibc-all-in-one: 🎁A convenient glibc binary and debug file downloader and source code auto builder

这个师傅写的博客也挺好的。sudo apt-get install zstd

 patchelf和glibc_all_in_one – Rain?Raining… (goblog.top)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y6y6y666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值