glibc-all-in-one_给程序修改libc
修改程序 libc
【免费下载链接】glibc-all-in-one
项目地址: https://gitcode.com/gh_mirrors/gl/glibc-all-in-one
首先,克隆项目仓库到本地:
1 | sudo git clone https://github.com/matrix1001/glibc-all-in-one.git |
1 | cd glibc-all-in-one |
运行更新脚本获取最新的glibc版本信息:
1 | sudo python3 update_list |
执行后会生成两个文件:
list:包含当前支持的glibc版本old_list:包含历史版本的glibc包
查看可用版本并选择需要的进行下载:
1 | cat list |
使用patchelf工具配置可执行文件的运行环境:
1 | patchelf --set-interpreter ./glibc-all-in-one/libs/2.23-0ubuntu3_amd64/ld-2.23.so ./test1 |
1 | patchelf --set-interpreter ./glibc-all-in-one/libs/2.27-3ubuntu1_amd64/ld-2.27.so ./bad |
pwninit
1 |
|
针对非对应虚拟机版本的二进制文件编译 libc-2.35
安装 docker
1 | apt update |
运行 Ubuntu 22.04 容器并编译
这个命令会把当前桌面目录(/home/kali/Desktop)挂载到容器内的 /ctf 文件夹。
1 | # 进入容器 |
进入容器(命令提示符变成 root@xxxx:/#)后,执行:
1 | # 1. 安装编译器 |
docker 编译文件
1 | root@f669eef81a44:/ |
回到原目录 patch 文件
1 | ┌──(pwn_env)─(root㉿kali)-[/home/kali/Desktop] |
gdb 调试可以发现编译成功了
ubuntu 对应的 libc 版本
1 | Ubuntu 版本 默认 glibc 版本 |
更新: 2026-04-07 17:07:27
原文: https://www.yuque.com/idcm/wnemg9/maa4znykppeduud9