首先我们下载好文件,然后放进IDA,然后按shift+F12,进入Strings window窗口
细心的你们肯定能够发现有一行写着“this is the flag”,然后双击进去,进入另一个页面
然后在那一行右键List cross references to,然后点击ok。
进入汇编语言中,如果看不懂,可以按下F5,变成伪代码
然后我们关注最后if语句,发现输出结果与str1、str2有关,比较的又是str1和str2,而str1是输入的,我们还不能确定是否flag跟它有关,然后我们发现上面有与str2有关的计算,所以我们会推测str2有问题,而且我认为str2没有输入,所以可能str2里已经存在字符串了,所以我们双击str2,跳转到另一个页面,发现str2里面刚好有字符串
然后我们知道伪代码中最后面的str2是经过一些运算后得出的结果,而现在找出的str2是还没经过运算的,由运算过程可知,是将字符串里的‘o’换成‘0’,于是我们就可以顺利得到flag{hell0_w0rld}
还有一个小细节,如果要对一些数字进行进制转化,可以点击那个数字,然后右键,里面会显示你要转化的类型