| 
注册时间2004-12-1
阅读权限255
最后登录1970-1-1UID2 总坛主   
 
 TA的每日心情|  | 开心 2024-12-1 11:04
 | 
|---|
 签到天数: 12 天 [LV.3]偶尔看看II | 
 
| 【破文标题】[PYG]算法分析入门第三课 【破文作者】飘云[PYG]
 【破解平台】winxp
 【作者邮箱】[email protected]
 【软件名称】网页特效梦工厂 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
 | 
 |