谢谢斑竹分享啊!
谢谢斑竹分享啊!追码我也能成功,但搞出内存注册机最好了!
追码我也能成功,但搞出内存注册机最好了! 是啊,对我等菜鸟来说就要这样经验的资料啊,学习了 不需要改动REG.DLL的名字也是可以的我的注册码是"97JWZQFFCL7H"该软件只是用字符串查找就可以找到
注册码的 也可查ASCII码到这里
005A0BDF|.8B4D EC mov ecx, dword ptr
005A0BE2|.8D45 F0 lea eax, dword ptr
005A0BE5|.BA 5C0E5A00 mov edx, 005A0E5C ;注册成功!请记住您的密码:
005A0BEA|.E8 0547E6FF call 004052F4
005A0BEF|.8B45 F0 mov eax, dword ptr
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 ;注册码无效,请重新输入
向上看005A0BFD|>33C9 xor ecx, ecx跳转来自005A0B3F
005A0B3A|.E8 B548E6FF call 004053F4关键callF7进去
005A0B3F|. /0F85 B8000000 jnz 005A0BFD ///改NOP爆破
F7进去后到这里
004053F4/$53 push ebx
004053F5|.56 push esi
004053F6|.57 push edi
004053F7|.89C6 mov esi, eax
004053F9|.89D7 mov edi, edx
004053FB|.39D0 cmp eax, edx
004053FD|.0F84 8F000000 je 00405492
00405403|.85F6 test esi, esi
00405405|.74 68 je short 0040546F
00405407|.85FF test edi, edi
00405409|.74 6B je short 00405476
0040540B|.8B46 FC mov eax, dword ptr
0040540E|.8B57 FC mov edx, dword ptr
00405411|.29D0 sub eax, edx
00405413|.77 02 ja short 00405417
00405415|.01C2 add edx, eax
00405417|>52 push edx
00405418|.C1EA 02 shr edx, 2
0040541B|.74 26 je short 00405443
0040541D|>8B0E /mov ecx, dword ptr
0040541F|.8B1F |mov ebx, dword ptr
00405421|.39D9 |cmp ecx, ebx
00405423|.75 58 |jnz short 0040547D
00405425|.4A |dec edx
00405426|.74 15 |je short 0040543D
00405428|.8B4E 04 |mov ecx, dword ptr
注意寄存器
EAX 01062830 ASCII "124" /我们输入的假码
ECX FFFFFFF2
EDX 01061180 ASCII "974DF5KKHGEC" /真的注册码
EBX 01059C9C
ESP 0012F1F0
EBP 0012F244
ESI 01059530
EDI 0012F3C8
EIP 004053F4 双色球精.004053F4 正想破这个软件,感谢LZ的经验/:good
刚刚做了个注册机
看了下做了个注册机,该软件的REG.DLL不需要更名的 同理乐彩透也是可以找到注册码和做注册机的学习一下
双色球精算师破解下载: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:
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:
005A0AEB 64:8920 mov dword ptr fs:,esp
005A0AEE 8B86 04030000 mov eax,dword ptr ds:
005A0AF4 8378 0C 05 cmp dword ptr ds:,5
005A0AF8 7E 0A jle short 双色球精.005A0B04
005A0AFA A1 989E5B00 mov eax,dword ptr ds:
005A0AFF E8 900AEEFF call 双色球精.00481594
005A0B04 8D55 F8 lea edx,dword ptr ss:
005A0B07 8B86 04030000 mov eax,dword ptr ds:
005A0B0D E8 9E34ECFF call 双色球精.00463FB0
005A0B12 8B45 F8 mov eax,dword ptr ss: ; eax中是输入的假码位数
005A0B15 8D55 FC lea edx,dword ptr ss: ; eax中为假码
005A0B18 E8 038BE6FF call 双色球精.00409620
005A0B1D 8B45 FC mov eax,dword ptr ss:
005A0B20 50 push eax ; 入栈
005A0B21 8D55 F4 lea edx,dword ptr ss:
005A0B24 A1 B8645A00 mov eax,dword ptr ds:
005A0B29 8B00 mov eax,dword ptr ds:
005A0B2B 8B80 08030000 mov eax,dword ptr ds:
005A0B31 E8 7A34ECFF call 双色球精.00463FB0
005A0B36 8B55 F4 mov edx,dword ptr ss: ; 观察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下,大家注意保重身体啊,学习重要,生命更重要啊。
谢谢楼主的分享,此文与我一样水平的朋友共勉,难免疏漏,请批评指正。