更多资源请进入:https://github.com/SycloverTeam/SycRevLearn 查看。
1 IDA定位main函数
运行T1.exe。
将可执行程序放入IDA中,并查找字符。
双击。
按F5,进入代码。
可以对函数进行重新命名,此时也已经得到了flag。
2 简单的加密算法
将T2.exe拖入IDA中,定位到main函数,代码如下:
可见3,flag经过了加密变换,所以我们可以将它进行逆运算得到flag。
写一个C语言脚本。
#include <stdio.h>
#include <string.h>int main()
{char str[] = "gmbh|ZPV`GJOE`JU`IBIB~";for (int i = 0; i < strlen(str); i ++)--str[i];printf("%s\n", str);return 0;
}
得到flag。
接下来看另一种简单的加密。首先我们需要知道异或的概念。
将T3.exe放入IDA中分析得到:
编写脚本:
data = [0x66,0x6D,0x63,0x64,0x7F,0x5C,0x49,0x52,0x57,0x4F,0x43,0x45,0x48,0x52,0x47,0x5B,0x4F,0x59,0x53,0x5B,0x55,0x68]
for i in range(len(data)):data[i] ^= iprint (chr(data[i]),end ="")
3 Base64编码
将T4.exe丢入IDA中,查看源码;
先处理编码再进行异或解密就可以得到Flag。
4 Base64 变表逆向
5 IDA动态调试
设置断点。
调试。
得到Flag。
5 IDA动态调试解RC4
F8单步步过。
以附加的形式调试绕过反调试。
输入的数据。
v7的数据。
转换。
得到Flag。
6 IDA代码修复 和 数组识别
函数返回值没有有意义可以去掉函数类型。
代码量就减少了很多,也可以使用快捷键v键。
还有些变量的类型错误,也可以通过这种方式修改。
7 UPX脱壳
远程执行IDA。
远程调试器。
设置IP地址。
F4程序执行到当前选中代码段。
单步走。call步过。
创建函数。
F5反编译。
得到Flag。