飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3738|回复: 5

绿星锄大D注册机的制作

[复制链接]

该用户从未签到

发表于 2006-7-14 11:33:40 | 显示全部楼层 |阅读模式
【文章标题】: 绿星锄大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:[ESP+2C]
  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:[ESP+24]                 ; |
  004095C6   . |E8 05DF0000   CALL Dadi.004174D0                            ; \Dadi.004174D0
  004095CB   . |8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]
  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:[ESP+24]                 ; |
  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:[EBP+48],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:[EAX]
  0040958B   .  8B4C24 18     MOV ECX,DWORD PTR SS:[ESP+18]                             |注意啊!
  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:[ESP+1C]
  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   00428F40  Dadi.00428F40
  0012F968   0012FA24
  0012F96C   00000001
  0012F970   0042AC40  Dadi.0042AC40
  0012F974   00377028  ASCII "jjddgg"            <--我输入的注册名
  0012F978   00377B68  ASCII "1234567890"        <--我输入的注册码
  0012F97C   00377C58  ASCII "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 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2006-7-14 14:05:53 | 显示全部楼层
是明码比较,分析得不错,还需继续努力!呵呵~~
PYG19周年生日快乐!

该用户从未签到

发表于 2006-7-14 14:09:17 | 显示全部楼层
写得好,值得初学者学习。
PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-1-14 00:02
  • 签到天数: 138 天

    [LV.7]常住居民III

    发表于 2006-7-14 14:57:24 | 显示全部楼层
    是的分析的不错!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-16 02:18:59 | 显示全部楼层
    现在好破的软件越来越少了,好不容易能够找到这么个来增强一下信心,真是不错啊!



    有同感啊!此文不错,很适合我这样的菜鸟学习!谢谢
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2016-8-5 17:44
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2006-7-26 17:07:58 | 显示全部楼层
    怎么看不到算法?
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表