美文网首页
逆向笔记 - 初识逆向工程

逆向笔记 - 初识逆向工程

作者: 文瑶906 | 来源:发表于2017-06-27 21:25 被阅读0次

    前言

    当开发一个应用的时候,首先要明确需求、设计稿、交互稿。然后程序员根据需求、设计稿、交互稿,编写出产品想要的应用。
    在逆向中恰恰相反。拿到目标应用后,去分析他的页面组成结构、代码层级、程序的执行流程,来了解他的内部原理。
    所以,逆向工程就是从现有的产品推导技术实现需求的过程。

    举例

    手机上有很多应用,在我们打开应用的时候,可以看到不同的页面和不同的功能。如果我们想要去了解这些功能。

    比如:网易云音乐的声音识别功能(如下图),这个时候,就需要用到逆向工程。


    Snip20170627_1.png.png

    在逆向工程中,有三个步骤进行分析

    1. 工具分析:
      1. 软件页面组成结构:对应用的页面结构、网络请求、文件操作等各个方面入手,来寻找线索,分析出我们想要的东西。
      2. 我们还可以进一步通过某个按钮,去获取到它的响应事件函数,那么这个时候,我们就需要用到静态分析。
    2. 静态分析:
      1. 什么是静态分析:通过某个按钮,去获取到按钮的响应事件函数
      2. 程序功能具体实现:
        • 通过静态分析,我们可以针对某个响应事件函数去分析它内部功能实现:
        • 调用了哪些函数,执行流程是怎么样的
      3. 应用代码框架构成:对不同函数的分析,就可以得到应用代码框架构成。
      4. 结果:
        • 通过静态分析,我们只能得到,应用程序里面有哪些函数、函数里面又实现了哪些代码。
    3. 动态分析:
      1. 什么是动态分析:
        • 如果我们想去分析程序运行时候的代码及其流程、以及参数的传递。这就是动态分析
      2. 执行流程参数传递:
        • 通过动态分析,可以对目标程序进行debug、然后打印出它的参数以及一步步调试它的执行流程等等.
    Snip20170627_2.png.png.png

    总结:

    1. 通过上面的分析之后,对程序的界面,代码的构成,程序的具体流程 有了全面的了解。这个时候,就能根据目标程序的功能来实现自己app的一些功能和增强它的一些功能。这就是逆向工程的魅力所在。

    逆向工程应用平台与层次

    平台

    window 平台

    • 动态调试: OllyDbg、Windbg、
    • 静态分析:IDA Pro…

    安卓平台

    ApkTool、dex2jar:对APk文件反编译成dex文件,资源文件等等,然后对dex文件转成java文件,进一步得到java伪代码。这样就能分析出一个安卓应用实现原理和实现逻辑
    jd-gui 、 IDA Pro...

    iOS 平台

    class-dump: 得到目标程序的所有类和类里面的方法
    Reveal:得到目标程序的界面层次、界面构成
    Cycript、theos…

    层次

    硬件层、内核驱动层: 通过这两个层次进行分析,我们可以得到底层的具体实现和实现的原理

    设备框架层: 通过此层次的逆向分析,可得到一个framewrok里面的具体代码逻辑或者说,我们想了解我们调用了某个api函数后,底层实现了哪些操作。那么这个时候,我们就可以通过“设备框架层”的逆向分析来得到我们想要的结果。

    应用层:可以对其他应用进行分析,分析页面组成结构,分析某个功能,拦截数据等等。


    Snip20170627_3.png.png
    Snip20170627_4.png

    逆向工程的相关工具:

    监控工具:

    • 记录目标程序行为的工具,包括界面变化、文件读取、网络传输等
    • Reveal、 snoop-it、introspy

    反汇编工具

    • 通过分析二进制文件,生成汇编代码,进而转换成高级语言
    • 用来查看执行逻辑和执行流程
    • Hopper,IDA

    调试跟踪工具

    • 通过设置断点,查看当前程序运行状态
    • gdb 、 IIdb
    Snip20170627_8.png


    逆向工程学习路线:


    Snip20170627_9.png

    相关文章

      网友评论

          本文标题:逆向笔记 - 初识逆向工程

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