我正在尝试使用gdb
. 我可以在其中运行程序,但是当我设置断点时,main
我得到
Program received signal SIGSEGV, Segmentation fault.
将它设置为更早的设置_init
(有两个 BTW)也不是很有成效,难道程序可能会在我没有发现的某个时刻损坏自己?看看backtrace
这个问题:
#0 0x47048474 in ?? ()
#1 0x0804864a in __handle_global_ctors ()
#2 0x080488c5 in __do_global_ctors_aux ()
#3 0x08048349 in _init ()
现在我尝试使用一个简单的递归遍历反汇编器(不是 IDA)静态反编译它,但我找不到CC
(INT 3) 的任何痕迹,所以我猜已经添加了另一层混淆。
我也试过record
没有成功:
Breakpoint 5, 0x0804833a in _init ()
(gdb) record
(gdb) c
Continuing.
(null)Process record: failed to record execution log.
哦,我也找不到十六进制字符串“47048474”。
在这种情况下有什么可以帮助的更多想法?也许检测自我修改?