Skip to content

利用patchelf和glibc-all-in-one来进行快速patch libc的小工具

License

Notifications You must be signed in to change notification settings

ZIKH26/patchup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

patchup

前言

该工具是我自用的一个小工具(针对于做pwn题的辅助工具),用于快速修改本地ELF文件的libc使其与远程服务器那边所运行的程序依赖的libc库一样 从而避免了因为 libc 问题,而导致本地打通了但是远程没打通的尴尬情况。因为每次都手动 patch libc 的过程太过于重复,而且有概率出错,同时受到了 roderick 师傅写的 pwncli 的启发,于是就有自己写一个命令行工具的想法。

Deploy

由于目前我个人做 pwn 题习惯用python2,所以这个脚本是用 python2 来写的。这就导致了如果用 python3 运行的话,会出现一些错误 (就比如我使用了 python2 里的 raw_input 函数)

由于这个小工具依赖的核心依然是 patchelfglibc-all-in-one ,能让它以命令行工具的身份出现,还少不了python中的 click 模块。 因此你应该有如下东西 patchelf glibc-all-in-one ,如果有的话请直接看下面的install patchup 部分,如果没有的话下文就是相关部署。

install patchelf

直接使用预编译的二进制文件

wget https://github.com/NixOS/patchelf/releases/download/0.14.5/patchelf-0.14.5-x86_64.tar.gz
tar -xzvf patchelf-0.14.5-x86_64.tar.gz
cd bin
sudo mv patchelf /bin/patchelf

手动编译 patchelf

git clone https://github.com/NixOS/patchelf

cd patchelf
# 安装autoreconf
sudo apt install -y autoconf
# 赋予执行权限
chmod +x bootstrap.sh
# 使用预设脚本配置编译环境
./bootstrap.sh
./configure
make
make check
sudo make install

install glibc-all-in-one

git clone https://github.com/matrix1001/glibc-all-in-one
cd glibc-all-in-one
mkdir libs
chmod +x  extract  update_list download
./update_list

cd 到上级目录

install patchup

ok,假设你现在有了patchelfglibc-all-in-one 那么你就可以输入以下命令来安装patchup这个小工具了

git clone https://github.com/polishing-labs/patchup.git

cd patchup

sudo pip install --editable .

可以输入patchup --help命令查看帮助,如果出现下面图片所展示的内容,则说明安装成功。

patchup --help

image

最后目录结构应该如下

patchup
│──├── glibc-all-in-one (目录)
│──├── patchelf (目录)
│  ├── patchup.py(仓库文件)
│  └── setup.py(仓库文件)

示例

假设你有一个 名为 demo ELF 文件,他现在默认的 libc 库是2.27的,但是服务器那边的这个程序所依赖的 libc 库是2.23的 那么你就可以使用以下命令,去为你的ELF文件patch一个2.23的 libc 库。

patchup demo 2.23 -b

image

假设你的 glibc-all-in-one 中空空如也,别担心,你依旧可以输入上面的命令。patchup 将会为你自动下载(如果你需要的话)

About

利用patchelf和glibc-all-in-one来进行快速patch libc的小工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%