实验吧---该题不简单

  首先打开查看:

题目的要求是找出用户名为hello的注册码,初步猜测是注册机,我们简单的注册一下看看。

用户名就是hello随便你输入一个注册码,结果不出意外就是无效的,从这里我们可以看到这里出现的新的messagebox,初步猜测用ollydbg调试的时候会用到,这里猜测最后的flag就是注册码

 

接下来还是老样子首先查个壳子,可以看到没有加壳

 

尝试用ida打开看看,shift+f12查看一下

 

可以看到的是这里非常明显的提示,密钥正确和错误,跟下去继续查看

 

可以看到这里无论是正确还是错误都会弹出MessageBoxA应该就是上面我们输入错误的注册码之后弹出来的信息框,继续看我们看到push    offset Caption  ; "信息"  不出意外这里应该就是输入的信息了。继续分析

 

结构很简单就是输入信息进行确认,然后弹出一个messagebox,查看没有查看出什么,然后使用ollydbg看看

 

 

双击进入发现了关键点,这里应该就是关键的跳转了

 

继续查看

 

 

好像看到了什么,Happy@这里应该是有什么,返回到ida看看

 

查看这个函数

 

把每个字符的序号(从 0 开始算)与这个字符的ASCII码的平方相乘 , 然后整体再加上序号 , 得到的和继续对 0x42 求余 , 最后将结果加上 33 , 然后再转为ASCII码

 

 

不难,一开始以为用od就可以了,最后还是用的ida看一下。。。。。。 

 

posted @ 2019-06-04 08:13  Maggieisxin  阅读(310)  评论(0编辑  收藏  举报