开发者社区> 刘恒兴> 正文

IDA反汇编/反编译静态分析iOS模拟器程序(二)加载文件与保存数据库

简介: 启动windows版的IDA,在Quickstart界面点击New,弹出一个对话框选择文件。也可以按取消后再把文件拖进IDA。由于Mac版的IDA没注册,没有save功能,所以只好先把Mac上的东西拷贝到windows再打开了。
+关注继续查看

启动windows版的IDA,在Quickstart界面点击New,弹出一个对话框选择文件。也可以按取消后再把文件拖进IDA。由于Mac版的IDA没注册,没有save功能,所以只好先把Mac上的东西拷贝到windows再打开了。

能拖进IDA的文件可以是静态库、动态库、可执行程序等。对ios而言,可执行程序通常是build出来的.app包里的同名文件,当然,也可以是系统自带的程序。库文件主要是SDK中各个framework,以UIKit为例,它的iOS6.1模拟器版静态链接库的路径为:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.framework/UIKit

把UIKit拖进IDA,会弹出下图所示界面:


IDA已识别出这是内含i386指令的mach-o动态库,所以点击ok就行了。然后IDA左下角会显示正在继续分析文件:

(左下角的信息会一直变动,表示分析至文件的某个偏移处)

最后等到显示为idle

就表示分析完毕了。

此时,库文件所在的目录会多出5个文件:


这是IDA的数据库文件。当退出IDA时,选择Pack database后点击ok


这5个文件就会被打包成idb文件

下次启动IDA时,在quickstart选择这个文件,或直接双击让IDA打开这个文件,就能直接得到分析完成后的数据了,不用再分析一遍。(demo版IDA没有save database功能)
后面提到的自己修改分析结果的操作,也会保存在idb数据库文件里。


Mac版的IDA操作是类似的,稍微注意的是,要把库文件拷贝到一个能让IDA自由创建文件的目录下再进行分析,否则IDA创建不了临时数据库就会打开失败。


上一篇:IDA反汇编/反编译静态分析iOS模拟器程序(一)话说IDA

下一篇:IDA反汇编/反编译静态分析iOS模拟器程序(三)函数表示与搜索函数

本文请勿转载。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
iOS逆向 04:OC反汇编(下)
iOS逆向 04:OC反汇编(下)
96 0
iOS逆向 04:OC反汇编(上)
iOS逆向 04:OC反汇编(上)
64 0
iOS OC反汇编
OC的反汇编
57 0
IDA反汇编/反编译静态分析iOS模拟器程序(九)block
在第三节 函数表示与搜索函数 提到block函数和普通的OC函数不同。 反汇编分析前需要理解block的实现原理,故推荐先看看这几篇文章及其所引用的参考资料: Block介绍(一)基础Block介绍(二)内存管理与其他特性block介绍(三)揭开神秘面纱(上)block介绍(四)揭开神秘面纱(下) block函数的命名与上文提到类似。
905 0
IDA反汇编/反编译静态分析iOS模拟器程序(八)IDA for Mac
iOS多用OC(Objective-C)编程,Mac也类似,所以IDA for Mac对OC的支持似乎强些。Windows的IDA在反汇编某些SDK库文件时会识别不出OC的函数名,而且对OC运行时的结构体也没识别出来。
1105 0
IDA反汇编/反编译静态分析iOS模拟器程序(七)识别类的信息
C++类的实质是个结构体。先举个例: class TestClass { int m_val1; int m_val2; public: int getVal1(); int getVal2(); }; i...
1321 0
IDA反汇编/反编译静态分析iOS模拟器程序(六)交叉引用
交叉引用cross reference是指 这个地址的 数据或代码 引用了哪个地址 以及 被哪些地址的代码所引用。引用了哪个地址,在反汇编就能看出来,一行汇编代码自然只会引用一个地址。
1156 0
IDA反汇编/反编译静态分析iOS模拟器程序(五)F5反编译
反编译是IDA最让人振奋的功能,它的本质是IDA的一个插件,不过会被当做hex-rays的另一个产品。既然是产品,那当然就另外收费,demo版是没有的。
1417 0
IDA反汇编/反编译静态分析iOS模拟器程序(四)反汇编的符号信息与改名
首先看看windows IDA和xcode的反汇编有什么不同。因为不确定直接分析UIKit的代码会不会有法律问题,还是自己写个例子吧。分析UIKit的时候因为没有完整的debugging symbols,所以得到的反汇编信息会比自己写的代码较少。
1044 0
IDA反汇编/反编译静态分析iOS模拟器程序(三)函数表示与搜索函数
打开IDA一般都是去搜索函数,可以说函数是IDA工程的基本单位吧,数据结构什么的都是为函数服务而已。函数列表在界面左侧的Functions Window: 可以看到,UIKit有27789个函数呢。
1130 0
+关注
刘恒兴
一个喜欢在各个技术领域到处浪的人
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Facebook iOS App技术演化十年之路
立即下载
From Java_Android to Swift iOS
立即下载
深入剖析 iOS 性能优化
立即下载