jjdg 发表于 2006-7-14 11:33:40

绿星锄大D注册机的制作

【文章标题】: 绿星锄大D注册机的制作
【软件名称】: 绿星锄大D
【软件大小】: 1694k
【下载地址】: 自己搜索下载;已经上传到sjmzsf.ys168.com,大家也可以在那里下载!
【加壳方式】: 无壳
【使用工具】: OD KEYMAKER1.73
【软件介绍】: 扑克游戏,支持联网!
【作      者】: jjdg
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
安装完成后,运行程序,会出现版权说明,同时在程序的标题栏显示[未注册],点击注册,在弹出的注册对话框里面,输入用户名jjddgg,注册码1234567890,确定,
弹出提示:用户名或注册码输入错误,请重新注册!

OD载入,右键,查找字符串,找到“用户名或注册码输入错误,请重新注册!”双击来到,
004095AA   . /74 5D         JE SHORT Dadi.00409609                                    |跳到出错的地方去!
004095AC   . |8D5424 2C   LEA EDX,DWORD PTR SS:
004095B0   . |6A 01         PUSH 1                                        ; /Arg5 = 00000001
004095B2   . |52            PUSH EDX                                    ; |Arg4
004095B3   . |68 BC114300   PUSH Dadi.004311BC                            ; |usename
004095B8   . |68 E8114300   PUSH Dadi.004311E8                            ; |software\luxing dadi\
004095BD   . |68 02000080   PUSH 80000002                                 ; |Arg1 = 80000002
004095C2   . |8D4C24 24   LEA ECX,DWORD PTR SS:               ; |
004095C6   . |E8 05DF0000   CALL Dadi.004174D0                            ; \Dadi.004174D0
004095CB   . |8D4424 20   LEA EAX,DWORD PTR SS:
004095CF   . |6A 01         PUSH 1                                        ; /Arg5 = 00000001
004095D1   . |50            PUSH EAX                                    ; |Arg4
004095D2   . |68 B4114300   PUSH Dadi.004311B4                            ; |useid
004095D7   . |68 E8114300   PUSH Dadi.004311E8                            ; |software\luxing dadi\
004095DC   . |68 02000080   PUSH 80000002                                 ; |Arg1 = 80000002
004095E1   . |8D4C24 24   LEA ECX,DWORD PTR SS:               ; |
004095E5   . |E8 E6DE0000   CALL Dadi.004174D0                            ; \Dadi.004174D0
004095EA   . |6A 40         PUSH 40
004095EC   . |68 DC164300   PUSH Dadi.004316DC                            ;用户授权方式
004095F1   . |68 BC164300   PUSH Dadi.004316BC                            ;已注册成功, 请重新启动游戏 !
004095F6   . |8BCD          MOV ECX,EBP
004095F8   . |C745 48 02000>MOV DWORD PTR SS:,2
004095FF   . |E8 1E330100   CALL <JMP.&MFC42.#4224_?MessageBoxA@CWnd@@QAE>
00409604   . |E9 90000000   JMP Dadi.00409699
00409609   > \6A 10         PUSH 10                                                                                 |<--注意!这是从上面跳过来的!所以往上看!
0040960B   .68 DC164300   PUSH Dadi.004316DC                            ;用户授权方式
00409610   .68 94164300   PUSH Dadi.00431694                            ;用户名或注册码输入错误, 请重新注册 !   |<--来到这里!
00409615   .8BCD          MOV ECX,EBP

再往上看,注册码验证的部分一定还在前面,
00409589   .8B00          MOV EAX,DWORD PTR DS:
0040958B   .8B4C24 18   MOV ECX,DWORD PTR SS:                           |注意啊!
0040958F   .50            PUSH EAX                                    ; /s2       |接连2个数据入栈了
00409590   .51            PUSH ECX                                    ; |s1       |后面跟了个call
00409591   .FF15 34894200 CALL DWORD PTR DS:[<&MSVCRT._mbscmp>]         ; \_mbscmp| 看看mbscmp!是不是对注册码作比较呢?好!就在00409589下个断看看!
00409597   .83C4 08       ADD ESP,8
0040959A   .8D4C24 1C   LEA ECX,DWORD PTR SS:
0040959E   .85C0          TEST EAX,EAX
004095A0   .0F94C3      SETE BL
004095A3   .E8 FE2D0100   CALL <JMP.&MFC42.#800_??1CString@@QAE@XZ>
004095A8   .84DB          TEST BL,BL

f9,运行,注册,输入注册名和注册码,确定,回到OD,
停在00409589处,看看OD右下角里面的内容,
0012F960   00378BB0
0012F964   00428F40Dadi.00428F40
0012F968   0012FA24
0012F96C   00000001
0012F970   0042AC40Dadi.0042AC40
0012F974   00377028ASCII "jjddgg"            <--我输入的注册名
0012F978   00377B68ASCII "1234567890"      <--我输入的注册码
0012F97C   00377C58ASCII "ySkmqsymkm"      <--这个是什么呢?会不会就是真正的注册码呢?先不忙,f8往下看看再说!

f8一下,注意寄存器里面的EAX的值变化了:EAX 00377C58 ASCII "ySkmqsymkm",这么巧!
再f8一下,
0040958F   .50            PUSH EAX                                    ; /s2 = "ySkmqsymkm"
再来一下,
00409590   .51            PUSH ECX                                    ; |s1 = "1234567890"
看看寄存器里面
EAX 00377C58 ASCII "ySkmqsymkm"    |哇!真的是在输出注册码哦!
ECX 00377B68 ASCII "1234567890"    |
实际上,看到这里基本上就可以确定了!
要不,带进去试试,注册成功!

好了!
打开keymaker1.73,“其它”-->“内存注册机”,填入以下信息:
中断地址:40958F,
次数:1,
指令:50,
长度:1
右边的注册码框里面,选择内存方式,寄存器,EAX,生成注册机。

现在好破的软件越来越少了,好不容易能够找到这么个来增强一下信心,真是不错啊!

[ 本帖最后由 jjdg 于 2006-7-14 11:43 编辑 ]

lhl8730 发表于 2006-7-14 14:05:53

是明码比较,分析得不错,还需继续努力!呵呵~~

绝恋风尘 发表于 2006-7-14 14:09:17

写得好,值得初学者学习。

bfqyygy 发表于 2006-7-14 14:57:24

是的分析的不错!!

hanxiucao 发表于 2006-7-16 02:18:59

现在好破的软件越来越少了,好不容易能够找到这么个来增强一下信心,真是不错啊!



有同感啊!此文不错,很适合我这样的菜鸟学习!谢谢

寒湖鹤影 发表于 2006-7-26 17:07:58

怎么看不到算法?
页: [1]
查看完整版本: 绿星锄大D注册机的制作