2 qq 20307987 qq_20307987 于 2016.05.10 14:59 提问

pwntools如何用利用Pwnlib.gdb进行远程调试? 1C

这几天在学习pwn,在调试一些交互程序的时候,需要输入信息,可是无法在调试过程中输入内存地址,无法观察输入字符串是否覆盖到了栈地址(比如在测试栈溢出的到时候,利用python可以python -c "print 'A'*123 +‘\x12\x12\x12.......’")
因此想进行远程调试,从网上找到pwntools,其中pwnlib.gdb的gdb.debug可以用来远程调试,就是用gdb.debug()可以开启一个gdbserver,可是没有成功...求各路大神解答。如下图:
用gdb.debug打开程序,开启一个gdbserver
用gdb.debug打开程序,开启一个gdbserver

在gdbserver中看到这句提示,不知道什么意思
在gdbserver中看到这句提示,不知道什么意思

没有找到main函数,无法下断点
没有找到main函数,无法下断点

TAB键找到的时malloc,说明程序没有停到正常入口处,为何?
TAB键找到的时malloc,说明程序没有停到正常入口处,为何?

3个回答

CSDNXIAOS
CSDNXIAOS   2016.05.10 15:12

 在进行嵌入式系统开发中,受到嵌入式系统资源的限制,调试环境和通用桌面系统的调试环境有差别,引入了远程调试技术。这时,调试器运行于通过桌面系统,被调试的程序则运行于基于特定硬件平台的嵌入式系统(目标系统)。因此,要求调试器和被调试程序之间进行通信,调试器还需要能够处理某些特定硬件平台的信息。
  插桩(stub)方案是在目标系统和调试器内分别加入某些功能模块,二......
答案就在这里:利用GDB进行远程调试
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

silehaixianghuirenj
silehaixianghuirenj   2016.10.08 01:26

用利用Pwnlib.gdb进行远程调试? 1C
这几天在学习pwn,在调试一些交互程序的时候,需要输入信息,可是无法在调试过程中输入内存地址,无法观察输入字符串是否覆盖到了栈地址(比如在测试栈溢出的到时候,利用python可以python -c "print 'A'*123 +‘\x12\x12\x12.......’")
因此想进行远程调试,从网上找到pwn

renjdk
renjdk   2017.07.26 09:36

很简单,能下malloc断点,不能下main断点而且出现“Function main not defined”证明程序没有main这个符号
可以IDA中查看main地址,然后b *0x下断点

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!