更多资源请进入:https://github.com/SycloverTeam/SycRevLearn 查看。
运行T1.exe。

将可执行程序放入IDA中,并查找字符。


双击。


按F5,进入代码。

可以对函数进行重新命名,此时也已经得到了flag。
将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] ^= i
print (chr(data[i]),end ="")

将T4.exe丢入IDA中,查看源码;


先处理编码再进行异或解密就可以得到Flag。




设置断点。

调试。



得到Flag。
F8单步步过。
以附加的形式调试绕过反调试。

输入的数据。

v7的数据。

转换。

得到Flag。
函数返回值没有有意义可以去掉函数类型。



代码量就减少了很多,也可以使用快捷键v键。
还有些变量的类型错误,也可以通过这种方式修改。



远程执行IDA。




远程调试器。


设置IP地址。

F4程序执行到当前选中代码段。
单步走。call步过。



创建函数。

F5反编译。


得到Flag。