我有一个我试图反转的程序,它包含一个int3 (0xCC),它发出一个SIGTRAP信号,然后由sigaction 中定义的sighhandler处理。
处理程序对某些值执行计算。
当我使用 GDB 进行调试时,会引发 SIGTRAP,并且处理程序没有收到信号,因为它是 GDB 拦截它。我需要捕获信号以查看处理程序动态返回的值。
我尝试使用以下命令禁用 SIGTRAP 拦截:
handle SIGTRAP nostop noprint noignore
但我有以下错误:
Program terminated with signal SIGTRAP, Trace / breakpoint trap.
The program no longer exists.
我的目标是确保我可以让 SIGTRAP 被 sighandler 而不是 GDB 拦截,但仍然能够启动程序并放置断点。