适合新手的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