家庭電腦相簿製作系統 V6.0
破解者:HMILY[CCG][BCG]
軟體名稱:家庭電腦相簿製作系統
V6.0 標準版
備 注:這個軟體原來是用vb編寫,到這個版本以後改為delphi
演算法分析需要:這個軟體在註冊時有兩部分註冊碼,設第一部分為"X",機器碼參與運算只是除前兩
位的其它資料,所以設這個資料為"S"
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A51E5(C)
|
:004A51E0
6A00 push
00000000
:004A51E2 6A00
push 00000000
:004A51E4 49
dec ecx
:004A51E5 75F9
jne 004A51E0
:004A51E7
51 push
ecx
:004A51E8 53
push ebx
:004A51E9 8BD8
mov ebx, eax
:004A51EB 33C0
xor eax, eax
:004A51ED 55
push ebp
:004A51EE
6834554A00 push 004A5534
:004A51F3
64FF30 push dword
ptr fs:[eax]
:004A51F6 648920
mov dword ptr fs:[eax], esp
:004A51F9 8D957CFEFFFF
lea edx, dword ptr [ebp+FFFFFE7C]
:004A51FF 8B8318070000
mov eax, dword ptr [ebx+00000718]
:004A5205
E8BEA0F9FF call 0043F2C8
:004A520A
8B857CFEFFFF mov eax, dword ptr [ebp+FFFFFE7C]
:004A5210
8D9580FEFFFF lea edx, dword ptr [ebp+FFFFFE80]
:004A5216
E88138F6FF call 00408A9C
:004A521B
8B8580FEFFFF mov eax, dword ptr [ebp+FFFFFE80]
:004A5221
50 push
eax
:004A5222 8D9574FEFFFF lea edx,
dword ptr [ebp+FFFFFE74]
:004A5228 8B83FC060000
mov eax, dword ptr [ebx+000006FC]
:004A522E E895A0F9FF
call 0043F2C8
:004A5233 8B8574FEFFFF
mov eax, dword ptr [ebp+FFFFFE74]
:004A5239
8D9578FEFFFF lea edx, dword ptr [ebp+FFFFFE78]
:004A523F
E85838F6FF call 00408A9C
:004A5244
8B8578FEFFFF mov eax, dword ptr [ebp+FFFFFE78]
:004A524A
8D4DF8 lea ecx,
dword ptr [ebp-08]
:004A524D 5A
pop edx
:004A524E E84122FFFF
call 00497494 ---->註冊演算法,跟進去研究研究
:004A5253
8D956CFEFFFF lea edx, dword ptr [ebp+FFFFFE6C]
:004A5259
8B831C070000 mov eax, dword ptr [ebx+0000071C]
:004A525F
E864A0F9FF call 0043F2C8
:004A5264
8B856CFEFFFF mov eax, dword ptr [ebp+FFFFFE6C]
:004A526A
8D9570FEFFFF lea edx, dword ptr [ebp+FFFFFE70]
:004A5270
E82738F6FF call 00408A9C
:004A5275
8B8570FEFFFF mov eax, dword ptr [ebp+FFFFFE70]
:004A527B
50 push
eax
:004A527C 8D9568FEFFFF lea edx,
dword ptr [ebp+FFFFFE68]
:004A5282 8B45F8
mov eax, dword ptr [ebp-08] ->正確註冊碼傳入eax
:004A5285
E81238F6FF call 00408A9C
:004A528A
8B9568FEFFFF mov edx, dword ptr [ebp+FFFFFE68]
:004A5290
58 pop
eax
:004A5291 E822F8F5FF call
00404AB8 ->比較註冊碼
:004A5296 0F85A8010000
jne 004A5444 ->經典對比,不相等就over
:004A529C
8D9560FEFFFF lea edx, dword ptr [ebp+FFFFFE60]
:004A52A2
A19C9B4A00 mov eax, dword ptr
[004A9B9C]
:004A52A7 8B00
mov eax, dword ptr [eax]
:004A52A9 E82AA4FBFF
call 0045F6D8
:004A52AE 8B8560FEFFFF
mov eax, dword ptr [ebp+FFFFFE60]
:004A52B4
8D9564FEFFFF lea edx, dword ptr [ebp+FFFFFE64]
:004A52BA
E81D3FF6FF call 004091DC
:004A52BF
8B8564FEFFFF mov eax, dword ptr [ebp+FFFFFE64]
:004A52C5
8D55FC lea edx,
dword ptr [ebp-04]
:004A52C8 E8CF37F6FF
call 00408A9C
:004A52CD 8D855CFEFFFF
lea eax, dword ptr [ebp+FFFFFE5C]
*
Possible StringData Ref from Code Obj ->"data3" ->上面註冊碼正確,將註冊資訊寫data3中
|
刪除這個檔案又是未註冊版
:004A52D3 B94C554A00
mov ecx, 004A554C
:004A52D8 8B55FC
mov edx, dword ptr [ebp-04]
:004A52DB
E8E0F6F5FF call 004049C0
:004A52E0
8B955CFEFFFF mov edx, dword ptr [ebp+FFFFFE5C]
:004A52E6
8D8584FEFFFF lea eax, dword ptr [ebp+FFFFFE84]
:004A52EC
E8C3DAF5FF call 00402DB4
:004A52F1
BA25000000 mov edx, 00000025
:004A52F6
8D8584FEFFFF lea eax, dword ptr [ebp+FFFFFE84]
:004A52FC
E8FBDEF5FF call 004031FC
:004A5301
E886D5F5FF call 0040288C
:004A5306
8D9554FDFFFF lea edx, dword ptr [ebp+FFFFFD54]
:004A530C
8B83FC060000 mov eax, dword ptr [ebx+000006FC]
:004A5312
E8B19FF9FF call 0043F2C8
:004A5317
8B8554FDFFFF mov eax, dword ptr [ebp+FFFFFD54]
:004A531D
8D9558FDFFFF lea edx, dword ptr [ebp+FFFFFD58]
:004A5323
E87437F6FF call 00408A9C
:004A5328
8B9558FDFFFF mov edx, dword ptr [ebp+FFFFFD58]
:004A532E
8D855CFDFFFF lea eax, dword ptr [ebp+FFFFFD5C]
:004A5334
B9FF000000 mov ecx, 000000FF
:004A5339
E812F6F5FF call 00404950
:004A533E
8D955CFDFFFF lea edx, dword ptr [ebp+FFFFFD5C]
:004A5344
8D45D3 lea eax,
dword ptr [ebp-2D]
:004A5347 B10D
mov cl, 0D
:004A5349 E8C2DBF5FF
call 00402F10
:004A534E 8D954CFDFFFF
lea edx, dword ptr [ebp+FFFFFD4C]
:004A5354 8B8318070000
mov eax, dword ptr [ebx+00000718]
:004A535A
E8699FF9FF call 0043F2C8
:004A535F
8B854CFDFFFF mov eax, dword ptr [ebp+FFFFFD4C]
:004A5365
8D9550FDFFFF lea edx, dword ptr [ebp+FFFFFD50]
:004A536B
E82C37F6FF call 00408A9C
:004A5370
8B9550FDFFFF mov edx, dword ptr [ebp+FFFFFD50]
:004A5376
8D855CFDFFFF lea eax, dword ptr [ebp+FFFFFD5C]
:004A537C
B9FF000000 mov ecx, 000000FF
:004A5381
E8CAF5F5FF call 00404950
:004A5386
8D955CFDFFFF lea edx, dword ptr [ebp+FFFFFD5C]
:004A538C
8D45E1 lea eax,
dword ptr [ebp-1F]
:004A538F B109
mov cl, 09
:004A5391 E87ADBF5FF
call 00402F10
:004A5396 8D9544FDFFFF
lea edx, dword ptr [ebp+FFFFFD44]
:004A539C 8B831C070000
mov eax, dword ptr [ebx+0000071C]
:004A53A2
E8219FF9FF call 0043F2C8
:004A53A7
8B8544FDFFFF mov eax, dword ptr [ebp+FFFFFD44]
:004A53AD
8D9548FDFFFF lea edx, dword ptr [ebp+FFFFFD48]
:004A53B3
E8E436F6FF call 00408A9C
:004A53B8
8B9548FDFFFF mov edx, dword ptr [ebp+FFFFFD48]
:004A53BE
8D855CFDFFFF lea eax, dword ptr [ebp+FFFFFD5C]
:004A53C4
B9FF000000 mov ecx, 000000FF
:004A53C9
E882F5F5FF call 00404950
:004A53CE
8D955CFDFFFF lea edx, dword ptr [ebp+FFFFFD5C]
:004A53D4
8D45EB lea eax,
dword ptr [ebp-15]
:004A53D7 B10C
mov cl, 0C
:004A53D9 E832DBF5FF
call 00402F10
:004A53DE 8D55D3
lea edx, dword ptr [ebp-2D]
:004A53E1
8D8584FEFFFF lea eax, dword ptr [ebp+FFFFFE84]
:004A53E7
E81CDFF5FF call 00403308
:004A53EC
E89BD4F5FF call 0040288C
:004A53F1
8D8584FEFFFF lea eax, dword ptr [ebp+FFFFFE84]
:004A53F7
E880DAF5FF call 00402E7C
:004A53FC
E88BD4F5FF call 0040288C
:004A5401
33D2 xor
edx, edx
:004A5403 8B8318070000 mov
eax, dword ptr [ebx+00000718]
:004A5409 8B08
mov ecx, dword ptr [eax]
:004A540B FF5164
call [ecx+64]
:004A540E
33D2 xor
edx, edx
:004A5410 8B831C070000 mov
eax, dword ptr [ebx+0000071C]
:004A5416 8B08
mov ecx, dword ptr [eax]
:004A5418 FF5164
call [ecx+64]
:004A541B
33D2 xor
edx, edx
:004A541D 8B8320070000 mov
eax, dword ptr [ebx+00000720]
:004A5423 8B08
mov ecx, dword ptr [eax]
:004A5425 FF5164
call [ecx+64]
*
Possible StringData Ref from Code Obj ->"你已註冊成功!"
|
:004A5428 BA5C554A00
mov edx, 004A555C
:004A542D 8B8320070000
mov eax, dword ptr [ebx+00000720]
:004A5433 E8C09EF9FF
call 0043F2F8
*
Possible StringData Ref from Code Obj ->"註冊成功,謝謝你對本軟體的支援!"
|
:004A5438 B874554A00
mov eax, 004A5574
:004A543D E8A230F9FF
call 004384E4
:004A5442 EB41
jmp 004A5485
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A5296(C)
|
:004A5444
B201 mov
dl, 01
:004A5446 8B8318070000 mov
eax, dword ptr [ebx+00000718]
:004A544C 8B08
mov ecx, dword ptr [eax]
:004A544E FF5164
call [ecx+64]
:004A5451
B201 mov
dl, 01
:004A5453 8B831C070000 mov
eax, dword ptr [ebx+0000071C]
:004A5459 8B08
mov ecx, dword ptr [eax]
:004A545B FF5164
call [ecx+64]
:004A545E
B201 mov
dl, 01
:004A5460 8B8320070000 mov
eax, dword ptr [ebx+00000720]
:004A5466 8B08
mov ecx, dword ptr [eax]
:004A5468 FF5164
call [ecx+64]
*
Possible StringData Ref from Code Obj ->"驗證軟體註冊資訊"
|
:004A546B BAA0554A00
mov edx, 004A55A0
:004A5470 8B8320070000
mov eax, dword ptr [ebx+00000720]
:004A5476 E87D9EF9FF
call 0043F2F8
*
Possible StringData Ref from Code Obj ->"註冊失敗!"
|
:004A547B B8BC554A00
mov eax, 004A55BC
:004A5480 E85F30F9FF
call 004384E4
============================================================================================
*
Referenced by a CALL at Addresses:
|:004A1F87 , :004A524E , :004A6E56
|
:00497494 55
push ebp
->跟進計算call來到這裡
:00497495 8BEC
mov ebp, esp
:00497497 51
push ecx
:00497498 B907000000
mov ecx, 00000007
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004974A2(C)
|
:0049749D
6A00 push
00000000
:0049749F 6A00
push 00000000
:004974A1 49
dec ecx
:004974A2 75F9
jne 0049749D
:004974A4
874DFC xchg dword
ptr [ebp-04], ecx
:004974A7 53
push ebx
:004974A8 56
push esi
:004974A9 8BF1
mov esi, ecx
:004974AB
8955F8 mov dword
ptr [ebp-08], edx
:004974AE 8945FC
mov dword ptr [ebp-04], eax
:004974B1 8B45FC
mov eax, dword ptr [ebp-04]
:004974B4
E8A3D6F6FF call 00404B5C
:004974B9
8B45F8 mov eax,
dword ptr [ebp-08]
:004974BC E89BD6F6FF
call 00404B5C
:004974C1 33C0
xor eax, eax
:004974C3 55
push ebp
:004974C4 68BD764900
push 004976BD
:004974C9 64FF30
push dword ptr fs:[eax]
:004974CC
648920 mov dword
ptr fs:[eax], esp
:004974CF 8D45F4
lea eax, dword ptr [ebp-0C]
:004974D2 50
push eax
:004974D3
8D55E8 lea edx,
dword ptr [ebp-18]
:004974D6 8B45FC
mov eax, dword ptr [ebp-04]
:004974D9 E8BE15F7FF
call 00408A9C
:004974DE 8B45E8
mov eax, dword ptr [ebp-18]
->將完整的機器碼傳入eax
:004974E1 B90B000000
mov ecx, 0000000B
:004974E6 BA03000000
mov edx, 00000003
:004974EB E8DCD6F6FF
call 00404BCC
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00497475(C)
|
:004974F0
8D45F0 lea eax,
dword ptr [ebp-10]
:004974F3 50
push eax
:004974F4 B906000000
mov ecx, 00000006
:004974F9 BA06000000
mov edx, 00000006
:004974FE 8B45F4
mov eax, dword ptr [ebp-0C]
->取除機器碼的前兩位的所有資料
:00497501 E8C6D6F6FF
call 00404BCC
:00497506 8B45F0
mov eax, dword ptr [ebp-10] ->取機器碼的後6位
:00497509
E8BE18F7FF call 00408DCC ->把後6位轉換為十六進位制傳給eax
:0049750E
8BD8 mov
ebx, eax ->ebx=eax
:00497510 8BC3
mov eax, ebx ->暈,又傳一遍
:00497512
B903000000 mov ecx, 00000003 ->ecx=3
:00497517
99 cdq
->擴充套件,edx=0
:00497518 F7F9
idiv ecx
->後6位/3
:0049751A 8BD8
mov ebx, eax ->商的結果儲存到ebx
:0049751C
EB06 jmp
00497524
* Referenced
by a (U)nconditional or (C)onditional Jump at Address:
|:00497539(C)
|
:0049751E
8BC3 mov
eax, ebx ->如果除得的結果沒有6位則跳到這裡(1)
:00497520 03C0
add eax, eax ->商的結果將重複累加
:00497522
8BD8 mov
ebx, eax
* Referenced
by a (U)nconditional or (C)onditional Jump at Address:
|:0049751C(U)
|
:00497524
8D55E4 lea edx,
dword ptr [ebp-1C]
:00497527 8BC3
mov eax, ebx
:00497529 E8BE17F7FF
call 00408CEC
:0049752E 8B45E4
mov eax, dword ptr [ebp-1C] ->d
eax可看到商的十進位制數
:00497531 E83ED4F6FF
call 00404974 ->取商的位數
:00497536 83F806
cmp eax, 00000006 ->比較<6位嗎
:00497539
7CE3 jl 0049751E
->小於則跳到(1)處
:0049753B 8D55F0
lea edx, dword ptr [ebp-10]
:0049753E 8BC3
mov eax, ebx
:00497540 E8A717F7FF
call 00408CEC
:00497545 8D45F0
lea eax, dword ptr
[ebp-10]
:00497548 50
push eax
:00497549 B906000000
mov ecx, 00000006
:0049754E BA01000000
mov edx, 00000001
:00497553 8B45F0
mov eax, dword ptr [ebp-10]
:00497556
E871D6F6FF call 00404BCC
:0049755B
8D45EC lea eax,
dword ptr [ebp-14]
:0049755E 50
push eax
:0049755F B905000000
mov ecx, 00000005
:00497564 BA01000000
mov edx, 00000001
:00497569 8B45F4
mov eax, dword ptr [ebp-0C]
:0049756C
E85BD6F6FF call 00404BCC
:00497571
8D55E0 lea edx,
dword ptr [ebp-20]
:00497574 8B45F8
mov eax, dword ptr [ebp-08] ->把註冊碼的第一部分傳入eax
:00497577
E82015F7FF call 00408A9C
:0049757C
8B45E0 mov eax,
dword ptr [ebp-20]
:0049757F E84818F7FF
call 00408DCC ->把第一部分的資料轉換為十六進位制
:00497584 8BD8
mov ebx, eax
:00497586
8B45EC mov eax,
dword ptr [ebp-14] ->取"S"的前5位
:00497589 E83E18F7FF
call 00408DCC ->將前5位轉換成十六進位制
:0049758E
03D8 add
ebx, eax ->前5位與"X"相加
:00497590 D1FB
sar ebx, 1 ->相加結果右移一次
:00497592
790A jns
0049759E ->測試ebx是否為負數
:00497594 83D300
adc ebx, 00000000 ->上面不跳則ebx=ebx+0+CF (CF為進位標誌)
:00497597
EB05 jmp
0049759E
* Referenced
by a (U)nconditional or (C)onditional Jump at Address:
|:004975B3(C)
|
:00497599
8D045B lea eax,
dword ptr [ebx+2*ebx] ->如果相加結果<6位,則相加結果
乘2後累加(2)
:0049759C 8BD8
mov ebx, eax
*
Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00497592(C),
:00497597(U)
|
:0049759E 8D55DC
lea edx, dword ptr [ebp-24]
:004975A1 8BC3
mov eax, ebx
:004975A3
E84417F7FF call 00408CEC
:004975A8
8B45DC mov eax,
dword ptr [ebp-24]
:004975AB E8C4D3F6FF
call 00404974 ->取相加結果的位數
:004975B0 83F806
cmp eax, 00000006 ->小於6位嗎
:004975B3
7CE4 jl 00497599
->小於則跳到(2)處
:004975B5 8D55EC
lea edx, dword ptr [ebp-14]
:004975B8 8BC3
mov eax, ebx
:004975BA E82D17F7FF
call 00408CEC
:004975BF 8D45EC
lea eax, dword ptr
[ebp-14]
:004975C2 50
push eax
:004975C3 B906000000
mov ecx, 00000006
:004975C8 BA01000000
mov edx, 00000001
:004975CD 8B45EC
mov eax, dword ptr [ebp-14]
:004975D0
E8F7D5F6FF call 00404BCC
:004975D5
8D45F4 lea eax,
dword ptr [ebp-0C]
:004975D8 8B4DEC
mov ecx, dword ptr [ebp-14] ->只取相加結果的前6位傳入ecx
:004975DB
8B55F0 mov edx,
dword ptr [ebp-10] ->上面的商結果傳入edx
:004975DE E8DDD3F6FF
call 004049C0
:004975E3 8D45F0
lea eax, dword ptr [ebp-10]
:004975E6
E8D1D0F6FF call 004046BC
:004975EB
8D45EC lea eax,
dword ptr [ebp-14]
:004975EE E8C9D0F6FF
call 004046BC
:004975F3 BB01000000
mov ebx, 00000001
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00497642(C)
|
:004975F8
8BC3 mov
eax, ebx ->eax=ebx
:004975FA D1F8
sar eax, 1 ->eax=eax>>1
:004975FC
7903 jns
00497601 ->是否為負數
:004975FE 83D000
adc eax, 00000000
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004975FC(C)
|
:00497601
03C0 add
eax, eax ->eax+=eax;
:00497603 3BD8
cmp ebx, eax ->比較ebx和eax
:00497605 7537
jne 0049763E
->不相加則跳
:00497607 8D45D0
lea eax, dword ptr [ebp-30]
:0049760A 50
push eax
:0049760B B901000000
mov ecx, 00000001
:00497610
8BD3 mov
edx, ebx
:00497612 8B45F4
mov eax, dword ptr [ebp-0C]
:00497615 E8B2D5F6FF
call 00404BCC ->這裡有問題,跟進去看看你就明白了
:0049761A
8B4DD0 mov ecx,
dword ptr [ebp-30]
:0049761D 8D45D4
lea eax, dword ptr [ebp-2C]
:00497620 8B55F0
mov edx, dword ptr [ebp-10]
:00497623
E898D3F6FF call 004049C0
:00497628
8B45D4 mov eax,
dword ptr [ebp-2C]
:0049762B 8D55D8
lea edx, dword ptr [ebp-28]
:0049762E E86914F7FF
call 00408A9C
:00497633 8B55D8
mov edx, dword ptr [ebp-28]
:00497636
8D45F0 lea eax,
dword ptr [ebp-10]
:00497639 E816D1F6FF
call 00404754
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00497605(C)
|
:0049763E
43 inc
ebx ->ebx++;
:0049763F 83FB0D
cmp ebx, 0000000D
:00497642 75B4
jne 004975F8
//以上的迴圈我就逐一分析了,經過我的分析它是這樣取的:把商後的結果和相加
的結果合併為一字串,然後取這個字串的偶數位
:00497644 BB01000000
mov ebx, 00000001
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00497693(C)
|
:00497649
8BC3 mov
eax, ebx
:0049764B D1F8
sar eax, 1
:0049764D 7903
jns 00497652
:0049764F 83D000
adc eax, 00000000
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0049764D(C)
|
:00497652
03C0 add
eax, eax
:00497654 3BD8
cmp ebx, eax
:00497656 7437
je 0049768F
:00497658 8D45C4
lea eax, dword ptr [ebp-3C]
:0049765B
50 push
eax
:0049765C B901000000 mov
ecx, 00000001
:00497661 8BD3
mov edx, ebx
:00497663 8B45F4
mov eax, dword ptr [ebp-0C]
:00497666 E861D5F6FF
call 00404BCC
:0049766B 8B4DC4
mov ecx, dword ptr
[ebp-3C]
:0049766E 8D45C8
lea eax, dword ptr [ebp-38]
:00497671 8B55EC
mov edx, dword ptr [ebp-14]
:00497674
E847D3F6FF call 004049C0
:00497679
8B45C8 mov eax,
dword ptr [ebp-38]
:0049767C 8D55CC
lea edx, dword ptr [ebp-34]
:0049767F E81814F7FF
call 00408A9C
:00497684 8B55CC
mov edx, dword ptr [ebp-34]
:00497687
8D45EC lea eax,
dword ptr [ebp-14]
:0049768A E8C5D0F6FF
call 00404754
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00497656(C)
|
:0049768F
43 inc
ebx
:00497690 83FB0D
cmp ebx, 0000000D
:00497693 75B4
jne 00497649
//以上這部分迴圈則是取同一字串的奇數位
:00497695
8BC6 mov
eax, esi
:00497697 8B4DEC
mov ecx, dword ptr [ebp-14] ->重新排列後的第一組數傳入ecx
:0049769A 8B55F0
mov edx, dword ptr
[ebp-10] ->重新排列後的第二組數傳入edx
:0049769D E81ED3F6FF
call 004049C0
:004976A2 33C0
xor eax, eax
:004976A4 5A
pop edx
:004976A5
59 pop
ecx
:004976A6 59
pop ecx
:004976A7 648910
mov dword ptr fs:[eax], edx
:004976AA 68C4764900
push 004976C4
=========================================================================================
分析完成,序號產生器原始碼如下:
//---------------------------------------------------------------------------
void
__fastcall TMainform::OKBtnClick(TObject *Sender)
{
if(UEdit->Text!=""&&UEdit1->Text!="")
{
String name1,S_1,S_2,S_3,S_4,S_5,S_6,sum,code1,code2,code3;
int a1,a2,b1=8,b2=3,c1=1,c2=1,d1,d2=1;
unsigned
long key1=0,reg1=0,reg2=0,reg3=0,reg4=0,reg5=0,reg6=0;
name1=UEdit->Text;a1=UEdit->Text.Length();
if(a1<8) {ShowMessage("機器碼不正確!");return;}
key1=StrToInt64(UEdit1->Text);
while(b1<=a1)
{
reg1=name1[b1];
S_1=S_1+char(reg1);b1++;
}
reg1=0;reg1=StrToInt(S_1)/3;
S_5=IntToStr(reg1);
if(IntToStr(reg1).Length()<6)
{
while(IntToStr(reg1).Length()<6)
reg1=reg1+reg1;
S_6=IntToStr(reg1);
}
else{
while(c1<=6)
{reg4=S_5[c1];S_6=S_6+char(reg4);c1++;}
}
while(b2<=7)
{
reg2=name1[b2];
S_2=S_2+char(reg2);b2++;
}
reg2=0;reg2=(StrToInt(S_2)+key1)>>1;
S_3=IntToStr(reg2);
if(IntToStr(reg2).Length()<6)
{
while(IntToStr(reg2).Length()<6)
reg2=reg2+reg2*2;
S_4=IntToStr(reg2);
}
else{
while(c2<=6)
{reg3=S_3[c2];S_4=S_4+char(reg3);c2++;}}
sum=sum+S_6+S_4;d1=sum.Length();
while(d2<=d1)
{
if(d2%2==0)
{reg5=sum[d2];code1=code1+char(reg5);d2++;}
else d2++;
}
d2=1;
while(d2<=d1)
{
if(d2&1==1)
{reg6=sum[d2];code2=code2+char(reg6);d2++;}
else d2++;
}
code3=code3+code1+code2;
CEdit->Text=code3;
}
}
相關文章
- 家庭電腦相簿製作系統
V6.0 標準版2015-11-15
- 家庭電腦相簿系統標準版6演算法淺析2015-11-15演算法
- 用PPT製作精美的專業電子相簿2016-09-29
- 電腦作業系統那點事2017-06-14作業系統
- 安卓觸控手勢翻頁製作電子相簿2018-11-05安卓
- 蘋果mac電腦如何製作win10系統啟動盤_蘋果電腦使用bootcamp製作windows10啟動盤的方法2020-03-19蘋果MacWin10bootWindows
- 電腦重灌系統win10家庭版重灌教程分享2021-12-29Win10
- 如何製作動態圖,GIF怎麼在電腦上製作2019-05-20
- QNX 如何製作目標系統,製作系統映象,燒寫系統檔案2017-07-08
- 電腦製作excel表格全步驟 excel製作表格的步驟教程2022-03-20Excel
- 家庭版電腦系統沒有bitlocker功能怎麼加密u盤或硬碟2021-12-07加密硬碟
- 電腦遊戲中的人工智慧製作 (轉)2007-12-02遊戲人工智慧
- 重灌電腦系統怎麼裝 電腦重灌系統怎麼操作2022-03-17
- 直播平臺搭建原始碼,java相簿製作2023-05-15原始碼Java
- 電腦小白必看:如何備份電腦系統?2024-02-07
- 蘋果電腦如何裝Windows系統_蘋果電腦裝Windows系統的方法2019-12-02蘋果Windows
- windows系統盤製作,系統裝機2024-11-04Windows
- Linux 製作系統映象2020-10-30Linux
- u盤製作系統盤2018-06-23
- 怎麼重灌電腦windows10系統 電腦小白快速重灌系統教程2022-03-12Windows
- 腦圖系列-作業系統IO2024-03-15作業系統
- iOS系統相簿基本操作2018-01-03iOS
- PGL系統管理部相簿2005-12-26
- 怎麼用手機重灌電腦系統?手機裝電腦系統操作步驟2019-10-17
- 華碩電腦U盤重灌系統教程|華碩電腦如何用U盤重灌系統2019-06-11
- 重灌系統對電腦有損害嗎 快速重灌電腦系統教程介紹2021-11-17
- windows10主題製作怎麼操作_windows10電腦主題如何自己製作2020-07-17Windows
- rootfs -根檔案系統製作2021-09-15
- 製作一個報警系統2018-12-15
- windows10系統盤製作2018-03-25Windows
- u盤製作系統盤工具2024-08-29
- 電腦系統崩潰怎麼修復 修復電腦系統的三種方法2022-07-31
- 如何給自己的電腦重灌系統 電腦重灌window10系統詳細教程2021-11-29
- 電腦版本太舊怎麼升級系統 電腦老系統換新系統方法介紹2022-11-21
- win10系統U盤製作方法_製作win10系統u盤步驟2021-08-11Win10
- Win7電腦不能重灌系統怎麼辦,臺式電腦重灌win7系統,臺式電腦重灌系統win7教程2021-09-25Win7
- win10電腦重置系統和重灌系統的區別 電腦重置和重灌系統哪個好?2019-01-08Win10
- 華碩電腦隨身碟重灌系統教程|華碩電腦如何用隨身碟重灌系統2019-06-11