我正在尝试对cydia应用程序(二进制)进行逆向工程,并将GDB与IDA Pro一起使用。
似乎有一些调试保护,因为main()
不在bt堆栈中,我无法访问任何函数,class-dump-z和IDA Pro都清楚地显示了这些函数。
BT Stack中的最后两个条目是:
_mh_execute_header<br>
_mh_execute_header<br>
这是main()
应该在的地方。
有没有人见过这些?
根据我的阅读ptrace()
,我不会让你附上这个过程,但这会让我感到高兴。我试图绕过sysctl()
,但我不认为这种方法也被使用过。
有谁知道它还能是什么?
另外我没有源文件。
答案 0 :(得分:1)
你的问题非常不清楚。你到底在问什么?
main()不在bt堆栈中,
这对于完全剥离的可执行文件来说非常常见。如果您运行nm a.out | grep main
但未看到main
,则main
无法显示在任何堆栈跟踪中。
仅凭这一点并不一定证明应用程序正在使用任何反调试技术。