做题笔记。
下载 查壳。
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}