大家熟悉arm汇编指令,lldb指令之后就可以开始使用lldb尽情地对hello进行调试了。
那么,process connect上这个hello测试文件之后会出现dyld_start程序文件,一路ni下去,到0x1fe1c050处,经过一个bx r0跳转,如下图所示,会进入真正的应用程序部分。
如图所示,0x14e10处才真正进入com.apple.main-thread部分,hello 程序的逻辑代码部分才正式开始工作。那么前面是什么代码呢?前面是程序启动代码部分(可参考《C++反汇编与逆向分析技术揭秘》第三章)。
继续ni后到达hello`start+32处附近,下一句引起注意,不再是start了,到了main函数入口附近了。真正的用户逻辑部分要登场了!!!
即使使用disass,仍然在缺少符号表的情况下,看不动到底main函数说的是什么,那么就该搬出hopper了。
非常清楚,看到与hello程序中main函数里对应的init, alloc, say等函数了,还有oc重要的库函数objc_msgSend.
再回到lldb,对照着看
非常清楚!!