最后我一直在关注这个视频,它展示了如何使用 Radare2 (r2) 进行基本操作。
当我尝试设置断点时:
db 0x004005bd
0x004005bd
刚刚执行的main函数的第一个地址在哪里:
push rbp
但是在我运行db
命令后,它告诉我:
Cannot place a breakpoint on 0x004005bd unmapped memory. See dbg.bpinmaps
我明白它说的是什么,但我该如何解决?
最后我一直在关注这个视频,它展示了如何使用 Radare2 (r2) 进行基本操作。
当我尝试设置断点时:
db 0x004005bd
0x004005bd
刚刚执行的main函数的第一个地址在哪里:
push rbp
但是在我运行db
命令后,它告诉我:
Cannot place a breakpoint on 0x004005bd unmapped memory. See dbg.bpinmaps
我明白它说的是什么,但我该如何解决?
在调试模式下运行radare2。 r2 -d
您可能使用的是过时版本的radare2。
卸载当前radare2
版本,然后运行:
git clone https://github.com/radare/radare2 && cd radare2 && ./sys/install.sh
如果您使用 ArchLinux,请使用radare2-git
如果您使用的是 windows 或其他平台(如 iOS 或 Android),请使用rada.re上的 git 链接或构建它。
最后,如果您遇到与radare2本身相关的问题,我强烈建议您来IRC或Telegram打个招呼,您也可以在github上报告问题。
您可以使用“file”命令检查可执行文件。那么您会发现该文件是“精灵共享对象”而不是“精灵可执行文件”。但是你可以直接执行它。
所以你需要使用“gcc xxx.c -no-pie -o xxx”重新编译它然后使用“radare2 -d xxx”调试它,你很高兴
您也可以这样e dbg.bpinmaps=0
做 Radare2 允许您在没有该限制的情况下设置断点。