DVDChapter V1.2
下載頁面:
http://www.skycn.com/soft/6680.html
軟體大小:
632 KB
軟體語言: 簡體中文
軟體類別: 國產軟體 / 共享版 / 影片處理
應用平臺: Win9x/NT/2000/XP
加入時間:
2001-10-06 15:01:05
下載次數: 977
推薦等級: ****
開 發
商: http://www.boilsoft.com/
【軟體簡介】:DVDChapter
是一個獨立的 DVD 光碟工具,用來抽取DVD 光碟上的章節,並把資料儲存在硬碟上。本軟體已廣泛使用於影片點歌系統中,用於抽取 Karaoke 和 MTV
光碟上歌曲。支援 Microsoft Windows NT / 2000、95/98/Me。經過一年多的發展,DVDChapter 已成為一套成熟、穩定的工具軟體。
【軟體限制】:10次試用。
【作者宣告】:初學Crack,只是感興趣,沒有其它目的。失誤之處敬請諸位大俠賜教!
【破解工具】:TRW2000娃娃修改版、Ollydbg1.09、PEiD、W32Dasm 9.0白金版
―――――――――――――――――――――――――――――――――
【過
程】:
呵呵,罈子上有朋友提出這個東東,我半個月前就看了看,找到了核心,卻水平太淺而無法求逆。
幸得
afanty 老師的指教,終於完成了這篇筆記。感謝 afanty 老師!
如果有錯誤當是我分析的原因。
DVDChapter.exe 無殼。Visual C++ 6.0 編寫。
註冊碼格式為X-Y-Z 共3部分。簡單假設X=1357
Y=2468 Z=9012
試煉碼:1357-2468-9012
―――――――――――――――――――――――――――――――――
:004040D0 6AFF
push FFFFFFFF
:004040D2 68F0C14100
push 0041C1F0
:004040D7 64A100000000
mov eax, dword ptr fs:[00000000]
:004040DD 50
push eax
:004040DE 64892500000000
mov dword ptr fs:[00000000], esp
:004040E5
83EC08 sub esp,
00000008
:004040E8 56
push esi
:004040E9 8BF1
mov esi, ecx
:004040EB 6A01
push 00000001
:004040ED
E81A1F0100 call 0041600C
:004040F2
A1E4484200 mov eax, dword ptr
[004248E4]
:004040F7 89442408
mov dword ptr [esp+08], eax
:004040FB C744241400000000
mov [esp+14], 00000000
:00404103 89442404
mov dword ptr [esp+04], eax
*
Possible Reference to String Resource ID=00106: "o鯊?
|
:00404107 6A6A
push 0000006A
:00404109 8D4C240C
lea ecx, dword ptr [esp+0C]
:0040410D C644241801
mov [esp+18], 01
:00404112
E828450100 call 0041863F
:00404117
8B465C mov eax,
dword ptr [esi+5C]
====>EAX=1357-2468-9012
試煉碼
:0040411A 50
push eax
:0040411B E860FBFFFF
call 00403C80
====>關鍵CALL!進入!
:00404120
83C404 add esp,
00000004
:00404123 85C0
test eax, eax
:00404125 7436
je 0040415D
====>跳則OVER!
:00404127 8B465C
mov eax, dword ptr [esi+5C]
:0040412A
50 push
eax
:0040412B E820FCFFFF call
00403D50
:00404130 83C404
add esp, 00000004
:00404133 8D4C2404
lea ecx, dword ptr [esp+04]
*
Possible Reference to String Resource ID=00104: "?
"?(腹o?
|
:00404137 6A68
push 00000068
:00404139 E801450100
call 0041863F
:0040413E 8B442408
mov eax, dword ptr [esp+08]
:00404142
8B4C2404 mov ecx, dword
ptr [esp+04]
:00404146 6A00
push 00000000
:00404148 50
push eax
:00404149 51
push ecx
:0040414A
8BCE mov
ecx, esi
:0040414C E85F170100 call
004158B0
====>呵呵,勝利女神!
:00404151
8B16 mov
edx, dword ptr [esi]
:00404153 8BCE
mov ecx, esi
:00404155 FF92C4000000
call dword ptr [edx+000000C4]
:0040415B EB1E
jmp 0040417B
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404125(C)
|
*
Possible Reference to String Resource ID=00105: "???
?腹oT?
|
:0040415D 6A69
push 00000069
:0040415F 8D4C2408
lea ecx, dword ptr [esp+08]
:00404163
E8D7440100 call 0041863F
:00404168
8B442408 mov eax, dword
ptr [esp+08]
:0040416C 8B4C2404
mov ecx, dword ptr [esp+04]
:00404170 6A10
push 00000010
:00404172 50
push eax
:00404173
51 push
ecx
:00404174 8BCE
mov ecx, esi
:00404176 E835170100
call 004158B0
====>BAD
BOY!
* Referenced by a (U)nconditional or (C)onditional
Jump at Address:
|:0040415B(U)
|
:0040417B 8D4C2404
lea ecx, dword ptr [esp+04]
:0040417F C644241400
mov [esp+14], 00
:00404184
E852310100 call 004172DB
:00404189
8D4C2408 lea ecx, dword
ptr [esp+08]
:0040418D C7442414FFFFFFFF mov [esp+14],
FFFFFFFF
:00404195 E841310100 call
004172DB
:0040419A 8B4C240C
mov ecx, dword ptr [esp+0C]
:0040419E 5E
pop esi
:0040419F 64890D00000000
mov dword ptr fs:[00000000], ecx
:004041A6
83C414 add esp,
00000014
:004041A9 C3
ret
―――――――――――――――――――――――――――――――――
進入關鍵CALL:40411B call 00403C80
* Referenced
by a CALL at Addresses:
|:00401F4E , :0040411B
|
:00403C80
53 push
ebx
:00403C81 55
push ebp
:00403C82 56
push esi
:00403C83 8B742410
mov esi, dword ptr [esp+10]
====>ESI=1357-2468-9012 試煉碼
:00403C87
33ED xor
ebp, ebp
:00403C89 57
push edi
:00403C8A 85F6
test esi, esi
:00403C8C 0F84B0000000
je 00403D42
:00403C92 803E00
cmp byte ptr [esi], 00
:00403C95
0F84A7000000 je 00403D42
:00403C9B
8BFE mov
edi, esi
:00403C9D 83C9FF
or ecx, FFFFFFFF
:00403CA0 33C0
xor eax, eax
:00403CA2 F2
repnz
:00403CA3 AE
scasb
:00403CA4
F7D1 not
ecx
:00403CA6 51
push ecx
====>取試煉碼位數 ECX=F
:00403CA7 6A40 push 00000040
* Reference To: KERNEL32.LocalAlloc, Ord:01C8h
|
:00403CA9 FF1550D24100
Call dword ptr [0041D250]
:00403CAF 8BD8
mov ebx, eax
:00403CB1
85DB test
ebx, ebx
:00403CB3 0F8489000000 je
00403D42
:00403CB9 8BFE
mov edi, esi
:00403CBB 83C9FF
or ecx, FFFFFFFF
:00403CBE 33C0
xor eax, eax
:00403CC0 6A2D
push 0000002D
:00403CC2
F2 repnz
:00403CC3
AE scasb
:00403CC4
F7D1 not
ecx
:00403CC6 2BF9
sub edi, ecx
:00403CC8 53
push ebx
:00403CC9 8BC1
mov eax, ecx
:00403CCB 8BF7
mov esi,
edi
:00403CCD 8BFB
mov edi, ebx
:00403CCF C1E902
shr ecx, 02
:00403CD2 F3
repz
:00403CD3 A5
movsd
:00403CD4
8BC8 mov
ecx, eax
:00403CD6 83E103
and ecx, 00000003
:00403CD9 F3
repz
:00403CDA A4
movsb
:00403CDB 8BF3
mov esi,
ebx
====>ESI=1357-2468-9012
試煉碼
:00403CDD E80E2E0000
call 00406AF0
====>檢測CALL!看看註冊碼是否是X-Y格式
:00403CE2
83C408 add esp,
00000008
:00403CE5 85C0
test eax, eax
:00403CE7 7452
je 00403D3B
====>跳則OVER!
:00403CE9 8B7C2414 mov edi, dword ptr [esp+14]
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403D11(C)
|
:00403CED
45 inc
ebp
====>EBP依次增1
:00403CEE
C60000 mov byte
ptr [eax], 00
:00403CF1 8BCD
mov ecx, ebp
:00403CF3 40
inc eax
:00403CF4 49
dec ecx
:00403CF5
7409 je 00403D00
:00403CF7
49 dec
ecx
:00403CF8 7508
jne 00403D02
:00403CFA 89742414
mov dword ptr [esp+14], esi
:00403CFE EB02
jmp 00403D02
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00403CF5(C)
|
:00403D00
8BFE mov
edi, esi
* Referenced by a (U)nconditional or (C)onditional
Jump at Addresses:
|:00403CF8(C), :00403CFE(U)
|
:00403D02 6A2D
push 0000002D
:00403D04
50 push
eax
:00403D05 8BF0
mov esi, eax
====>ESI=2468-9012
:00403D07
E8E42D0000 call 00406AF0
====>檢測CALL!看看註冊碼是否是Y-Z格式
====>即:這2個檢測表明註冊碼格式為X-Y-Z
:00403D0C
83C408 add esp,
00000008
:00403D0F 85C0
test eax, eax
:00403D11 75DA
jne 00403CED
:00403D13 83FD02
cmp ebp, 00000002
====>EBP不等於2則跳!
:00403D16
7523 jne
00403D3B
====>跳則OVER!
:00403D18
85F6 test
esi, esi
:00403D1A 741F
je 00403D3B
:00403D1C 8B4C2414
mov ecx, dword ptr [esp+14]
:00403D20 51
push ecx
====>ECX=2468
:00403D21
56 push
esi
====>ESI=9012
:00403D22
57 push
edi
====>EDI=1357
:00403D23
E808FFFFFF call 00403C30
====>核心CALL!進入!
:00403D28
83C40C add esp,
0000000C
:00403D2B 8BF0
mov esi, eax
:00403D2D 53
push ebx
* Reference
To: KERNEL32.LocalFree, Ord:01CCh
|
:00403D2E
FF154CD24100 Call dword ptr [0041D24C]
:00403D34
8BC6 mov
eax, esi
:00403D36 5F
pop edi
:00403D37 5E
pop esi
:00403D38 5D
pop ebp
:00403D39
5B pop
ebx
:00403D3A C3
ret
* Referenced by a (U)nconditional
or (C)onditional Jump at Addresses:
|:00403CE7(C), :00403D16(C), :00403D1A(C)
|
:00403D3B
53 push
ebx
* Reference To: KERNEL32.LocalFree, Ord:01CCh
|
:00403D3C FF154CD24100
Call dword ptr [0041D24C]
* Referenced
by a (U)nconditional or (C)onditional Jump at Addresses:
|:00403C8C(C), :00403C95(C),
:00403CB3(C)
|
:00403D42 5F
pop edi
:00403D43 5E
pop esi
:00403D44 5D
pop ebp
:00403D45
33C0 xor
eax, eax
====>清0則OVER! 爆破點①!
:00403D47
5B pop
ebx
:00403D48 C3
ret
―――――――――――――――――――――――――――――――――
進入核心CALL:403D23
call 00403C30
* Referenced by a CALL at
Address:
|:00403D23
|
:00403C30 8B442404
mov eax, dword ptr [esp+04]
====>EAX=1357
:00403C34 53
push
ebx
:00403C35 85C0
test eax, eax
:00403C37 57
push edi
:00403C38 7440
je 00403C7A
:00403C3A
8B7C2410 mov edi, dword
ptr [esp+10]
====>EDI=9012
:00403C3E
85FF test
edi, edi
:00403C40 7438
je 00403C7A
:00403C42 8B5C2414
mov ebx, dword ptr [esp+14]
====>EBX=2468
:00403C46 85DB
test ebx, ebx
:00403C48
7430 je 00403C7A
:00403C4A
56 push
esi
:00403C4B 50
push eax
:00403C4C E83FFFFFFF
call 00403B90
一、 ====>對1357進行運算得出C62B
:00403C51
57 push
edi
:00403C52 8BF0
mov esi, eax
====>ESI=EAX=C62B
:00403C54
E837FFFFFF call 00403B90
二、
====>對9012進行運算得出66866
:00403C59
53 push
ebx
:00403C5A 8BF8
mov edi, eax
====>EDI=EAX=66866
:00403C5C
E82FFFFFFF call 00403B90
三、
====>對2468進行運算得出181A0
:00403C61
57 push
edi
:00403C62 56
push esi
:00403C63 8BD8
mov ebx, eax
====>EBX=EAX=181A0
:00403C65
E886FFFFFF call 00403BF0
四、
====>運算CALL!進入!
:00403C6A 83C414
add esp, 00000014
:00403C6D
33C9 xor
ecx, ecx
:00403C6F 3BC3
cmp eax, ebx
====>比較了!如果這2者相等則OK!爆破點②!
====>EAX=498545E
====>EBX=181A0
:00403C71 0F94C1
sete cl
:00403C74
5E pop
esi
:00403C75 5F
pop edi
:00403C76 8BC1
mov eax, ecx
:00403C78 5B
pop ebx
:00403C79 C3
ret
―――――――――――――――――――――――――――――――――
進入運算一、二、三: call 00403B90
* Referenced
by a CALL at Addresses:
|:00403C4C , :00403C54 , :00403C5C
|
:00403B90 8B542404 mov
edx, dword ptr [esp+04]
:00403B94 33C0
xor eax, eax
:00403B96 85D2
test edx, edx
:00403B98 744F
je 00403BE9
:00403B9A
8A0A mov
cl, byte ptr [edx]
一、 ====>CL=依次取1357字元的HEX值
―――――――――――――――――――――――――
二、
====>CL=依次取9012字元的HEX值
―――――――――――――――――――――――――
三、
====>CL=依次取2468字元的HEX值
:00403B9C
84C9 test
cl, cl
:00403B9E 744C
je 00403BEC
* Referenced by a (U)nconditional
or (C)onditional Jump at Address:
|:00403BE6(C)
|
:00403BA0 80F930
cmp cl, 30
:00403BA3
7C11 jl 00403BB6
:00403BA5
80F939 cmp cl, 39
:00403BA8
7F0C jg 00403BB6
:00403BAA
0FBEC9 movsx ecx,
cl
:00403BAD 8D04C0
lea eax, dword ptr [eax+8*eax]
一、 1、 ====>EAX=00 * 9=0
2、 ====>EAX=01 * 9=9
3、
====>EAX=27 * 9=15F
4、 ====>EAX=581 *
9=3189
―――――――――――――――――――――――――
二、 1、 ====>EAX=00
* 9=0
2、 ====>EAX=09 * 9=51
3、 ====>EAX=144 * 9=B64
4、
====>EAX=2D91 * 9=19A19
―――――――――――――――――――――――――
三、 1、 ====>EAX=00
* 9=0
2、 ====>EAX=02 * 9=12
3、 ====>EAX=4C * 9=2AC
4、
====>EAX=AB6 * 9=6066
:00403BB0 8D4481D0
lea eax, dword ptr [ecx+4*eax-30]
一、
1、 ====>EAX=31 + 4*0 -30=1
2、
====>EAX=33 + 4*9 -30=27
3、
====>EAX=35 + 4*15F -30=581
4、 ====>EAX=37
+ 4*3189 -30=C62B
―――――――――――――――――――――――――
二、 1、 ====>EAX=39
+ 4*0 -30=9
2、 ====>EAX=30 + 4*51
-30=144
3、 ====>EAX=31 + 4*B64
-30=2D91
4、 ====>EAX=32 + 4*19A19 -30=66866
―――――――――――――――――――――――――
三、 1、 ====>EAX=32 + 4*0 -30=2
2、 ====>EAX=34 + 4*12 -30=4C
3、
====>EAX=36 + 4*2AC -30=AB6
4、 ====>EAX=38
+ 4*6066 -30=181A0
:00403BB4 EB2A
jmp 00403BE0
====>如果是字母的話則進行下面的運算!
* Referenced by
a (U)nconditional or (C)onditional Jump at Addresses:
|:00403BA3(C), :00403BA8(C)
|
:00403BB6
80F941 cmp cl, 41
:00403BB9
7C11 jl 00403BCC
:00403BBB
80F95A cmp cl, 5A
:00403BBE
7F0C jg 00403BCC
:00403BC0
0FBEC9 movsx ecx,
cl
:00403BC3 8D04C0
lea eax, dword ptr [eax+8*eax]
:00403BC6 8D4481C9
lea eax, dword ptr [ecx+4*eax-37]
:00403BCA
EB14 jmp
00403BE0
* Referenced by a (U)nconditional or (C)onditional
Jump at Addresses:
|:00403BB9(C), :00403BBE(C)
|
:00403BCC 80F961
cmp cl, 61
:00403BCF
7C18 jl 00403BE9
:00403BD1
80F97A cmp cl, 7A
:00403BD4
7F13 jg 00403BE9
:00403BD6
0FBEC9 movsx ecx,
cl
:00403BD9 8D04C0
lea eax, dword ptr [eax+8*eax]
:00403BDC 8D4481A9
lea eax, dword ptr [ecx+4*eax-57]
*
Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00403BB4(U),
:00403BCA(U)
|
:00403BE0 8A4A01
mov cl, byte ptr [edx+01]
:00403BE3 42
inc edx
:00403BE4 84C9
test cl,
cl
:00403BE6 75B8
jne 00403BA0
====>繼續迴圈?!
:00403BE8 C3 ret
根據
afanty 大哥的指教,這段程式碼其實是將1357、2468、9012看成36進位制數,然後轉換成16進位制數的結果。
X=1357(36進位制)=C62B(H)
;Y=2468(36)=181A0(H) ;Z=9012(36)=66866(H)
―――――――――――――――――――――――――――――――――
進入運算CALL四:00403C65
call 00403BF0
* Referenced by a CALL at
Address:
|:00403C65
|
:00403BF0 8B4C2404
mov ecx, dword ptr [esp+04]
====>ECX=[esp+04]=C62B
:00403BF4
56 push
esi
:00403BF5 8BC1
mov eax, ecx
====>EAX=ECX=C62B
:00403BF7
33D2 xor
edx, edx
:00403BF9 BE40B60000 mov
esi, 0000B640
====>ESI=B640
:00403BFE
F7F6 div
esi
====>EDX=C62B % B640=FEB
:00403C00
8D0492 lea eax,
dword ptr [edx+4*edx]
====>EAX=FEB
* 5=4F97
:00403C03 8D04C2
lea eax, dword ptr [edx+8*eax]
====>EAX=FEB + 8*4F97=28CA3
:00403C06
8D04C2 lea eax,
dword ptr [edx+8*eax]
====>EAX=FEB
+ 8*28CA3=147503
:00403C09 8D3440
lea esi, dword ptr [eax+2*eax]
====>ESI=147503 * 3=3D5F09
:00403C0C
B88303E659 mov eax, 59E60383
====>EAX=59E60383
:00403C11
F7E1 mul
ecx
====>59E60383 * C62B=45970059E901
====>EAX=59E60383 * C62B=0059E901
====>EDX=4597 進位 入 EDX
:00403C13
8B44240C mov eax, dword
ptr [esp+0C]
====>EAX=[esp+0C]=66866
:00403C17
C1EA0E shr edx,
0E
====>EDX=4597 SHR 0E=00000001
:00403C1A
8D0CC500000000 lea ecx, dword ptr [8*eax+00000000]
====>ECX=8 * 66866=334330
:00403C21
03F2 add
esi, edx
====>ESI=3D5F09 + 1=3D5F0A
:00403C23
2BC8 sub
ecx, eax
====>ECX=334330 - 66866=002CDACA
:00403C25
8D0488 lea eax,
dword ptr [eax+4*ecx]
====>EAX=66866
+ 4 * 2CDACA=00B9D38E
:00403C28 8D1440
lea edx, dword ptr [eax+2*eax]
====>EDX=B9D38E * 3=22D7AAA
:00403C2B
8D0456 lea eax,
dword ptr [esi+2*edx]
====>EAX=3D5F0A
+ 2 * 22D7AAA=498545E
:00403C2E 5E
pop esi
:00403C2F
C3 ret
根據
afanty 大哥的指教,這段程式碼可以表示為:(X%0xb640)*987+(X*0x59E60383)>>46+Z*174
注:987、46、174是10進位制值。
―――――――――――――――――――――――――――――――――
【算 法 總 結】:
1、註冊碼格式為X-Y-Z 三個部分。每個部分必須是數字或字母。
2、分別把註冊碼的3組字元看成36進位制數,求出其16進位制值。
X=1357(36進位制)=C62B(H)
;Y=2468(36)=181A0(H);Z=9012(36)=66866(H)
3、對X和Z的16進位制值進行運算得出498545E
(0xC62B
% 0xb640) * 987 + (0xC62B * 0x59E60383) >> 46 + 0x66866 * 174=498545E
注:987、46、174是10進位制值。
4、用上面得出的 498545E 和 Y 的16進位制值進行比較,相等則OK!
5、所以我的Y應等於498545E(H)的36進位制值19WCIM
呵呵,當然你也可以假設X=1
Y=2 Z=3,這樣會方便點。^O^^O^^O^^O^
―――――――――――――――――――――――――――――――――
【完 美 爆 破】:
1、00403D45 33C0
xor eax, eax
改為: B001
mov al, 01
2、00403C6F 3BC3
cmp eax, ebx
改為:
3BC0 cmp
eax, eax
這樣就可以任意輸入註冊碼了。^O^^O^^O^^O^
―――――――――――――――――――――――――――――――――
【註冊資訊儲存】:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\BoilSoft\DvdChapter\SN]
"sn"="1357-19WCIM-9012"
―――――――――――――――――――――――――――――――――
【整 理】:
一組可用的註冊碼:1357-19WCIM-9012
―――――――――――――――――――――――――――――――――
, _/
/| _.-~/
\_ , 青春都一餉
( /~ / \~-._
|\
`\\ _/
\ ~\ ) 忍把浮名
_-~~~-.) )__/;;,. \_ //'
/'_,\ --~ \ ~~~- ,;;\___( (.-~~~-.
換了破解輕狂
`~ _( ,_..--\ ( ,;'' /
~-- /._`\
/~~//' /' `~\
) /--.._, )_ `~
" `~" "
`" /~'`\ `\\~~\
"
" "~' ""
Cracked By ―― afanty fly
2003-05-01 16:30
VC序號產生器原始碼部分
――作者:afanty
說明:由於我沒有把判斷註冊碼格式的程式碼部分告訴afanty大哥,因此afanty大哥限制了輸入的1、3部分為4位字元。但是也足夠用了。^-^
#include "stdafx.h"
#include "test01.h"
#include
"test01Dlg.h"
CTest01Dlg::CTest01Dlg(CWnd*
pParent /*=NULL*/)
: CDialog(CTest01Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTest01Dlg)
m_code1
= _T("");
m_code2 = _T("");
m_code3 = _T("");
//}}AFX_DATA_INIT
}
void
CTest01Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTest01Dlg)
DDX_Control(pDX,
IDC_EDIT_3, m_edit3);
DDX_Control(pDX, IDC_EDIT_2, m_edit2);
DDX_Control(pDX,
IDC_EDIT_1, m_edit1);
DDX_Text(pDX, IDC_EDIT_1, m_code1);
DDX_Text(pDX,
IDC_EDIT_2, m_code2);
DDX_Text(pDX, IDC_EDIT_3, m_code3);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTest01Dlg,
CDialog)
//{{AFX_MSG_MAP(CTest01Dlg)
ON_BN_CLICKED(IDC_BUTTON, OnButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL
CTest01Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_edit1.SetLimitText(4);
m_edit3.SetLimitText(4);
m_edit2.SetReadOnly();
return TRUE;
}
void
CTest01Dlg::OnButton()
{
UpdateData(TRUE);
int i,num;
unsigned
long data1=0;
unsigned long data2=0;
unsigned long data3=0;
for(i=0;i<m_code1.GetLength();i++)
{
num=m_code1[i];
if((num>='0')&&(num<='9'))num=num-0x30;
else if((num>='A')&&(num<='Z'))num=num-0x37;
else
if((num>='a')&&(num<='z'))num=num-0x57;
else return;
data1=data1*36+num;
}
for(i=0;i<m_code3.GetLength();i++)
{
num=m_code3[i];
if((num>='0')&&(num<='9'))num=num-0x30;
else if((num>='A')&&(num<='Z'))num=num-0x37;
else
if((num>='a')&&(num<='z'))num=num-0x57;
else return;
data3=data3*36+num;
}
__int64 tmp=0x59E60383;
tmp=tmp*data1;
tmp=tmp>>46;
data2=(data1%0xB640)*987+(unsigned
long)tmp+(data3*174);
char ch;
m_code2="";
while(data2>0)
{
num=data2%36;
if((num>=0)&&(num<=9))num=num+0x30;
else
num=num+0x37;
ch=num;
m_code2.Insert(0,ch);
data2=data2/36;
}
UpdateData(FALSE);
}
相關文章
- cardIt V1.22015-11-15
- 動手實現EventBus v1.22017-12-13
- 多View統一Camera v1.22018-01-23View
- 夢幻郵件製作v1.22003-03-04
- Flutter版的Wanandroid專案(V1.2)2019-03-14FlutterNaNAndroid
- 系網紅巾V1.2演算法分析!2003-06-19演算法
- 持續交付成熟度模型 V1.22011-10-17模型
- 專業掃雷v1.2版破解分析2015-11-15
- ASProtect V1.2脫殼――Asterisk Password
Recovery XP2015-11-15AST
- 寬頻Web伺服器(ADSLWebServer) V1.22003-06-18Web伺服器Server
- 簡單演算法――小護士 V1.22015-11-15演算法
- Wemall外賣版商城原始碼更新v1.2版2019-05-11原始碼
- 袋鼠儲存 v1.2 正式支援獨立組網2019-08-13
- 免費的PHP線上解密工具原始碼V1.22022-02-13PHP解密原始碼
- Go 語言框架 Gin 終於釋出 v1.2 版本2017-07-06Go框架
- TinyShop V1.2 版本釋出,開源網店系統2014-12-01
- Wemall分銷版微商城原始碼更新至v1.2版2019-05-11原始碼
- 註冊你的LyricsShow! for Winamp v1.2
(3千字)2001-04-14CSS
- StrongShop 開源跨境商城 v1.2 釋出, 支援介面化安裝2021-09-15
- Paddle Fluid v1.2 Release Note 深度學習框架重磅更新2018-12-17UI深度學習框架
- PhotoFoundry for Mac(照片濾鏡編輯軟體)v1.2啟用版2023-11-02Mac
- Mac視窗管理器:Stage View for mac v1.2啟用版2023-12-14MacView
- 體育競猜外掛V1.2修改增強版 for DVBBS 7.12006-04-10
- 註冊你的LyricsShow! for Winamp v1.2(zombieys) (1千字)2001-06-02CSS
- 社群系統ThinkSNS+從V1.0到V1.2更新播報2017-11-03
- Moment for Mac(選單欄倒數日應用)v1.2啟用版2020-12-09Mac
- 破解HomeWatcher v1.2 第一回合 (3千字)2000-03-04
- OpenKruise v1.2:新增 PersistentPodState 實現有狀態 Pod 拓撲固定與 IP 複用2022-06-08UI
- 破解“沸點郵件群發系統v1.2標準版” (3千字)2001-08-17
- KubeVela v1.2 釋出:你要的圖形化操作控制檯 VelaUX 終於來了!2022-02-21UX
- BookStack V1.2 釋出,增加書籍分類和使用者主頁等功能2018-04-08
- Win10 pc使用者迎來UWP《微信》v1.2更新:支援傳送收藏表情2016-11-11Win10
- 【標題:用Import REConstructor v1.2 beta2
修復輸入表】 (7千字)2001-04-18ImportStruct
- PhotoFoundry for Mac(專業的照片濾鏡編輯軟體)v1.2啟用版 支援M1/M22023-11-01Mac