crazy
main
进来后首先看main 函数。大致看一下。就差不多可以开始分析了。
HighTemplar::HighTemplar
这个是一个copy
将input的字符串。copy到 a1 + 16 和 a1 + 48 的位置,
然后再a1 + 80 的位置 copy : 327a6c4304ad5938eaf0efb6cc3e53dc
fun 1 2 3
这里我没先看。因为第一眼没看懂,然后我们就来看看判断的地方。
HighTemplar::getSerial
首先是:v1 = *(_BYTE *)std::string::operator[]((char *)this + 80, (int)i);
v1 就是 327a6c4304ad5938eaf0efb6cc3e53dc
然后要让flag == 327a6c4304ad5938eaf0efb6cc3e53dc
因为之前有一个 + 16 , + 48 ,+ 80 所以这里可以猜到。
ok 我们来看看if 上面的那个函数【这个函数估计就是给flag进行加密的函数】
HighTemplar::calculate
它首先是 (xor 80) + 23
然后是 (xor 19) +11
我们来写解密。
1 | enc = b"327a6c4304ad5938eaf0efb6cc3e53dc" |
flag{tMxqdstOscrvtwb~aOba}qddtbrtcd}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Safety-Blog!