实验吧---该题不简单
首先打开查看:
题目的要求是找出用户名为hello的注册码,初步猜测是注册机,我们简单的注册一下看看。
用户名就是hello随便你输入一个注册码,结果不出意外就是无效的,从这里我们可以看到这里出现的新的messagebox,初步猜测用ollydbg调试的时候会用到,这里猜测最后的flag就是注册码
接下来还是老样子首先查个壳子,可以看到没有加壳
尝试用ida打开看看,shift+f12查看一下
可以看到的是这里非常明显的提示,密钥正确和错误,跟下去继续查看
可以看到这里无论是正确还是错误都会弹出MessageBoxA应该就是上面我们输入错误的注册码之后弹出来的信息框,继续看我们看到push offset Caption ; "信息" 不出意外这里应该就是输入的信息了。继续分析
结构很简单就是输入信息进行确认,然后弹出一个messagebox,查看没有查看出什么,然后使用ollydbg看看
双击进入发现了关键点,这里应该就是关键的跳转了
继续查看
好像看到了什么,Happy@这里应该是有什么,返回到ida看看
查看这个函数
把每个字符的序号(从 0 开始算)与这个字符的ASCII码的平方相乘 , 然后整体再加上序号 , 得到的和继续对 0x42 求余 , 最后将结果加上 33 , 然后再转为ASCII码
不难,一开始以为用od就可以了,最后还是用的ida看一下。。。。。。