现在正在学习“加密解密(三)”刚学到第4张开始讲解逆向分析技术,本来以为一直很顺利,因为书上的例子都亲自操作了一遍而且没有多大障碍(本人小学过汇编,在职DELPHI代码编写)
今天在论坛上闲逛发现了书呆子以前写的一篇经验+教学帖是教人下断的:
http://bbs.pediy.com/showthread.php?t=79148
于是想试试上面的几个DEMO,第一个很轻松,第2个例子是讲关于条件断点的,我也按上面说的做了结果却不理想,因为一旦设置了条件断点后,程序始终RUN不起来会一直被OD断点也就根本无法跟踪到我针对注册码框下的断点了(句柄我没找错,而且ESP+4我也很清晰明白是什么意思)
这就让我很纳闷,于是我就想自己写个小DEMO(delphi)试试条件断点,DEMO很简单FORM上2个EDIT框,一个BUTTON,当点BUTTON的时候判断如果2个EDIT框的值,不是123的时候提示注册失败反之提示成功。
看,就这么简单的一个例子,我是如何下断的:
首先CTRL+G找GetwindowTextA,找到了,接着ALT+F9想回到程序领空看看,返回后代码如下:
00451366 |. E8 6D4FFBFF call <jmp.&user32.DefWindowProcA> ; \DefWindowProcA
0045136B |. 8B55 08 mov edx, dword ptr [ebp+8]
0045136E |. 8B52 F8 mov edx, dword ptr [edx-8]
00451371 |. 8942 0C mov dword ptr [edx+C], eax
00451374 |. 5D pop ebp
00451375 \. C3 retn
00451376 8BC0 mov eax, eax
00451378 /$ 55 push ebp
00451379 |. 8BEC mov ebp, esp
0045137B |. 83C4 C0 add esp, -40
0045137E |. 53 push ebx
0045137F |. 8D45 C0 lea eax, dword ptr [ebp-40]
00451382 |. 50 push eax ; /pPaintstruct
00451383 |. 8B45 08 mov eax, dword ptr [ebp+8] ; |
00451386 |. 8B40 FC mov eax, dword ptr [eax-4] ; |
00451389 |. 8B40 30 mov eax, dword ptr [eax+30] ; |
0045138C |. 50 push eax ; |hWnd
0045138D |. E8 CE4EFBFF call <jmp.&user32.BeginPaint> ; \BeginPaint
费解了,我明明找的是GETWINDOWTEXTA,结果怎么返回回到了DefWindowProcA
这个不是WINDOWS的默认消息处理过程么?
为什么,是因为我目前依照书本内容所学的加密解密技术不足以完成这个问题?还是?
但这个DEMO这么简单,好烦,没有确切的答复之前我都做不了什么了,今天饭就没吃好
[课程]FART 脱壳王!加量不加价!FART作者讲授!