【破文标题】简单的TxtEdit 4.5.2注册算法 【破文作者】XXNB 【作者邮箱】支持PYG 【作者主页】http://free.ys168.com/?binbinbin7456 【破解工具】OD 【破解平台】xpsp2 【软件名称】TxtEdit 4.5.2 【软件大小】924KB 【原版下载】http://www.onlinedown.net/soft/23539.htm 【保护方式】名+码 【软件简介】文本编辑器,有拼写检查功能! 软件语言:英文 软件类别:国外软件/共享版/编辑软件 运行环境:Win9x/Me/NT/2000/XP/2003 加入时间:2006-11-20 9:22:12 下载次数:901 【破解声明】向大侠们学习!!!只为学习! ------------------------------------------------------------------------ 【破解过程】 ------------------------------------------------------------------------
1、用delphi的利器,dede。我们很容易就找到按钮的断点。“找到关键断点,成功一半”
我们输入信息:regname:binbin regNO: 123456789 经过我的分析后,输入的注册码要大于“10000000”。具体看下面的代码分析。
004E7080 $Content$nbsp; 55 push ebp 004E7081 . 8BEC mov ebp, esp 004E7083 . B9 04000000 mov ecx, 4 004E7088 > 6A 00 push 0 004E708A . 6A 00 push 0 004E708C . 49 dec ecx 004E708D .^ 75 F9 jnz short 004E7088 004E708F . 51 push ecx 004E7090 . 53 push ebx 004E7091 . 56 push esi 004E7092 . 57 push edi 004E7093 . 8945 FC mov dword ptr [ebp-4], eax 004E7096 . 33C0 xor eax, eax 004E7098 . 55 push ebp 004E7099 . 68 A8724E00 push 004E72A8 004E709E . 64:FF30 push dword ptr fs:[eax] 004E70A1 . 64:8920 mov dword ptr fs:[eax], esp 004E70A4 . C745 F0 00000>mov dword ptr [ebp-10], 0 004E70AB . C745 F4 00000>mov dword ptr [ebp-C], 0 004E70B2 . 8D55 EC lea edx, dword ptr [ebp-14] 004E70B5 . 8B45 FC mov eax, dword ptr [ebp-4] 004E70B8 . 8B80 28030000 mov eax, dword ptr [eax+328] 004E70BE . E8 DD80F8FF call 0046F1A0 004E70C3 . 8B45 EC mov eax, dword ptr [ebp-14] ; 用户名出现了 binbin 004E70C6 . E8 69D7F1FF call 00404834 ; 计算位数 004E70CB . 8BD8 mov ebx, eax 004E70CD . 4B dec ebx 004E70CE . 85DB test ebx, ebx 004E70D0 . 7E 34 jle short 004E7106 004E70D2 . BE 01000000 mov esi, 1 004E70D7 > 8D55 E8 lea edx, dword ptr [ebp-18] 004E70DA . 8B45 FC mov eax, dword ptr [ebp-4] 004E70DD . 8B80 28030000 mov eax, dword ptr [eax+328] 004E70E3 . E8 B880F8FF call 0046F1A0 004E70E8 . 8B45 E8 mov eax, dword ptr [ebp-18] ; 用户名 004E70EB . 8A4430 FF mov al, byte ptr [eax+esi-1] ; 逐个取用户名 004E70EF . 25 FF000000 and eax, 0FF ; 得到ascii码值 004E70F4 . 33D2 xor edx, edx 004E70F6 . 0345 F0 add eax, dword ptr [ebp-10] ; 加上一次的结果 004E70F9 . 1355 F4 adc edx, dword ptr [ebp-C] 004E70FC 8945 F0 mov dword ptr [ebp-10], eax ; 存储结果 004E70FF . 8955 F4 mov dword ptr [ebp-C], edx 004E7102 . 46 inc esi 004E7103 . 4B dec ebx 004E7104 .^ 75 D1 jnz short 004E70D7 ; 累加用户名ascii码值,存储在ebp-10。注意了,要去掉最后
一位,就是说,最后一位不累加 004E7106 > 33C0 xor eax, eax ; 204(516)去掉最后一位的累加值 004E7108 . 55 push ebp 004E7109 . 68 7F714E00 push 004E717F 004E710E . 64:FF30 push dword ptr fs:[eax] 004E7111 . 64:8920 mov dword ptr fs:[eax], esp 004E7114 . 8D55 E4 lea edx, dword ptr [ebp-1C] 004E7117 . 8B45 FC mov eax, dword ptr [ebp-4] 004E711A . 8B80 2C030000 mov eax, dword ptr [eax+32C] 004E7120 . E8 7B80F8FF call 0046F1A0 004E7125 . 8B45 E4 mov eax, dword ptr [ebp-1C] ; 假码出现了,还有位数 004E7128 . E8 2B25F2FF call 00409658 ; 哇,转成16进制 004E712D . 0345 F0 add eax, dword ptr [ebp-10] ; 加上用户名的累加值 004E7130 . 1355 F4 adc edx, dword ptr [ebp-C] 004E7133 . 8945 F0 mov dword ptr [ebp-10], eax 004E7136 . 8955 F4 mov dword ptr [ebp-C], edx 004E7139 . 837D F4 00 cmp dword ptr [ebp-C], 0 004E713D . 75 0B jnz short 004E714A 004E713F 817D F0 80969>cmp dword ptr [ebp-10], 989680 ; 和“10000000”比较 004E7146 . 72 10 jb short 004E7158 ; 小于的话跳。跳就失败,所以一定要大于 004E7148 . EB 02 jmp short 004E714C 004E714A > 7C 0C jl short 004E7158 004E714C > 8B45 FC mov eax, dword ptr [ebp-4] 004E714F . 83B8 3C030000>cmp dword ptr [eax+33C], 5 004E7156 . 7E 1D jle short 004E7175 004E7158 > 8B0D 4CF94F00 mov ecx, dword ptr [4FF94C] ; TxtEdit.005019BC 004E715E . 8B89 78010000 mov ecx, dword ptr [ecx+178] 004E7164 . B2 01 mov dl, 1 |