做题笔记。
下载 查壳。
32ida打开。
先运行一下:
C++写的。
追踪 good job
具体跟踪分析:
说白了,就是一个用于判断 flag ==key的。
往上走:
跟进。
打开 od吧。 锁定地址 追踪看看。(此题,ida不能动态 od可以的。)
所以实际,是我们输入进行了xor。
脚本:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
unsigned char key[] = {
0x72, 0x78, 0x75, 0x73, 0x6F, 0x43, 0x71, 0x78,
0x77, 0x7B, 0x79, 0x71, 0x4B, 0x60, 0x7B, 0x4B,
0x5A, 0x71, 0x61, 0x67, 0x7B, 0x72, 0x60, 0x69,0
};//"rxusoCqxw{yqK`{KZqag{r`i"
for (int i = 0; i <strlen(key); i++)
{
key[i] = (key[i] ^ 0x14);
printf("%c", key[i]);
}
printf("\n");
system("pause");
return 0;
}
flag{Welcome_to_Neusoft}