飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5604|回复: 18

[原创] 菜鸟简单爆破和追码做注册机动画的破文补上

[复制链接]

该用户从未签到

发表于 2008-1-5 16:53:56 | 显示全部楼层 |阅读模式
发表前的说明:昨天晚上第一次做教程,没有什么经验,做完后,看到没有时间了,本想把破文整理好发表的,但是光上传动画就用了我很久,我这儿网速慢,同学还下东西,更慢了!觉得破文留着也没用,给和我一样的菜鸟分享一下,并且把原来的crack和注册机也一起上传!希望这不会破会论坛的版规!也希望大家指点!(最近期末考试了,学习破解的时间也少了,只有寒假和过年到学校在好好学习了!/:002 )
发表动画的地址:https://www.chinapyg.com/viewthr ... &extra=page%3D1

【文章标题】: 303-一个crack的爆破和寻找注册码
【文章作者】: unpack
【作者邮箱】: *
【作者主页】: *
【软件名称】: 303.exe
【软件大小】: 303 KB
【下载地址】: 自己搜索下载
【加壳方式】: 未加壳
【保护方式】: 注册码
【编写语言】: Borland Delphi 4.0 - 5.0
【使用工具】: OD、PEiD
【操作平台】: windows xp
【软件介绍】: 瑞雪波斯猫一个爆破教程中的crack。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  前几天,不知在哪个论坛下了瑞雪波斯猫的破解教程,主要是教菜鸟识别一些破解的基础知识,方法用的是爆破法,好像是
  用w32dsm爆破的,爆破的是301的,然后留给我们学习的是303的教程。我想我学了有段时间了,也想爆破爆破啊!以前爆破
  过一个crack,但是那个太简单了,不敢被老鸟们笑话,就没有发表了。而今天是我实践了找注册码,并做了一个补丁和一个
  注册机,算是这段时间的鉴证吧!希望老鸟看后能够给我指点,可惜的是现在还不会算法分析!希望能过有老鸟指点算法分
  析!
  好了,我们开始吧!
  第一种方法,爆破!
  首先,出于习惯,先用PEiD查壳
      Borland Delphi 4.0 - 5.0
  接着,我们先随便注册一下,提示  wrong code!
  我们用OD载入:来到这儿
  1.   00441A48 > $  55            push    ebp                  '程序的入口
  2.   00441A49   .  8BEC          mov     ebp, esp
  3.   00441A4B   .  83C4 F4       add     esp, -0C
  4.   00441A4E   .  B8 40194400   mov     eax, 00441940
  5.   00441A53   .  E8 4C41FCFF   call    00405BA4
  6.   00441A58   .  A1 302C4400   mov     eax, [442C30]
  7.   00441A5D   .  8B00          mov     eax, [eax]
  8.   
复制代码
然后我们右键,选择超级字符串参考-->查找ASCII,我们找到  wrong code 后双击来到下面的地方:
  1.   00441829  |.  BA 8C184400   mov     edx, 0044188C                    ;  wrong code
  2.   0044182E  |.  A1 302C4400   mov     eax, [442C30]
  3.   00441833  |.  8B00          mov     eax, [eax]
  4.   00441835  |.  E8 BAD6FFFF   call    0043EEF4
  5.   
复制代码
我们往上查找,可以看到
  1.   00441800  |.  58            pop     eax
  2.   00441801  |.  E8 3E23FCFF   call    00403B44
  3.   00441806      75 1A         jnz     short 00441822                   ;  和真码比较,如果不相等就跳到wrong code
  4.   00441808  |.  6A 40         push    40
  5.   0044180A  |.  B9 6C184400   mov     ecx, 0044186C                    ;  u made it
  6.   0044180F  |.  BA 78184400   mov     edx, 00441878                    ;  right code
  7.   00441814  |.  A1 302C4400   mov     eax, [442C30]
  8.   00441819  |.  8B00          mov     eax, [eax]
  9.   0044181B  |.  E8 D4D6FFFF   call    0043EEF4
  10.   00441820  |.  EB 18         jmp     short 0044183A
  11.   00441822  |>  6A 10         push    10
  12.   00441824  |.  B9 84184400   mov     ecx, 00441884                    ;  error
  13.   00441829  |.  BA 8C184400   mov     edx, 0044188C                    ;  wrong code
  14.   0044182E  |.  A1 302C4400   mov     eax, [442C30]
  15.   00441833  |.  8B00          mov     eax, [eax]
  16.   00441835  |.  E8 BAD6FFFF   call    0043EEF4
  17.   
复制代码
00441806      75 1A         jnz     short 00441822    这个地方就是关键跳了,我们把jnz改成jz就可以实现爆破了
  我们随便输入看看
  爆破成功
  
  第二种方法:找注册码
  下面我们来找注册码:
  我们还是先注册一个用户名:unpack,注册码:111
  然后注册,提示 wrong  code!
  按照第一种方法,我们来到
  1.   00441829  |.  BA 8C184400   mov     edx, 0044188C                    ;  wrong code
  2.   0044182E  |.  A1 302C4400   mov     eax, [442C30]
  3.   00441833  |.  8B00          mov     eax, [eax]
  4.   
复制代码
这个地方,我们往上不远处找到下面的地方
  1.   004417B8  /.  55            push    ebp
  2.   004417B9  |.  8BEC          mov     ebp, esp
  3.   004417BB  |.  6A 00         push    0
  4.   004417BD  |.  6A 00         push    0
  5.   004417BF  |.  6A 00         push    0
  6.   004417C1  |.  53            push    ebx
  7.   004417C2  |.  8BD8          mov     ebx, eax
  8.   
复制代码
我们在    004417B8  /.  55            push    ebp    这个地方F2下断
  然后ctrl+F2重新运行,然后按F9运行(也可以下断后直接F9运行)
  输入刚刚我们我们的用户名:unpack,和假注册码:111
  然后点击确定
  来到刚刚下断的地方    004417B8  /.  55            push    ebp
  我们按F8单步向下走来到这个地方
  1.   004417E0  |.  8B45 FC       mov     eax, [ebp-4]                     ;  这里开始出现我们输入的假码
  2.   004417E3  |.  50            push    eax
  3.   004417E4  |.  8D55 F4       lea     edx, [ebp-C]
  4.   004417E7  |.  8B83 C4020000 mov     eax, [ebx+2C4]
  5.   004417ED  |.  E8 B219FEFF   call    004231A4
  6.   004417F2  |.  8B45 F4       mov     eax, [ebp-C]                     ;  这个是我们输入的用户名
  7.   004417F5  |.  8D55 F8       lea     edx, [ebp-8]
  8.   004417F8  |.  E8 FBFEFFFF   call    004416F8
  9.   004417FD  |.  8B55 F8       mov     edx, [ebp-8]                     ;  这里出现真码
  10.   00441800  |.  58            pop     eax
  11.   00441801  |.  E8 3E23FCFF   call    00403B44
  12.   00441806      75 1A         jnz     short 00441822                   ;  和真码比较,如果不相等就跳到wrong code
  13.   00441808  |.  6A 40         push    40
  14.   0044180A  |.  B9 6C184400   mov     ecx, 0044186C                    ;  u made it
  15.   0044180F  |.  BA 78184400   mov     edx, 00441878                    ;  right code
  16.   00441814  |.  A1 302C4400   mov     eax, [442C30]
  17.   00441819  |.  8B00          mov     eax, [eax]
  18.   0044181B  |.  E8 D4D6FFFF   call    0043EEF4
  19.   00441820  |.  EB 18         jmp     short 0044183A
  20.   00441822  |>  6A 10         push    10
  21.   00441824  |.  B9 84184400   mov     ecx, 00441884                    ;  error
  22.   00441829  |.  BA 8C184400   mov     edx, 0044188C                    ;  wrong code
  23.   0044182E  |.  A1 302C4400   mov     eax, [442C30]
  24.   00441833  |.  8B00          mov     eax, [eax]
  25.   
复制代码
在    004417E0  |.  8B45 FC       mov     eax, [ebp-4]   这个地方,信息窗口出现了
  堆栈 ss:[0013F408]=00D45E4C, (ASCII "111")
  eax=00000003
  “111”就是我们的假注册码
  
  
  在     004417F2  |.  8B45 F4       mov     eax, [ebp-C]      这个地方,信息窗口出现了我们输入的用户名
  堆栈 ss:[0013F400]=00D45E5C, (ASCII "unpack")
  eax=00000006
  
  
  在这里     004417FD  |.  8B55 F8       mov     edx, [ebp-8]        出现了真码,信息窗口显示如下:
  堆栈 ss:[0013F404]=00D45E70, (ASCII "E79F-0068-A8D1-383D")
  edx=00000000
  
  那么  E79F-0068-A8D1-383D   这个就是  用户名 unpack 的注册码了,我们可以用来一试
  打开程序,输入  用户名 :unpack   注册码:E79F-0068-A8D1-383D
  提示 right code
  ok,这样,我们就找到了程序的注册码了!
  
--------------------------------------------------------------------------------
【经验总结】
  刚刚学习脱壳破解,没什么经验,只会找一些简单的crack爆破和追注册码!
  00441801  |.  E8 3E23FCFF   call    00403B44    利用这个地方,我做了一个注册机
  利用第一种方法我做了一个补丁!
  让大家见笑了
  还没有学会算法,希望高手指点!
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于PYG论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2008年01月04日 23:13:37

[ 本帖最后由 unpack 于 2008-1-5 16:57 编辑 ]

简单crack爆破+追码和做注册机的原crack和注册机.rar

272.97 KB, 下载次数: 32, 下载积分: 飘云币 -2 枚

评分

参与人数 1威望 +8 收起 理由
magic659117852 + 8 感谢分享 ^_^

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-5 16:55:59 | 显示全部楼层
适合咱菜鸟看,,,学习 /:001
PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-5 20:24:58 | 显示全部楼层
我为什么下载不了?
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2008-1-5 22:56:23 | 显示全部楼层
原帖由 cxcxs 于 2008-1-5 20:24 发表
我为什么下载不了?

你多试几次看看,我的能下啊
我也没有设置权限啊
难道我的权限大了一点,我发的附件跟那有关?
不过好像看你也快到了和我一样的权限了啊 ~~
PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-5 23:46:17 | 显示全部楼层
这么巧,我也有这个CM
我记得我追这个注册码的时候曾经遇到shr和sar的难题,跑来论坛问。不过没有人回复。自己瞎折腾了一个晚上,原来自己把进制弄错了。
楼主的注册机我这边用不到,我把我自己的发上来,用VB写的 注册机1.rar (21.4 KB, 下载次数: 5)
PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-5 23:52:08 | 显示全部楼层
注册机VB源码
Private Sub regname_Change()
Dim regnamestr As String
Dim regcodedbl1 As Double
Dim regcodedbl2 As Double
regnamestr = regname.Text
regcodedbl1 = 1228473093
regcodedbl2 = 1214452256
Dim iint As Integer
Dim lenint As Integer
lenint = Len(regnamestr)
For iint = 1 To lenint
regcodedbl1 = regcodedbl1 Xor Asc(Mid(regnamestr, iint, 1))
regcodedbl2 = regcodedbl1 Xor regcodedbl2
If regcodedbl1 Mod 2 = 0 Then
regcodedbl1 = regcodedbl1 \ 2
Else
regcodedbl1 = regcodedbl1 \ 2
regcodedbl1 = regcodedbl1 Xor 18875153
End If
Next
Dim regcodedbl(0 To 3) As Double
regcodedbl(0) = regcodedbl1 And 65535
regcodedbl(1) = regcodedbl1 \ 2 ^ 16
regcodedbl(2) = regcodedbl2 And 65535
regcodedbl(3) = regcodedbl2 \ 2 ^ 16
Dim regcodestr(0 To 3) As String
regcodestr(0) = Hex(regcodedbl(0))
regcodestr(1) = Hex(regcodedbl(1))
regcodestr(2) = Hex(regcodedbl(2))
regcodestr(3) = Hex(regcodedbl(3))
For i = 1 To 3
While Len(regcodestr(i)) < 4
regcodestr(i) = "0" & regcodestr(i)
Wend
Next
regcode.Text = regcodestr(0) & "-" & regcodestr(1) & "-" & regcodestr(2) & "-" & regcodestr(3)
End Sub
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-1-6 07:05:34 | 显示全部楼层
    原帖由 sailorcwx 于 2008-1-5 23:46 发表
    这么巧,我也有这个CM
    我记得我追这个注册码的时候曾经遇到shr和sar的难题,跑来论坛问。不过没有人回复。自己瞎折腾了一个晚上,原来自己把进制弄错了。
    楼主的注册机我这边用不到,我把我自己的发上来,用VB写的 ...



    已经在群里给你解释了,只不过当时你没有明白而已
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-6 11:13:56 | 显示全部楼层
    很好的教程,学习一下
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-1-7 20:48:35 | 显示全部楼层
    我也用keymake作了个注册机,没有看懂算法/:L
    2.JPG
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-8-10 19:15
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2008-1-7 22:11:07 | 显示全部楼层
    我也只是会这些简单的,希望有高手能多指点一下算法
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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