最近终于有空好好看看《iOS应用逆向工程》这本书了,还专门买了台新的机子做测试机,接下来会边学边写博客记录下来,方便日后查阅。
首先是一些最基本的,什么是逆向工程之类的基本知识。
一、什么是逆向工程?
软件的逆向工程指的是通过分析一个程序或系统的功能、结构或行为,将它的技术实现或设计细节推导出来的过程。
二、iOS逆向工程的作用
1.与安全相关的iOS逆向工程
(1)评定安全等级(2)逆向恶意软件(查毒和杀毒)
(3)检查软件后门
(4)去除软件的使用限制(破解和盗版)
2.与开发相关的iOS逆向工程
(1)逆向系统调用(如调用系统的锁屏,关机等功能)(2)借鉴别的软件(向优秀的软件学习)
三、iOS软件逆向工程的一般过程
软件逆向工程可以看做是系统分析和代码分析两个阶段的有机结合。在系统分析阶段,要从整体上观察目标程序的行为特征、文件的组织结构,从而找到我们想要逆向的点。然后从该入口进入代码分析阶段,利用各种工具对程序本身的二进制文件进行分析,从而达到我们的目的。
四、iOS软件逆向工程用到的工具
分为四大类:1.监测工具:用于嗅探、监测、记录目标程序行为的工具。常用的有Reveal, tcpdump, libNotifyWatch和PonyDebugger等。
2.开发工具:用于开发越狱代码的工具。最著名的就是Theos,能够编译生成Tweak插件。
3.反编译器:主要是IDA,该工具横跨Windows/Linux/Mac平台,它将目标程序的可执行文件作为输入,然后输出改程序的汇编代码,甚至是伪代码。
4.调试器:主要是基于命令行的GDB。事实上,Xcode中的调试器只是GDB(GNU Debgger)或LLDB的图形化包装而已。
摘自《iOS应用逆向工程》,官网是http://iosre.com/
以上内容可能有所改动,一切以原书为准。感谢作者的分享。