首页 > 编程语言 >pwn题加载指定libc版本本地调试程序

pwn题加载指定libc版本本地调试程序

时间:2023-01-14 17:55:36浏览次数:45  
标签:调试程序 libc glibc Desktop test 版本 pwn 2.23

在做ctf pwn题中,由于本地libc版本与题目所给的libc版本不同,我们经常会遇到本地打的通但是远程打不通,或者本地打不通但是远程打的通的问题。为了避免各种由于libc版本不同导致的各种问题,我们可以加载指定的libc版本来调试程序。

下载patchelf

sudo apt-get install patchelf

下载glibc-all-in-one

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

更新一下glibc-all-in-one

cd glibc-all-in-one
./update_list

下载指定版本的libc(这里以2.23版本为例)

./download 2.23-0ubuntu11.3_i386
至此我们所需要的libc已经下载完成

接下来进行配置,使得我们可以使用2.23版本的libc用gdb调试test程序

patchelf --set-interpreter /home/kali/Desktop/glibc-all-in-one/libs/2.23-0ubuntu11.3_i386/ld-2.23.so /home/kali/Desktop/test
patchelf --replace-needed libc.so.6 /home/kali/Desktop/glibc-all-in-one/libs/2.23-0ubuntu11.3_i386/libc-2.23.so /home/kali/Desktop/test
完成以上工作后,我们可以使用pwndbg工具对test程序使用2.23版本的libc进行动态调试

在pwntools中使用指定libc版本对test编写攻击脚本

io = process(['./ld-2.23.so','./test'], env = {'LD_PRELOAD' : './libc-2.23.so'})

标签:调试程序,libc,glibc,Desktop,test,版本,pwn,2.23
From: https://www.cnblogs.com/libug/p/17052184.html

相关文章