很多人可能对逆向并不了解,以为就是二进制相关,实际并没有那么神秘,二进制一样可以很美。这篇文章是我学习路上的一个小实验过程,带各位一起看逆向暴力美学。
我们点开他有这么一串英文,大体意思就是欢迎大爷来玩啊,嗯,一听就很渣。
那我们接受邀请点击确定玩他,显示的界面如下,花里胡哨的不愧是渣男啊。
接着点开左下角的name,这里根据我十多年英语功力,大体意思就是输入VIP名字和密码,就是不是vip不让玩。
我们随便输入个信息先看看,很明显这个叫大余的应该是没来光顾过,他也是给出sorry这个人不配的回答。
那好,我们现在进入正题,如何破解它惩戒这个渣男。
先放进IDA里,其实很整洁,但不了解汇编的师傅看了第一眼可能就不想看第二眼了。
那接下来,先锁定渣男位置,点击上方工具栏,有子视图显示字符串,对于人而言字符串是更比汇编更直观的了解信息的方式,这一下就找到了渣男的所在地。双击找到具体的地址位置,这个时候就可以思考一下,既然有sorry那肯定有welcome啊,IDA可以方便我们快速找到它们。
我们进行交叉引用的跳转查看,发现有两个sorry你不配和一个good大爷请进,也能看到右边这里是两个箭头判断是sorry还是good,那这时候我们思路很明确先往上找,让他先变成跳到判断对错的模块,肯定不能让他直接sorry。
来到上边,发现要jge才能跳到另一个判断的模块,真的是渣男渣到家,那我们就帮他改邪归正。
这里jge是一个跳转的判断条件,我们不去深究感兴趣的师傅可以上网搜下。
这里我们将他改成jmp,无条件跳转,渣男改变第一步:选择性取向。
OK,现在改变了第一步了他只喜欢女的了。
我们接着往下走,渣男经过一系列经历等等,最后面临抉择,到底是要小红还是要翠花呢?
我喜欢小红所以我就暴力一点,必须选小红,对吧,强行jmp红,但是我们发现翠花有地址,小红呢?看来这渣男还是喜欢翠花,那不行我说小红就小红。
选中左边的模块按空格找到了,42fb05。
经过强行扭瓜选择了小红。
让我们保存来具体看看渣男现在如何,果然强扭的瓜很解渴嘛。