hahacker 发表于 2010-12-4 20:22:40

看高手的视频教程是一种XIANGSHOU!

beeback 发表于 2010-12-9 12:46:51

ok...............

(_欠@_@抽 发表于 2010-12-21 19:40:53

看看这个好教程

d1600606 发表于 2010-12-27 08:45:17

回复 1# yangdashi


    004013C8push    ebp
004013C9mov   ebp, esp
004013CBsub   esp, 50
004013CEpush    esi
004013CFpush    ebx
004013D0mov   dword ptr , 1      ;初始值j
004013D7add   esp, -0C
004013DAmov   eax, dword ptr
004013DDpush    eax                        ; /s
004013DEcall    <jmp.&msvcrt.strlen>         ; \strlen
004013E3add   esp, 10
004013E6mov   dword ptr , eax
004013E9add   esp, -0C
004013ECmov   eax, dword ptr
004013EFpush    eax                        ; /s
004013F0call    <jmp.&msvcrt.strlen>         ; \strlen
004013F5add   esp, 10
004013F8mov   dword ptr , eax
004013FBmov   dword ptr , 1
00401402cmp   dword ptr , 5         ;用户名必须5位
00401406jnz   00401520
0040140Cmov   eax, dword ptr        ;5
0040140Fmov   edx, eax
00401411lea   eax, dword ptr    ;5 + 5这里就是注册码的程度10位
00401414cmp   dword ptr , eax
00401417jnz   00401520
0040141Dmov   eax, dword ptr
00401420add   eax, -3
00401423mov   dword ptr , eax
00401426mov   dword ptr , 0         ;赋值0
0040142Dlea   esi, dword ptr
00401430cmp   dword ptr , 6         ;i=0    while(i <= 6)
00401434jle   short 00401440
00401436jmp   00401500
0040143Bnop
0040143Clea   esi, dword ptr
00401440mov   eax, dword ptr        ;载入用户名
00401443mov   edx, dword ptr
00401446add   eax, edx
00401448cmp   byte ptr , 7A         ;z
0040144Bjg      004014F0
00401451mov   eax, dword ptr
00401454mov   edx, dword ptr
00401457add   eax, edx
00401459cmp   byte ptr , 60
0040145Cjle   004014F0
00401462mov   eax, dword ptr       ;载入注册码
00401465mov   edx, dword ptr
00401468add   eax, edx
0040146Acmp   byte ptr , 5A         ;Z
0040146Djg      004014F0
00401473mov   eax, dword ptr
00401476mov   edx, dword ptr
00401479add   eax, edx
0040147Bcmp   byte ptr , 40         ;上面一截都是对输入做限制~ 用户名:5位小写字符/注册码10位大写字符~~ 所以可以推断并不是所有用户名都能注册成功的!
0040147Ejle   short 004014F0
00401480mov   eax, dword ptr
00401483mov   ecx, dword ptr       ;j
00401486lea   edx, dword ptr    ;修正注册码位置
00401489movsx   eax, byte ptr           ;Sn
0040148Cmov   edx, dword ptr       ;j
0040148Fmov   ecx, dword ptr
00401492add   edx, ecx
00401494lea   ecx, dword ptr        ;修正注册码位置
00401497movsx   edx, byte ptr           ;Sn
0040149Asub   eax, edx                     ;Sn - Sn
0040149Ccmp   eax, dword ptr        ;if Sn - Sn = i
0040149Fjnz   short 004014F0
004014A1mov   eax, dword ptr        ;name
004014A4mov   ecx, dword ptr        ;i
004014A7lea   edx, dword ptr    ;修正用户名位置
004014AAmovsx   eax, byte ptr           ;name
004014ADmov   edx, dword ptr       ;j
004014B0mov   ecx, dword ptr
004014B3add   edx, ecx
004014B5lea   ecx, dword ptr
004014B8movsx   edx, byte ptr           ;Sn
004014BBmov   ecx, eax
004014BDsub   ecx, edx                     ;name - Sn
004014BFmov   dword ptr , ecx      ;计算结果A
004014C2mov   edx, dword ptr       ;j
004014C5add   edx, 2                     ;k = j + 2
004014C8mov   ebx, 1D                      ;0x1D(29)
004014CDmov   eax, ebx
004014CFmov   esi, edx
004014D1cdq
004014D2idiv    esi                        ;N = 0x1D(29)/k
004014D4mov   ecx, eax
004014D6lea   ebx, dword ptr       ;N + 0x1E(30)
004014D9cmp   dword ptr , ebx      ;if A = N
004014DCjnz   short 004014ED
004014DEadd   dword ptr , 2      ;j = j + 2
004014E2mov   eax, dword ptr
004014E5mov   edx, eax
004014E7lea   eax, dword ptr
004014EAmov   dword ptr , eax
004014EDjmp   short 004014F4
004014EFnop
004014F0add   dword ptr , -19
004014F4inc   dword ptr             ;i = i + 1
004014F7jmp   00401430
004014FClea   esi, dword ptr          ;到这就够了,下面我们整理公式
00401500add   esp, -8
00401503mov   eax, dword ptr
00401506add   eax, -9
00401509lea   edx, dword ptr
0040150Cpush    edx
0040150Dmov   eax, dword ptr
00401510push    eax
00401511call    00401548
00401516add   esp, 10
00401519jmp   short 0040153A
0040151Bnop
0040151Clea   esi, dword ptr
00401520add   esp, -0C
00401523push    4                            ; /LanguageID = 4 (LANG_CHINESE)
00401525push    10                           ; |Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
00401527push    0                            ; |Title = NULL
00401529push    00401308                     ; |Text = ""
0040152Emov   eax, dword ptr        ; |
00401531push    eax                        ; |hOwner
00401532call    <jmp.&USER32.MessageBoxExA>; \MessageBoxExA
00401537add   esp, 0C
0040153Ajmp   short 00401540
0040153Cjmp   short 00401540
0040153Emov   esi, esi
00401540lea   esp, dword ptr
00401543pop   ebx
00401544pop   esi
00401545leave
00401546retn

【算法总结】
整理一下:
最初:
j = 1
i = 0
公式:
1.name - sn = 29/(j+2) + 30
2.sn - sn = i

解个方程啊~~ 我们是要求出sn
那么公式变成如下了:
1.sn = name - (29/(j+2) + 30)
2.sn = i + sn

;=================================================
;用户名:5位小写字母
;注册码:10位大写字母
;所以可以推断并不是所有用户名都能注册成功的!
;=================================================

popo2008 发表于 2010-12-27 10:08:07

这个教程挺好的~~我来支持一下

qq673943168 发表于 2010-12-27 12:49:22

回复 1# yangdashi


看看什么教程!!

yktx 发表于 2010-12-27 15:32:50

学习一下,谢谢分享!

mwdir1025 发表于 2010-12-28 00:16:05

学习一下。。。。

316325 发表于 2010-12-28 11:11:40

这是神马、看看,期待

jiamfeng 发表于 2010-12-28 14:05:11

这个加密软件很好用·~~能破解万象的~~看看~~
页: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17
查看完整版本: 破解Zprotect V1.3.0 DEMO保护+去除时间限制+去启动注册框-语音