飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 43391|回复: 91

[PYG]算法分析入门第三课

[复制链接]
  • TA的每日心情
    难过
    7 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-3-30 15:36:06 | 显示全部楼层 |阅读模式
    【破文标题】[PYG]算法分析入门第三课
    【破文作者】飘云[PYG]
    破解平台】winxp
    【作者邮箱】piaoyun04@163.com
    【软件名称】网页特效梦工厂 XP V2.3
    【软件大小】1436 KB
    【下载地址】http://www3.skycn.com/soft/8556.html
    【软件说明】你在做网页嘛,如果是的话,这是你不可多得的超Cool工具。这是可以自动生成网页特效的软件,

    每个特效都可以有您进行参数设置,100%傻瓜性。收集了包括时间特效,文字特效,图像处理,鼠标特效,页面

    特效,菜单特效,在线游戏,其它特效在内的八类上百个精彩特效。这些特效都是使用率比较高的JavaScript

    代码,您可以直接使用。软件内置浏览器,您可以随时预览特效效果;特效制作好之后,您可以把它复制到剪

    贴板,或者保存到文件中;软件的界面美观新颖,操作简单明了,极易上手。轻轻点几下鼠标,又炫又酷的网页

    任你选!
    【破解工具】PEiD 0.92中文版、W32Dasm10.0汉化版、OD二哥修改版
    【保护方式】机器码+序列号
    【破解目的】学习破解。熟练应用各种工具。
    【破解声明】我乃小菜鸟一只,偶得一点心得,愿与大家分享:)
    【破解步骤】先用PEiD 0.92侦测,发现为ASPack 2.12 -> Alexey Solodovnikov 用脱壳机搞定之后再侦测为
    Borland Delphi 6.0 - 7.0编写;试着运行软件:我的机器码为:65288649 输入伪码:78946123,点“确定注

    册”出现“错误,网页特效梦工厂 注册认证失败”的错误窗口,呵呵!这是关键!
    接下来W32DASM出场,在“串式参考”中找到:

    * Referenced by a (U)nconditional or (C)onditional Jump at Address:
    |:0050C794(C)  ★★★从这里跳来的,跟过去★★★
    |

    * Possible StringData Ref from Code Obj ->"错误,网页特效梦工厂 注册认证失败"

    **********************************************************************************************
    :0050C76D 8D55F0                  lea edx, dword ptr [ebp-10]
    :0050C770 8B86FC020000            mov eax, dword ptr [esi+000002FC]
    :0050C776 E8355FF3FF              call 004426B0
    :0050C77B 8B45F0                  mov eax, dword ptr [ebp-10]  机器码送eax
    :0050C77E E859CDEFFF              call 004094DC                把机器码转换成十六进制
    :0050C783 E8EC260000              call 0050EE74                算法call,跟进去
    :0050C788 8BD8                    mov ebx, eax
    :0050C78A 8B45FC                  mov eax, dword ptr [ebp-04]
    :0050C78D E84ACDEFFF              call 004094DC               
    :0050C792 3BD8                    cmp ebx, eax                 这里ebx的十六进制是真码
    :0050C794 0F8581000000            jne 0050C81B   ★★★这里跳向死亡★★★
    :0050C79A B201                    mov dl, 01
    :0050C79C A17CBE4600              mov eax, dword ptr [0046BE7C]
    :0050C7A1 E8D6F7F5FF              call 0046BF7C
    :0050C7A6 8BD8                    mov ebx, eax
    :0050C7A8 BA02000080              mov edx, 80000002
    :0050C7AD 8BC3                    mov eax, ebx
    :0050C7AF E868F8F5FF              call 0046C01C
    :0050C7B4 33C9                    xor ecx, ecx

    进入call 0050EE74:

    0050EE74        /$  55           push ebp
    0050EE75        |.  8BEC         mov ebp,esp
    0050EE77        |.  6A 00        push 0
    0050EE79        |.  53           push ebx
    0050EE7A        |.  56           push esi
    0050EE7B        |.  8BF0         mov esi,eax                         ;  机器码十六进制03E439C9送到esi
    0050EE7D        |.  33C0         xor eax,eax                         ;  清零
    0050EE7F        |.  55           push ebp
    0050EE80        |.  68 42EF5000  push Unpacked.0050EF42
    0050EE85        |.  64:FF30      push dword ptr fs:[eax]
    0050EE88        |.  64:8920      mov dword ptr fs:[eax],esp
    0050EE8B        |.  BB D9D10E00  mov ebx,0ED1D9                      ;  初始化ebx=0ED1D9(即十进制971225)
    0050EE90        |.  8D45 FC      lea eax,dword ptr ss:[ebp-4]
    0050EE93        |.  BA 58EF5000  mov edx,Unpacked.0050EF58           ;  ASCII "wangshuang"
    0050EE98        |.  E8 8B5EEFFF  call Unpacked.00404D28
    0050EE9D        |.  8B45 FC      mov eax,dword ptr ss:[ebp-4]
    0050EEA0        |.  E8 A360EFFF  call Unpacked.00404F48              ;  计算字符的长度,并放到eax
    0050EEA5        |.  85C0         test eax,eax
    0050EEA7        |.  7E 1B        jle short Unpacked.0050EEC4
    0050EEA9        |.  BA 01000000  mov edx,1
    0050EEAE        |>  8B4D FC      /mov ecx,dword ptr ss:[ebp-4]
    0050EEB1        |.  0FB64C11 FF  |movzx ecx,byte ptr ds:[ecx+edx-1]  ;  逐位取"wangshuang"的每位ascii送到ecx
    0050EEB6        |.  8D0C89       |lea ecx,dword ptr ds:[ecx+ecx*4]   ;  ecx=ecx+4*ecx
    0050EEB9        |.  8D0C89       |lea ecx,dword ptr ds:[ecx+ecx*4]   ;  ecx=ecx+4*ecx
    0050EEBC        |.  03D9         |add ebx,ecx                        ;  ebx=ebx+ecx(即等于971225+ecx)
    0050EEBE        |.  03DE         |add ebx,esi                        ;  上面的值加上机器码(前面分析了esi中放的是机器码的十六进制)
    0050EEC0        |.  42           |inc edx                            ;  指向下一位字符(edx=edx+1)
    0050EEC1        |.  48           |dec eax                            ;  字符长度减一(eax=eax-1)
    0050EEC2        |.^ 75 EA        \jnz short Unpacked.0050EEAE        ;  循环取
    0050EEC4        |>  8D45 FC      lea eax,dword ptr ss:[ebp-4]
    0050EEC7        |.  BA 6CEF5000  mov edx,Unpacked.0050EF6C           ;  字符"yaoyuan"
    0050EECC        |.  E8 575EEFFF  call Unpacked.00404D28              ;  这里和上面调用同一call
    0050EED1        |.  8B45 FC      mov eax,dword ptr ss:[ebp-4]
    0050EED4        |.  E8 6F60EFFF  call Unpacked.00404F48              ;  这里和上面调用同一call,

    所以功能相同
    0050EED9        |.  85C0         test eax,eax
    0050EEDB        |.  7E 1B        jle short Unpacked.0050EEF8
    0050EEDD        |.  BA 01000000  mov edx,1
    0050EEE2        |>  8B4D FC      /mov ecx,dword ptr ss:[ebp-4]
    0050EEE5        |.  0FB64C11 FF  |movzx ecx,byte ptr ds:[ecx+edx-1]
    0050EEEA        |.  8D0C89       |lea ecx,dword ptr ds:[ecx+ecx*4]
    0050EEED        |.  8D0C89       |lea ecx,dword ptr ds:[ecx+ecx*4]
    0050EEF0        |.  03D9         |add ebx,ecx
    0050EEF2        |.  03DE         |add ebx,esi
    0050EEF4        |.  42           |inc edx
    0050EEF5        |.  48           |dec eax
    0050EEF6        |.^ 75 EA        \jnz short Unpacked.0050EEE2
    0050EEF8        |>  8D45 FC      lea eax,dword ptr ss:[ebp-4]
    0050EEFB        |.  BA 7CEF5000  mov edx,Unpacked.0050EF7C           ;  字符"JSBuilder"
    0050EF00        |.  E8 235EEFFF  call Unpacked.00404D28
    0050EF05        |.  8B45 FC      mov eax,dword ptr ss:[ebp-4]
    0050EF08        |.  E8 3B60EFFF  call Unpacked.00404F48              ;  这里和上面调用同一call
    0050EF0D        |.  85C0         test eax,eax
    0050EF0F        |.  7E 1B        jle short Unpacked.0050EF2C
    0050EF11        |.  BA 01000000  mov edx,1
    0050EF16        |>  8B4D FC      /mov ecx,dword ptr ss:[ebp-4]
    0050EF19        |.  0FB64C11 FF  |movzx ecx,byte ptr ds:[ecx+edx-1]
    0050EF1E        |.  8D0C89       |lea ecx,dword ptr ds:[ecx+ecx*4]
    0050EF21        |.  8D0C89       |lea ecx,dword ptr ds:[ecx+ecx*4]
    0050EF24        |.  03D9         |add ebx,ecx
    0050EF26        |.  03DE         |add ebx,esi
    0050EF28        |.  42           |inc edx
    0050EF29        |.  48           |dec eax
    0050EF2A        |.^ 75 EA        \jnz short Unpacked.0050EF16
    0050EF2C        |>  33C0         xor eax,eax
    0050EF2E        |.  5A           pop edx
    0050EF2F        |.  59           pop ecx
    0050EF30        |.  59           pop ecx
    0050EF31        |.  64:8910      mov dword ptr fs:[eax],edx
    0050EF34        |.  68 49EF5000  push Unpacked.0050EF49
    0050EF39        |>  8D45 FC      lea eax,dword ptr ss:[ebp-4]
    0050EF3C        |.  E8 4F5DEFFF  call Unpacked.00404C90
    0050EF41        \.  C3           retn
    0050EF42         .^ E9 ED56EFFF  jmp Unpacked.00404634
    0050EF47         .^ EB F0        jmp short Unpacked.0050EF39
    0050EF49         .  8BC3         mov eax,ebx
    0050EF4B         .  5E           pop esi
    0050EF4C         .  5B           pop ebx
    0050EF4D         .  59           pop ecx
    0050EF4E         .  5D           pop ebp
    0050EF4F         .  C3           retn


    我的注册信息:
    机器码:65288649
    注册码:1698544024

    下面给出注册机VB源码
    Private Sub command1_Click()
    X = Val(Text1.Text)
    A = &HED1D9
    B = 0
    C = 0
    D = 0
    ZF1 = "wangshuang"
    ZF2 = "yaoyuan"
    ZF3 = "JSBuilder"
    If Text1.Text = "" Then
    MsgBox "机器码没有输入吧!", 64, "注意"
    Else
    For i = 1 To Len(ZF1)
    B = Asc(Mid(ZF1, i))
    B = B + B * 4
    B = B + B * 4
    A = B + A + X
    Next i

    For i = 1 To Len(ZF2)
    C = Asc(Mid(ZF2, i))
    C = C + C * 4
    C = C + C * 4
    A = A + C + X
    Next i

    For i = 1 To Len(ZF3)
    D = Asc(Mid(ZF3, i))
    D = D + D * 4
    D = D + D * 4
    A = A + D + X
    Next i
    Text2.Text = A
    End If
    End Sub
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-3-30 22:07:55 | 显示全部楼层
    这个顶一下~~~~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-3-31 13:08:40 | 显示全部楼层
    顶~~~~~~~~~~~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-5 15:19:30 | 显示全部楼层
    学习~~~~~~~~~`
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2024-3-21 21:06
  • 签到天数: 1489 天

    [LV.10]以坛为家III

    发表于 2005-4-11 21:31:10 | 显示全部楼层
    学习中。。。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-7-22 10:04:56 | 显示全部楼层
    学习中 。。。
    支持中
    感谢中。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-7-29 21:22:42 | 显示全部楼层
    谢谢了老大.正在学算法中..呵呵
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-8-7 03:56:21 | 显示全部楼层
    学习学习啦!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-8-7 22:46:09 | 显示全部楼层
    出去玩了好几天.该认真学习了.哈哈谢谢楼主.
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 09:39
  • 签到天数: 1481 天

    [LV.10]以坛为家III

    发表于 2005-10-30 15:52:46 | 显示全部楼层
    这个软件的注册码写在注册表里,在这里: "System\CurrentControlSet\Services\Class\knightsoft\JSBuilder"
    。没有启动验证,一字节破解即可:
    0050B1CD    E8 0AE3EFFF              call JSBuilde.004094DC
    0050B1D2    3BD8                     cmp ebx,eax      ;修改为cmp eax,eax
    【这里ebx的十六进制是真码,其ASCII就是注册码,eax的十六进制是我们输入的测试码。】
    0050B1D4    0F85 81000000            jnz JSBuilde.0050B25B ;或者修改为 je JSBuilde.0050B25B
    0050B1DA    B2 01                    mov dl,1
    注册码可以随便输入就可以注册。适合菜鸟爆破!

    [ Last edited by xingbing on 2005-10-30 at 04:41 PM ]
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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