使用docker

建议使用pwndocker进行搭建,具体搭建方式

我是将Desktop当作工作目录

要使用的时候直接运行保存好的pwndocker_run.sh,这个在搭建方法里面也有讲到

1
2
./pwndocker_run.sh
docker exec -it 6ad8 bash # 这里的6ad8就是执行了pwndocker_run.sh之后回显的那一长串的前4位

在python脚本中使用不同版本的libc

1
2
3
4
r = process(["/path/to/ld.so", "./test"], env={"LD_PRELOAD":"/path/to/libc.so.6"})
# 由于docker里面libc存放在/glibc下,因此具体的使用应该为
r = process(["/glibc/2.23/64/lib/ld-2.23.so", "./test"], env={"LD_PRELOAD":"/glibc/2.23/64/lib/libc-2.23.so"})
patchelf --set-interpreter /glibc/2.23/64/lib/ld-2.23.so ./battlefield

普通环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# support 32 bit
dpkg --add-architecture i386
sudo apt-get update
sudo apt-get -y install libc6-i386

sudo apt-get -y install git gdb
# install pwndbg
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
sudo ./setup.sh

# install peda
# git clone https://github.com/longld/peda.git ~/peda
# echo "source ~/peda/peda.py" >> ~/.gdbinit

# you should modify the setting>sofeware&update option first, choose the source code option
sudo apt-get source libc6-dev

sudo apt-get -y install python python-pip
pip install pwntools

sudo apt-get -y install ruby
sudo gem install one_gadget

然后将ida server添加到虚拟机中,因为我们通常使用Ubuntu因此使用linux_server即可。download_address

others

逆向基础知识 https://www.xctf.org.cn/library/details/54b827135b9846af5361bf5f6a1c8e7536c6c026/