re100
- 下载下来并没有拓展名, 查看16进制发现是个apk文件。
- 拖入JEB或者APK改之理。
还有一部分没截到,根据题意, 一个字符串要先经过 MD5 加密, 然后将得到的MD5值进行base64加密, 如果与下面这一串相等则正确。
NzU2ZDJmYzg0ZDA3YTM1NmM4ZjY4ZjcxZmU3NmUxODk=
上面的字符串进行base64解密得到
756d2fc84d07a356c8f68f71fe76e189
曾经想过正向爆破…
但是正向爆破需要的时间…太多太多,而且不知道flag有多少位。
在线解密得到:
}321nimda{galflj
- 反过来就是flag了
jlflag{admin123}
re200
查看16进制 文件头为 4D 5A,为exe文件的文件头
但是…
- 而且载入IDA也没啥效果, 而且没法载入OD。
- WP说是文件头有损坏, 那么下面的任务就是修复PE文件头了。
- 位于 30h,c位置 的E9 为e_lfanew字段, 这个字段指明了PE文件头在文件中的位置
- PE文件头为50 45 00 00
- 显然 E9 指向的位置不对, 应该指向50才对,所以需要将E8改为E9
- 再将ff改为00
- 保存, 强迫症… 加个拓展名.exe
这下正常显示了。
拖入IDA, 一堆C++伪代码, 看着有点恶心。迷迷糊糊按着WP写了个破解算法。
- 起初写的python算法, 然后发现,执行效率低得感人…
- 具体效率能有多低, 看这一张图就知道了….
补充: 重新测试了一遍…原来是我算法有个地方写错了…C和python的都写错了…
但python效率还是低, C的都按照错误算法输出了好多…但python一个都没输出….
加法优先级大于异或。。。
输出有多组,挨个代进去, 最后15 6 13这一组是正确的。
再结合IDA静态分析的结果,最后flag为:
jlflag{15613abc}