1.查壳。
无壳,32位。
2.IDA反编译。
分析代码,发现代码分成两部分。
第一部分:可知密码为Destination+@DBApp,经过sub_40100A加密得到“6E32D0943418C2C33385BC35A1470250DD8923A9”
第二部分:密码为str+第一部分,经过sub_401019加密得到“27019e688a4e62a649fd99cadaafdb4e”
最后经过sub_40100F判断。
3.分析sub_40100A,sub_401009,sub_40100F函数。
sub_40100A:分析得到这是Hash算法(0x8004表示具体加密形式:SHA1(可以网搜))
由于在主函数给出了Destination的范围(atoi函数是把字符转为int),所以可以直接爆破得到
第一部分的密码。
爆破脚本:
得到第一部分密码:123321@DBApp
sub_401009:又是哈希(0x8003:MD5)。
sub_40100F:
直接将密文进行MD5解密。(找了很多,就这一个解出来了)。
这样就得到了第一部分(123321)和第二部分密码(~!3a@0).
3。输入到程序中。得到dbapp.rtf文件打开得到flag。
4.get flag。
flag{N0_M0re_Free_Bugs}