工具:OD,DEDE
破解软件:Goformulary
过程:
1.使用peid查壳,没壳,delphi写的,哈哈,这不是现成的羔羊吗
2.使用DEDE反编译,得到窗口消息的响应过程.很奇怪,没有找到对注册码的处理过程.我开始以为是DEDE的问题.又使用OD设置WM_LMOUSEUP断点,使用RUN跟踪,对统计出现一次的代码一个个排查,还是没有.也没有发现对注册表或文件读写的迹象.
这时我对写这程序的作者真的佩服.随后一天都没有结果.
后来我假设这程序就没有对注册码的操作.果然,调试程序没有发现对储存注册码的内存读写的代码.我确定这程序的注册功能是假的.
3.随后我对程序功能限制的双击消息处理函数进行查看,发现了关键的跳转:
00484F75 . 8B45 FC mov eax, dword ptr [ebp-4]
00484F78 . 8B80 E8020000 mov eax, dword ptr [eax+2E8]
00484F7E . 8B55 F4 mov edx, dword ptr [ebp-C]
00484F81 . E8 7208FEFF call 004657F8
00484F86 . 66:85C0 test ax, ax
00484F89 . 0F8E 57090000 jle 004858E6
00484F8F . 8B45 FC mov eax, dword ptr [ebp-4]
00484F92 . 8B80 04030000 mov eax, dword ptr [eax+304]
00484F98 . E8 FB7AFEFF call 0046CA98
00484F9D . 85C0 test eax, eax
00484F9F . 0F84 41090000 je 004858E6
00484FA5 . 8B45 FC mov eax, dword ptr [ebp-4]
00484FA8 80B8 59030000>cmp byte ptr [eax+359], 0 -关键的比较
00484FAF . 75 73 jnz short 00485024 -跳转
00484FB1 . 8B45 FC mov eax, dword ptr [ebp-4]
00484FB4 . 8B80 04030000 mov eax, dword ptr [eax+304]
00484FBA . E8 D97AFEFF call 0046CA98
00484FBF . E8 DC5EFEFF call 0046AEA0
00484FC4 . 83F8 05 cmp eax, 5
00484FC7 . 7E 5B jle short 00485024
00484FC9 . 8B45 FC mov eax, dword ptr [ebp-4]
00484FCC . 80B8 2F030000>cmp byte ptr [eax+32F], 0
00484FD3 . 75 4F jnz short 00485024
00484FD5 . 8D45 D8 lea eax, dword ptr [ebp-28]
00484FA8处的代码比较eax+359和0,决定了程序是否注册.查看eax值00F019C8.
下面就不要多说了,使用二进制的文件读写工具修改就是了.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)