原帖在这里,本来是求助帖的,不过现在基本弄明白这个crackme是怎么回事了:)
http://bbs.pediy.com/showthread.php?t=107973
下面这个crackme的下载地址:
http://bbs.pediy.com/attachment.php?attachmentid=39779&d=1267352283
此贴算是一次对anti debugger的小小总结吧....高手请无视掉.....
更新:2010/3/1 2:33 am
----------------------------------------------------
发现这个crackme是集中展示怎么anti ollydbg的,目前发现的方法有
(不知道具体技术的名字,还望知道的在楼下跟帖告诉我......)
1.IsDebuggerPresent
2.使用RDSC指令检测调试器存在与否
3.调用函数,故意"搞乱"返回地址,防止单步跟踪
4.使用FindWindow找到ollydbg窗口,然后使用sendmessage函数向窗口发送exit消息,使od退出
5.读取PEB结构的响应域来检测程序是否处于被调试状态.不过这里我有个疑惑:
00477220 648B0530000000 mov eax, fs:[$00000030]
00477227 85C0 test eax, eax
00477229 780F js 0047723A
0047722B 648B0518000000 mov eax, fs:[$00000018]
00477232 8B4030 mov eax, [eax+$30]
00477235 0FB64002 movzx eax, byte ptr [eax+$02]
00477239 C3 ret
0047723A 8B05E49CFCBF mov eax, [$BFFC9CE4]
00477240 8B08 mov ecx, [eax]
00477242 83795401 cmp dword ptr [ecx+$54], +$01
00477246 19C0 sbb eax, eax
00477248 40 inc eax
00477249 C3 ret
第一段代码我看懂了,第二段代码没看懂,网上搜索了一下BFFC9CE4这个地址,结果没看明白...望高手指教~
6.花指令....而且是大量的花指令......囧rz...
如果你有什么新的发现,请在下面跟帖....
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!