首页 > 技术文章 > crackme160--(5)

distanceblog 2016-01-14 19:21 原文

这里不打算贴图。因为这个我压根就没破解出来啊--!

不管怎么样还是试了下。说是dephi程序那么直接上dede吧。无法解析。用OL说是selfmodify的文件。那么有壳。现在阶段作为新手应该手动脱壳。

OL打开第一便是pushad这样在ESP处下硬件断点F9跑起来停在Jmp语句上。这样就开心了。直接跳到OEP。用PETOOLS dump进程。不过这里有个小插曲

dump出来的程序修复IAT后无法正常运行。于是我就将原程序与脱壳后的一步步F8比较。后发现在原程序处一个调用系统函数的地方。脱壳之后的程序该位置却不是正确的数据。于是我想到是否是dump失误。于是这里用到了将petools  dump设置改为直接由磁盘文件读取PE头。这样成功dump

 

程序界面上一个注册按钮。于是我将dump后的程序放入dede发现无法读取事件。只好用ol一步步来。找到窗口过程处理函数用我在学VC++时的经历

1.在registerclass处断点  发现在程序界面出现前断到好几次但是每次窗口处理函数所指向的地址均相同。于是在该地址处下断 程序跑起来后点击按钮或其他任何操作都无法断到。失败

2.用在dispatchmessage处下断。用条件断点当MSG结构的消息类型为201(leftbuttonup)202(leftbuttondown)下断。点击后能断到。但是。后面代码我实在不知道他到底想干嘛呀!!!

没办法了网上找了一下看到这篇

http://www.52pojie.cn/forum.php?mod=viewthread&tid=264914

感谢这位@44018723(应该是新手据我观察)

他那我找到线索、程序跟据动画来验证注册码。也就是说用settimer的回调里写验证事件。

我醉了醉了。你赢了jojo大大

下次再战

推荐阅读