IDA反汇编/反编译静态分析iOS模拟器程序(二)加载文件与保存数据库-阿里云开发者社区

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

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模拟器程序(三)函数表示与搜索函数

本文请勿转载。

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

相关文章
Sybase IQ如何将大文件数据迅速加载到数据库
  试想一下,如果一个文件5G、10G甚至更大。如何将它迅速地加载到数据库指定的表呢?我们看看Sybase IQ是如何迅速地将表的数据加载到数据库的。 数据文件格式: 1440,2011-01-09 00:00:00,1,珠海,1,C网,8612345678222,221943,1,12175,...
686 0
IDA反汇编/反编译静态分析iOS模拟器程序(三)函数表示与搜索函数
打开IDA一般都是去搜索函数,可以说函数是IDA工程的基本单位吧,数据结构什么的都是为函数服务而已。函数列表在界面左侧的Functions Window: 可以看到,UIKit有27789个函数呢。
891 0
IDA反汇编/反编译静态分析iOS模拟器程序(四)反汇编的符号信息与改名
首先看看windows IDA和xcode的反汇编有什么不同。因为不确定直接分析UIKit的代码会不会有法律问题,还是自己写个例子吧。分析UIKit的时候因为没有完整的debugging symbols,所以得到的反汇编信息会比自己写的代码较少。
855 0
iOS读取文件Bundle pathForResource方法返回nil问题
检查代码 oc: NSString* soundPath = [[NSBundle mainBundle] pathForResource:@"wakeup" ofType:@"caf"]; NSLog(@"soundPath:%@", soundPath); swift 3.
1135 0
xcode反汇编调试iOS模拟器程序(七)Debug与Release的区别
首先自己写一段代码,加好断点,分别在Build Configuration为Debug和Release下运行,查看反汇编 - (void)test { UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10.
739 0
Flink1.7.2 Dataset 文件切片计算方式和切片数据读取源码分析
了解读取的文件或目录,具体进行切片拆分的实现 了解任务读取切片中的数据规则
1176 0
《利用Python进行数据分析·第2版》第3章 Python的数据结构、函数和文件
第1章 准备工作第2章 Python语法基础,IPython和Jupyter 第3章 Python的数据结构、函数和文件第4章 NumPy基础:数组和矢量计算第5章 pandas入门第6章 数据加载、存储与文件格式第7章 数据清洗和准备第8章 数据规整:聚合、合并和重塑第9章 绘图和可视化第10章 数据聚合与分组运算第11章 时间序列第12章 pandas高级应用第13章 Python建模库介绍第14章 数据分析案例附录A NumPy高级应用附录B 更多关于IPython的内容(完) 本章讨论Python的内置功能,这些功能本书会用到很多。
1114 0
+关注
刘恒兴
一个喜欢在各个技术领域到处浪的人
119
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载