| 
注册时间2007-12-1
阅读权限10
最后登录1970-1-1UID38475 周游历练 
 
 该用户从未签到 | 
 
 发表于 2008-1-15 23:18:58
|
显示全部楼层 
学习一下
| 双色球精算师破解 下载:http://www.gdcpw.com/softdown/setup1.exe
 大小:10.3 MB (10,903,840 字节)
 版本:1.0.0.0
 MD5:A92EA410BF29E261FA271B66927BF952
 工具:PEiD、OD、keymake
 破解过程:
 1.        杀毒并安装。
 2.        查壳;(Borland Delphi 6.0 - 7.0)
 3.        OD载入并运行。
 4.        随意输入注册码,单击注册,弹出错误的提示。[注册码无效,请重新输入]
 5.        根据经验,可以查找字串参考。(Find ASCII)
 Ultra String Reference,项目 3293 Address=005A0C01 Disassembly=mov eax,双色球精.005A0E80 Text String=注册码无效,请重新输入
 6.        双击进入。
 
 005A0BE5    BA 5C0E5A00          mov edx,双色球精.005A0E5C                   ; 正确提示
 005A0BEA    E8 0547E6FF          call 双色球精.004052F4
 005A0BEF    8B45 F0              mov eax,dword ptr ss:[ebp-10]
 005A0BF2    33C9                 xor ecx,ecx
 005A0BF4    33D2                 xor edx,edx
 005A0BF6    E8 81F2F3FF          call 双色球精.004DFE7C
 005A0BFB    EB 37                jmp short 双色球精.005A0C34
 005A0BFD    33C9                 xor ecx,ecx
 005A0BFF    33D2                 xor edx,edx
 005A0C01    B8 800E5A00          mov eax,双色球精.005A0E80                   ; 错误提示
 7.        根据经验,向上找关键跳和算法CALL。
 005A0B3F   /0F85 B8000000        jnz 双色球精.005A0BFD                       ; 关键跳,将跳下错误提示
 再往上就是此段开始
 005A0ACC    55                   push ebp                                ; 注册开始,可以在此下断慢慢跟下去(F2)
 
 8.        下断后,单步跟踪,不用F7跟入。(如果跟来跟去会头晕眼花)
 
 005A0ACC    55                   push ebp                                ; 注册开始
 005A0ACD    8BEC                 mov ebp,esp
 005A0ACF    B9 07000000          mov ecx,7
 005A0AD4    6A 00                push 0
 005A0AD6    6A 00                push 0
 005A0AD8    49                   dec ecx
 005A0AD9  ^ 75 F9                jnz short 双色球精.005A0AD4
 005A0ADB    51                   push ecx
 005A0ADC    53                   push ebx
 005A0ADD    56                   push esi
 005A0ADE    8BF0                 mov esi,eax
 005A0AE0    33C0                 xor eax,eax
 005A0AE2    55                   push ebp
 005A0AE3    68 2D0E5A00          push 双色球精.005A0E2D
 005A0AE8    64:FF30              push dword ptr fs:[eax]
 005A0AEB    64:8920              mov dword ptr fs:[eax],esp
 005A0AEE    8B86 04030000        mov eax,dword ptr ds:[esi+304]
 005A0AF4    8378 0C 05           cmp dword ptr ds:[eax+C],5
 005A0AF8    7E 0A                jle short 双色球精.005A0B04
 005A0AFA    A1 989E5B00          mov eax,dword ptr ds:[5B9E98]
 005A0AFF    E8 900AEEFF          call 双色球精.00481594
 005A0B04    8D55 F8              lea edx,dword ptr ss:[ebp-8]
 005A0B07    8B86 04030000        mov eax,dword ptr ds:[esi+304]
 005A0B0D    E8 9E34ECFF          call 双色球精.00463FB0
 005A0B12    8B45 F8              mov eax,dword ptr ss:[ebp-8]            ; eax中是输入的假码位数
 005A0B15    8D55 FC              lea edx,dword ptr ss:[ebp-4]            ; eax中为假码
 005A0B18    E8 038BE6FF          call 双色球精.00409620
 005A0B1D    8B45 FC              mov eax,dword ptr ss:[ebp-4]
 005A0B20    50                   push eax                                ; 入栈
 005A0B21    8D55 F4              lea edx,dword ptr ss:[ebp-C]
 005A0B24    A1 B8645A00          mov eax,dword ptr ds:[5A64B8]
 005A0B29    8B00                 mov eax,dword ptr ds:[eax]
 005A0B2B    8B80 08030000        mov eax,dword ptr ds:[eax+308]
 005A0B31    E8 7A34ECFF          call 双色球精.00463FB0
 005A0B36    8B55 F4              mov edx,dword ptr ss:[ebp-C]            ; 观察edx中,出现了真码
 005A0B39    58                   pop eax                                 ; 出栈
 005A0B3A    E8 B548E6FF          call 双色球精.004053F4                      ; 真假码对比,edx中为真码,此处可以制作内存注册机
 005A0B3F    0F85 B8000000        jnz 双色球精.005A0BFD                       ; 关键跳
 9.        制作内存注册机。
 左边:
 中断地址:005A0B3A
 中断次数:1
 第一字节:E8
 指令长度:5
 // E8 B548E6FF 10/2=5
 右边:
 内存方式
 勾寄存器:EDX
 用户信息:自己填写,建议将logo换成自己的,否则生成的exe将会被误杀、误报。
 
 总结:delphi写的程序,一般查找字串参考时Find ASCII方式就好,个人喜好。
 有时如果实在破不了,可以用dede辅助分析。
 像此类一前一后的注册提示,一般在附近就有关键跳转,可以是上面,也可以是下面。
 不用太担心找不到,找的方法是单击任意跳转,看它的箭头和颜色。看看它跳向哪里?
 今天天气好冷,现在0下,大家注意保重身体啊,学习重要,生命更重要啊。
 谢谢楼主的分享,此文与我一样水平的朋友共勉,难免疏漏,请批评指正。
 | 
 |