gdb - 在 GDB 中的第一条机器代码指令处停止

标签 gdb reverse-engineering

将可执行文件加载到 gdb 后,如何在执行第一条指令之前在入口点中断?

我正在分析的可执行文件是一个加密的恶意软件,因此 break main 绝对不会执行任何操作。

最佳答案

从 GDB 8.1 开始,有一个特殊的命令:starti。 GDB session 示例:

$ gdb /bin/true
Reading symbols from /bin/true...(no debugging symbols found)...done.
(gdb) starti
Starting program: /bin/true 

Program stopped.
0xf7fdd800 in _start () from /lib/ld-linux.so.2
(gdb) x/5i $pc
=> 0xf7fdd800 <_start>: mov    eax,esp
   0xf7fdd802 <_start+2>:       call   0xf7fe2160 <_dl_start>
   0xf7fdd807 <_dl_start_user>: mov    edi,eax
   0xf7fdd809 <_dl_start_user+2>:       call   0xf7fdd7f0
   0xf7fdd80e <_dl_start_user+7>:       add    ebx,0x1f7e6

关于gdb - 在 GDB 中的第一条机器代码指令处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10483544/

相关文章:

c - GDB:将参数转储到特定函数的所有调用

c# - 如何使用 C# 在单独运行的 native 进程中调用函数?

java - 如何从现有代码生成类图和时序图?

c++ - 如何检测进程是否正在调试

debugging - macOS Mojave : How to achieve codesign to enable debugging (gdb)?

c - 在 Mavericks (OS X 10.9) 上开发 PostgreSQL

c++ - 在 DLL 注入(inject)中访问内存会导致内存访问冲突

javascript - Leaflet 反向 wrapLatLng 操作

java - 序列图逆向工程

c - 为什么 ddd 不显示源代码?