game
- 运行exe
翻译一下发现是需要让/都变成-(0变为1)
此时我熟练的输入12345678结果得到了flag
2.丢进IDA
发现sub_457AB4()可能与flag有关,跟进一下发现
发现flag可能与异或运算有关(异或的逆运算也是异或)写一个cpp
#include<bits/stdc++.h>
using namespace std;
char v59[]={18,64,98,5,2,4,6,3,6,48,49,65,32,12,48,65,31,78,62,32,49,32,1,57,96,3,21,9,4,62,3,5,4,1,2,3,44,65,78,32,16,97,54,16,44,52,32,64,89,45,32,65,15,34,18,16,0};
char v2[]={123,32,18,98,119,108,65,41,124,80,125,38,124,111,74,49,83,108,94,108,84,6,96,83,44,121,104,110,32,95,117,101,99,123,127,119,96,48,107,71,92,29,81,107,90,85,64,12,43,76,86,13,114,1,117,126,0};
int main()
{
for(int i=0;i<56;i++)
{
v2[i]^=v59[i];
v2[i]^=0x13;
cout<<v2[i];
}
return 0;
}
运行一下得到flag:
此题其实也可使用bfs但可能会被卡爆(实际上是我没写出来 )