标签:export 需要 目标 process 二进制 src 样本 exp nbsp
问题:在做pwn题的过程中,我们经常会遇到题目提供libc,但是本地调试的时候加载的是本地libc。
解决方法:
方法1:
可以用添加环境变量的方法,如下:
export LD_LIBRARY_PATH=`pwd` #当前目录为加载目录
export LD_PRELOAD=你的libc #加载本地pwn题目下的libc
最后不用了在:unset LD_PRELOAD #调试完记得删除环境变量
但是这个方法在ubuntu为64位系统而调试程序为32位程序时会导致libc无法加载的情况,如图
这是在我本地调试发生的情况,而64位程序就可以加载。
方法2:
个人更偏向于这个方法,即写exp调试时,加载本地程序使用
io = process([‘./bin‘],env={"LD_PRELOAD":"./libc-2.23.so"})
来加载,其中[‘./bin‘]替换为你需要调试的二进制文件名,"./libc-2.23.so"替换成你需要加载的目标libc,这样本地调试就可以通过目标libc进行了。
标签:export 需要 目标 process 二进制 src 样本 exp nbsp
原文地址:https://www.cnblogs.com/xingzherufeng/p/9682660.html