iOS逆向工程概述

作者: 充电实践 | 来源:发表于2017-02-08 23:44 被阅读0次

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

    我们引用百度百科对这个词更加精准地解释:

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

    逆向工程并不是为了破解他人的软件为目的,在商业领域,有更加重要的作用,具体包括以下几个方面。

    安全审查:对于iOS 开发者来说,不仅仅是完成产品的业务功能,尤其对大公司,还需要非常重视安全问题。通过逆向工程,及早发现问题,修改问题,避免发布后到用户手中引起各种舆情问题,损害公司声誉。
    分析竞品:1.参考竞品app的架构设计;2.参考竞品app的接口设计;3.关键技术的实现细节。
    学术研究:通过逆向,实现学术研究,主要用于学习。
    突破app的使用限制:很多app对不同的用户有使用权限的限制,比如收费,或者vip用户才能使用的功能,通过逆向提前获取使用权限,当然不推荐这种方式,建议大家还是支持正版。
    识别侵权:主要用于调查竞品或商业产品,识别侵权行为。
    二、逆向分析的方法

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

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

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

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

    三、逆向分析工具

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


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

    四、总结

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

    如果您喜欢我们的文章,点赞就好,您的认可是我分享的最大动力。

    相关文章

      网友评论

        本文标题:iOS逆向工程概述

        本文链接:https://www.haomeiwen.com/subject/uoobittx.html