iOS App是一个运行于沙箱(sandbox)中的程序,但并不表示我们对它素手无策,事实上,可以通过逆向工程来看个究竟
软件开发、CPU工作原理和iOS有透彻的理解
使用逆向分析的方法可以推导出这个程序的设计思路、内部算法和实现细节
工具主要分为四大类:监测工具、开发工具、反汇编器(disassembler)调试器(debugger)
检测工具可以记录并显示目标程序的某些操作,比如网络活动、文件访问等
iOS常用的检测工具有Reveal、tcpdump、libNotfyWatch、PonyDebugger
IDA是逆向工程中最常用的工具之一、横跨Windows/Linux/Mac平台,把目标程序的可执行文件作为输入,然后输入这个程序的汇编代码,甚至伪代码
反编译是跟CPU架构相关的,但像IDA这样强大的反编译支持多种CPU架构
调试器:
Xcode 中经常使用的是单步调试,,程序员可以在某一行代码上设施断点,使调试器能够在那一行代码执行之前暂停程勋执行,并且显示程序的当前状态
熟悉Xcode调试的人也通常知道,Xcode的调试器,不过就是把GDB(GNU Debugger)或LLDB做了一层图形化的包装,集成在一起更好使用而已
小结:介绍了iOS软件逆向工程的基本概念、作用和一般的逆向过程,以及需要用到的一些有代表意义的工具等