ctf逆向分析流程
一个可执行程序(Windows图形化界面程序、linux的静态编译程序)中汇编带代码量庞大。
分析步骤:
1.定位出真正需要分析的关键代码。
2.需要对关键代码采用的算法进行分析
3.理清程序功能
4.写出对应脚本,求解出flag
关键代码定位
1.字符串定位法:
OD的字符串搜索
2.函数定位法:
2.1.Window(API):GetWindowText、GetDlgltemText、MessageBox、Send、Recv、LoadLibray、VirtualAlloc…
2.2.Linux(静态编译):函数库签名、syscall…
3.3.Andiord:导入包的关键函数、OKHTTP类、Crypto类…
梳理程序功能
1.提升代码可读性
2.梳理程序逻辑
3.识别各个算法(正向实现、逆向推演)
3.1.加密、压缩
3.2.常规算法
3.3.自定义算法
Flag求解
1.内存获取法
2.算法逆变换
2.线性变换
3.约束求解
5.测信道求解