一.
老规矩,先查下是否有壳。
没壳,直接拖入ida看。
二.
IDA的命令
shift+F12 查看字符串
F5 反编译
发现了flag等敏感词,点击进入看看。
x键可以直接进去调用这个变量的函数中去。
这里是我们的核心代码了,F5大法走起。
这里分析下来,我们的输入经过了三个过程:
1.SUB_4110BE函数
2.for循环
3.sub_411127函数
同时找到str2。
先一步一步来,第一个函数,点进去看看
发现是base64的编码(这个我也是看其他老哥的博客,才知道这玩意是base64加密的,就当记下来吧)
2.SUB_41127函数
这玩意反编译不出来,说明被保护了,我们只能去看反汇编的代码了,老老实实分析
eax值直接决定了是不是right flag,test eax eax影响了零标志位,但是前面的strncmp函数也影响了零标志位,所以如果eax搞事情的话,能直接让我们跳转到wrong flag,后来发现这玩意对eax完全没影响。。。所以可以不管了。
3.for循环这个比较简单,应该都能懂
总结下来,就是输入的必须要和str2相同。
一个脚本搞定: