查看文件结构
很正常的一个文件,运行后显示需要提供参数
ida
wow,flag,不对。。看了其他几个函数后发现有一个加密函数和一个保存strcmp的地址的函数,想动态调试的结果环境出了点问题,服务端程序不能运行。
很容易看出来加密后回了main参与了比较
加密思想:
- 对输入flag按字节和qword_201060中的数相减
- 完成后与假flag比较
wp
#include <stdio.h>
#include<stdint.h>
using namespace std;
int main()
{
char flag[] = "zer0pts{********CENSORED********}";
long long int k[5] = {0, 0x410A4335494A0942, 0x0B0EF2F50BE619F0, 0x4F0A3A064A35282B, 0};
for (int i = 0; i < 4; i++)
{
*(long long int *)&(flag[i * 8]) += k[i];
}
puts(flag);
return 0;
}
zer0pts{l3ts_m4k3_4_DETOUR_t0d4y}