iOS多用OC(Objective-C)编程,Mac也类似,所以IDA for Mac对OC的支持似乎强些。Windows的IDA在反汇编某些SDK库文件时会识别不出OC的函数名,而且对OC运行时的结构体也没识别出来。当然,因为我用的是6.1版的windows IDA, Mac上用的是6.4版,不知道是不是windows IDA 6.1的bug了。
总之在界面操作流程上,感觉Mac IDA是对OC有做优化的。当加载一个app时,
会询问是否解析和重命名OC的函数:
如果选择No,所有OC函数都会识别成sub_开头的名字。它的识别原理估计和上一节提到的相同
一个例子是用IDA打开这个库文件时(关于这个库,可参考《iOS的QuickTime Plugin》)
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Internet Plug-Ins/QuickTime Plugin.webplugin/QuickTime Plugin
windows版识别不出函数名:
Mac版可以识别出部分:
Mac IDA还识别出一些OC运行时的结构体信息。点开Structures栏,
按照提示,在其中一行同时按下control键和加号键就会展开详细信息:
这也就是前两节列出IVAR结构体和METHOD结构体的方法。
(在Structures栏还可以自定义结构体来标识C++类,具体方法请查阅《IDA Pro权威指南》等资料。)
以上就是未注册版的IDA for Mac的辅助作用,谁有XX版的最好分享下哈~
上一篇:IDA反汇编/反编译静态分析iOS模拟器程序(七)识别类的信息
下一篇:IDA反汇编/反编译静态分析iOS模拟器程序(九)block
转载请注明出处:http://blog.csdn.net/hursing