iOS逆向工程概述(转)

逆向工程一词,对不少人来讲可能很陌生,在android领域,咱们常常会听到“反编译某个apk”,那么逆向工程从某种角度讲也包括反编译这项技术,这样一对比,可能咱们就更容易理解逆向工程的定义了。android

咱们引用百度百科对这个词更加精准地解释:数据库

逆向工程(又称逆向技术),是一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素,以制做出功能相近,但又不彻底同样的产品。逆向工程源于商业及军事领域中的硬件分析。其主要目的是在不能轻易得到必要的生产信息的状况下,直接从成品分析,推导出产品的设计原理。安全

1、逆向工程的做用是什么网络

逆向工程并非为了破解他人的软件为目的,在商业领域,有更加剧要的做用,具体包括如下几个方面。架构

  • 安全审查:对于iOS 开发者来讲,不只仅是完成产品的业务功能,尤为对大公司,还须要很是重视安全问题。经过逆向工程,及早发现问题,修改问题,避免发布后到用户手中引发各类舆情问题,损害公司声誉。app

  • 分析竞品:1.参考竞品app的架构设计;2.参考竞品app的接口设计;3.关键技术的实现细节。工具

  • 学术研究:经过逆向,实现学术研究,主要用于学习。学习

  • 突破app的使用限制:不少app对不一样的用户有使用权限的限制,好比收费,或者vip用户才能使用的功能,经过逆向提早获取使用权限,固然不推荐这种方式,建议你们仍是支持正版。开发工具

  • 识别侵权:主要用于调查竞品或商业产品,识别侵权行为。.net

2、逆向分析的方法

iOS逆向分析的方法主要包括静态和动态两种分析方法。

静态分析顾名思义是在app未运动的状况下,对应用自己的一种分析方法。咱们都知道iOS的沙盒机制,沙盒里会存储app的各类信息,包括应用的文件系统结构,好比数据库等;此外,使用一些特殊工具,如反汇编工具对app代码进行查看等,都属于静态分析的范畴。

动态分析是在app运行过程当中,经过在线调试,分析应用的文件结构,内存的变化,界面的展现等,同时也能够观察网络数据的请求,经过抓包分析业务的走向,协议的定义等。

两种分析方法在实际的逆向过程当中,应当配合使用,好比静态分析获取app的基本信息以及数据存储结构,再经过动态分析的方法进一步深刻app内部,研究具体实现和原理,大大提供分析效率。

3、逆向分析工具

工欲善其事必先利其器,掌握了方法以后,还要学会使用各类工具,分析app的不一样功能。这些工具主要包括如下:

工具分类 工具名称
越狱工具 盘古越狱
UI分析工具 Reveal和PonyDebugger等
文件系统查看工具 iExplorer, iFunbox, iTool等
网络分析工具 WireShark, Charles等
反汇编工具 Hopper, IDA Pro等
调试器 Cycript, gdb等
逆向程序开发工具 Theos
其余 ...

以上工具备的是付费工具,可使用破解版本,具体的功能咱们在后续章节介绍。

4、总结

本篇对iOS逆向工程作了概述,介绍了逆向的方法以及工具,后面的章节会进行详细的介绍。

转自:https://blog.csdn.net/wu__di/article/details/54934683

相关文章
相关标签/搜索