1.拿到文件,老规矩,进行查壳
收集信息,无壳,32位程序
2.拖入ida中
先查找main函数
并没有什么实质性的收获
那么我们就查找字符串
发现flag字符串
跟进
发现右边的数据是红色的,ida不能正常反编译
我们就看汇编代码,寻找原因
发现两个一样的代码,所以这个地方就可以推测是花指令
我们nop(跳过)这个花指令就可以了
首先我们将鼠标的光标放到第二个push
然后修改为90(nop)
然后发现已经修改为nop了
接下来就是按“p”键
然后就可以使用F5了
对这个程序的主体进行简单的分析
发现主要的函数就是sub_401005 函数和sub_40101E函数
那我们就先跟进第一个函数
发现就是一个异或
好了,我们写脚本
得到这个字符串,我们带回网站进行验证,发现是错误
发现下面还有一个sub_40101E函数
我们进行跟进
知道了标识符,进行查表,发现是md5加密
也就是说,对string1进行了md5加密
那么我们就把我们得到的字符串进行MD5解密
解密的结果是123321
带回网站进行验证,还是错误
那么这个时候我们发现下面还有一个异或函数
继续跟进
跟上一个异或函数一样,只是参数发生了变化
v5从2变成了6
instring变成了
好了,接下来就是写脚本
最后得到flag为flag{n0_Zu0_n0_die}(不作就不会死)
有趣!!!!!
带回网站进行验证
正确!!!!!!