逆向工程

初试逆向

Posted by JT on May 25, 2018

初试逆向

1 分析方法

  1. 工具分析:

    对界面结构、文件操作、网络请求等进行分析,获取软件界面组成结构。

  2. 静态分析:

    例如通过点击按钮,获取程序功能的具体实现;对不同功能函数的分析,获取应用代码的框架构成。

    只能获取有哪些函数,函数中执行了那些代码,如果要获取代码执行流程或参数传递,就要用到动态分析。

  3. 动态分析:

    对目标程序进行debug,打印参数,一步步调试,获取执行流程,然后可以获取功能的实现,并增强功能。

2 应用平台和层次

逆向工程在windows、安卓、苹果等平台都有应用。

逆向工程的应用层次:

  • 硬件层、内核驱动层:可以获取底层的具体实现和原理。
  • 设备框架层:可以获取framework内部的具体代码实现,或调用某个API,就可以获取内部的实现操作。
  • 应用层:对应用进行分析:界面组成、数据拦截、功能等。

3 作用

4 学习需要基础

5 相关工具

逆向工程用的的一些工具:

  1. 监控工具:
  • reveal:获取界面结构、层次和构成。
  • snoop-it: 可以得到类里边的所有方法,还可以得到,网络操作、文件操作、加密函数的操作等
  • intospy:
  1. 反汇编工具:

通过分析二进制文件,生成汇编代码,进而转换为高级语言。例如:hopper、IDA。

  1. 调试跟踪工具:

通过设置断点,调试跟踪当前程序运行状态。例如:gdb、lldb。

6 逆向流程