转:https://blog.csdn.net/qq_26341621/article/details/54140018
内容大体框架:
让目标程序破茧而出 -- dumpdecrypted
运行时分析 -- cycript
追踪神器 -- logify
反汇编工具 -- hopper
断点调试工具 -- lldb+debugserver
注入工具 -- insert_dylib + install_name_tool
现在仅讨论代码层面的反编译
1、反编译工具
(1)class-dump
主要用来反编译一个库文件或者app的方法名、属性等声明(即.h文件,强大的是反编译出来的.h不仅仅包含头文件中的声明,.m中的function方法名称也同样能够反编译出来)。class-dump的安装在前文中有详细描述,这里不再赘述。
(2)IDA
主要用来反编译库文件的实现(当然方法声明同样能够反编译出来,用class-dump主要是更加形象,有针对性),这个反编译工具非常强大能够将函数的实现及逻辑关系、流程统统显示出来,弊端就是反编译出来的内容为汇编语言,需要一定汇编基础的才能看懂。比较头疼。
(3)Hopper Disassembler
与IDA功能相似,主要功能都是反编译查看方法的实现,这个软件的功能相对于IDA来说,可读性要强很多,反编译出来的内容类似于汇编与OC的运行时的结合体,相对比较容易看出方法的具体实现。
笔者个人比较喜欢用1和3来完成反编译过程。
各个软件的下载地址:
(1)class-dump
http://stevenygard.com/projects/class-dump
(2) IDA
https://www.hex-rays.com/products/ida/support/download_demo.shtml
(3)Hopper