攻防世界逆向入门题之Mysterious"/>
攻防世界逆向入门题之Mysterious
攻防世界逆向入门题之Mysterious
继续开启全栈梦想之逆向之旅~
这题是攻防世界逆向入门题的Mysterious
下载附件,是一个有百度图案字样的东西:
照例扔入exeinpefo中查看信息:
W32可执行文件,无壳,扔入IDA32中看伪代码判断题目类型:
没有主函数,看来是非正常文件,双击程序看看有什么信息可以提取:
一个输入密码型弹框,Crack按钮按不下去,信息够了,查看IDAstring窗口:
没有发现input the password字眼,应该是隐藏了,想起弹框是用了Messagebox的windowsAPI函数,于是双击跟踪该函数:(要在import窗口才能跟踪,string窗口不行,因为import是导入API外部函数的窗口,string窗口那里可能只是刚好有同名字符串而已)
逻辑很简单,真的简单,但我就是错了:
错误1:习惯性的字符串反转,这里不是内存操作,就是打印Text这个字符串,所以不用反转:
MessageBoxA(0, Text, "well done", 0);
错误2:我把v10的123转成ASCII字符了,对应的字符是{,于是我就得到一个神奇的flag:flag{{_Buff3r_0v3rf|0w}
这个当然是错的,关键是我还直接以为这是假的flag代码而去寻找其它函数去了。
后面就引发了一系列问题,比如设想Crack按钮按不下是不是要动态调整调整跳转等等:
结果是失败的,我都不知道它是从那个函数跳出来的!!!
后来查了资料(WP)才发现,flag的确在这里,关键是{写成123即可,不用转ASCII字符,想想也对flag就是数字字符的结合啊!!!
所以最后flag:
flag{123_Buff3r_0v3rf|0w}
至于那个crack按钮为什么按不下,可能考点不在那吧~
总结:
错误1:习惯性的字符串反转,这里不是内存操作,就是打印Text这个字符串,所以不用反转:
错误2:我把v10的123转成ASCII字符了,对应的字符是{,于是我就得到一个神奇的flag:flag{{_Buff3r_0v3rf|0w}
这个当然是错的,关键是我还直接以为这是假的flag代码而去寻找其它函数去了。
{写成123即可,不用转ASCII字符,想想也对flag就是数字字符的结合啊!!!
解毕!敬礼!
更多推荐
攻防世界逆向入门题之Mysterious
发布评论