初试逆向
1 分析方法
-
工具分析:
对界面结构、文件操作、网络请求等进行分析,获取软件界面组成结构。
-
静态分析:
例如通过点击按钮,获取程序功能的具体实现;对不同功能函数的分析,获取应用代码的框架构成。
只能获取有哪些函数,函数中执行了那些代码,如果要获取代码执行流程或参数传递,就要用到动态分析。
-
动态分析:
对目标程序进行debug,打印参数,一步步调试,获取执行流程,然后可以获取功能的实现,并增强功能。
2 应用平台和层次
逆向工程在windows、安卓、苹果等平台都有应用。
逆向工程的应用层次:
- 硬件层、内核驱动层:可以获取底层的具体实现和原理。
- 设备框架层:可以获取framework内部的具体代码实现,或调用某个API,就可以获取内部的实现操作。
- 应用层:对应用进行分析:界面组成、数据拦截、功能等。
3 作用
4 学习需要基础
5 相关工具
逆向工程用的的一些工具:
- 监控工具:
- reveal:获取界面结构、层次和构成。
- snoop-it: 可以得到类里边的所有方法,还可以得到,网络操作、文件操作、加密函数的操作等
- intospy:
- 反汇编工具:
通过分析二进制文件,生成汇编代码,进而转换为高级语言。例如:hopper、IDA。
- 调试跟踪工具:
通过设置断点,调试跟踪当前程序运行状态。例如:gdb、lldb。