适合新手的160个creakme(四)

这题没有什么特殊字符串,Delphi写的,使用DeDeDark分析一下,找到几个特殊的事件

一个是KeyUp

一个是chkcode

还有就是中间区域的单击或是双击事件

直接跟进去这几个函数,然后找比较和跳转指令,就很容易发现,最终决定中间区域是否显示图片的跳转在,panel的单击事件的这里

直接将这个JNE跳转改成JE就可以实现爆破

然后从上面的比较指令可以看出,比较的是ESI+30C处的值和85的大小

然后跟进去每个函数,在chkcode中就可以发现,如果注册码正确,内存[ESI+30C]被赋值0x3E,否则内存[ESI+30C]等于0,内存[ESI+30C]初始值为0;若是注册码正确,在chkcode事件中,内存[ESI+30C]被赋值0x3E,在Panel1DblClick事件(双击矩形阴影进行触发)中被进一步赋值0x85,从而在Panel1Click事件(单击或双击矩形阴影进行触发)中0x0045803B处的指令就不会发生跳转,从而反馈注册成功的信息,最后界面的矩形阴影会被一幅照片取代。

然后跟踪chkcode可以直接发现它的注册码可以直接在栈上被发现,简单试几个就很容易猜出是下面的字符串,其中name是用户名

黑头Sun Bird"+str(len(name)+5)+"dseloffc-012-OK"+name

 

posted @ 2019-08-17 00:13  番茄汁汁  阅读(259)  评论(0编辑  收藏  举报