level 3
今天心血来潮想改一下dat档,作为一个搞代码的当然不满足于用修改器了,于是手动破解一下里面的秘密,结果发现了不少。
首先它的dat档是逐字符加密的,用一个字符串一直加。
开头有125字节的混淆代码,不影响内容,
神奇的是我发现了这个“加密字符串”是:
“SiuHungIsAGoodBearBecauseHeIsVeryGood”
那么问题来了:
SiuHung是谁?
(我在知乎问了同样问题……)





下面附上破解代码:
[c/c++]
#include <cstdio>
#include <cstring>
#include <fstream>
using namespace std;
int main()
{
const char *magic = "SiuHungIsAGoodBearBecauseHeIsVeryGood";
int len = strlen(magic);
ifstream in("D:\\monk.dat");
char t;
int i = 0;
while (in >> t)
{
putc(t - magic[i % len], stdout);
i++;
}
in.close();
return 0;
}
[c/c++]
2016年03月18日 14点03分
1
首先它的dat档是逐字符加密的,用一个字符串一直加。
开头有125字节的混淆代码,不影响内容,
神奇的是我发现了这个“加密字符串”是:
“SiuHungIsAGoodBearBecauseHeIsVeryGood”
那么问题来了:
SiuHung是谁?
(我在知乎问了同样问题……)





下面附上破解代码:[c/c++]
#include <cstdio>
#include <cstring>
#include <fstream>
using namespace std;
int main()
{
const char *magic = "SiuHungIsAGoodBearBecauseHeIsVeryGood";
int len = strlen(magic);
ifstream in("D:\\monk.dat");
char t;
int i = 0;
while (in >> t)
{
putc(t - magic[i % len], stdout);
i++;
}
in.close();
return 0;
}
[c/c++]


