超級電腦伴侶 V1.12演算法流程,另有問題請教大家! (32千字)
超級電腦伴侶 V1.12
使用者名稱:powerboy
機器碼:1181312697122788555
註冊碼:2149539941815962387068573381168434743
軟體的註冊演算法部分用到了一些不常用的運算指令(只是我見的比較少)用到了立方和進位迴圈的指令,演算法
流程不是很麻煩!脫殼後可以用DEDE很容易找到演算法的部分!
(最近正在從98平臺轉移到XP下進行破解發現DEDE和OLLYDBG真的很方便,以前在98下基本只用SICE,根本沒有發現他們的長處.透過這段時間的使用深有體會阿~!在這裡感謝寫DEDE的xxxx和漢化OLLYDBGxxxxx兄弟的勞動!)
004D3E68 55
push ebp
004D3E69 8BEC
mov ebp, esp
004D3E6B 33C9
xor ecx, ecx
004D3E6D 51
push ecx
004D3E6E 51
push
ecx
004D3E6F 51
push ecx
004D3E70 51
push ecx
004D3E71
51 push
ecx
004D3E72 51
push ecx
004D3E73 51
push ecx
004D3E74 51
push ecx
004D3E75 53
push ebx
004D3E76
56 push
esi
004D3E77 8BD8
mov ebx, eax
004D3E79 33C0
xor eax, eax
004D3E7B 55
push ebp
004D3E7C 6825404D00
push $004D4025
***** TRY
|
004D3E81 64FF30 push
dword ptr fs:[eax]
004D3E84 648920
mov fs:[eax], esp
004D3E87
8D55FC lea
edx, [ebp-$04]
* Reference to control edRegCode : TEdit
|
004D3E8A 8B8320030000 mov
eax, [ebx+$0320]
|
004D3E90 E8DB4DF9FF
call 00468C70
004D3E95 8B45FC
mov eax, [ebp-$04]
004D3E98 50
push eax
004D3E99 8D55F4
lea edx, [ebp-$0C]
*
Reference to control edRegID : TEdit
|
004D3E9C 8B831C030000
mov eax, [ebx+$031C]
|
004D3EA2 E8C94DF9FF call
00468C70
004D3EA7 8B45F4
mov eax, [ebp-$0C]
004D3EAA 50
push eax
004D3EAB 8D55F0
lea edx, [ebp-$10]
* Reference to control edRegName : TEdit
|
004D3EAE 8B8318030000 mov
eax, [ebx+$0318]
|
004D3EB4 E8B74DF9FF
call 00468C70
004D3EB9 8B45F0
mov eax, [ebp-$10]
004D3EBC 8D4DF8
lea ecx, [ebp-$08]
004D3EBF 5A
pop edx
* Reference
to : TfrmReg._PROC_004D36C0()
|
004D3EC0 E8FBF7FFFF
call 004D36C0 //演算法的部分
004D3EC5 8B55F8
mov edx, [ebp-$08]//正確的註冊碼
004D3EC8 58
pop eax
//錯誤的註冊碼
011CD3AC 32 31 34 39 35 33 39 39
21495399
011CD3B4 34 31 38 31 35 39 36 32 41815962
011CD3BC
33 38 37 30 36 38 35 37 38706857
011CD3C4 33 33 38 31 31 36 38
34 33811684
011CD3CC 33 34 37 34 33 00 D2 E9 34743.議7
|
004D3EC9 E8760EF3FF
call 00404D44 //比較
004D3ECE 0F85E1000000
jnz 004D3FB5
004D3ED4 B201
mov dl, $01 //註冊標誌
004D3ED6 A11CB24300
mov eax, dword ptr [$0043B21C]
|
004D3EDB E83C74F6FF
call 0043B31C
004D3EE0 8BF0
mov esi, eax
004D3EE2
BA02000080 mov edx, $80000002
004D3EE7 8BC6
mov eax, esi
|
004D3EE9 E8CE74F6FF
call 0043B3BC
004D3EEE
B101 mov
cl, $01
* Possible String Reference to: 'SOFTWARE\Super Computer Companion'//儲存註冊碼
|
004D3EF0 BA3C404D00
mov edx, $004D403C
004D3EF5 8BC6
mov eax, esi
|
004D3EF7 E82875F6FF call
0043B424
004D3EFC 84C0
test al, al
004D3EFE 7441
jz 004D3F41
004D3F00 8D55EC
lea edx, [ebp-$14]
* Reference to control edRegName : TEdit
|
004D3F03 8B8318030000 mov
eax, [ebx+$0318]
|
004D3F09 E8624DF9FF
call 00468C70
004D3F0E 8B4DEC
mov ecx, [ebp-$14]
* Possible String Reference to: 'Register'
|
004D3F11
BA68404D00 mov edx, $004D4068
004D3F16 8BC6
mov eax, esi
|
004D3F18 E86B79F6FF
call 0043B888
004D3F1D
8D55E8 lea
edx, [ebp-$18]
* Reference to control edRegCode : TEdit
|
004D3F20 8B8320030000 mov
eax, [ebx+$0320]
|
004D3F26 E8454DF9FF
call 00468C70
004D3F2B 8B4DE8
mov ecx, [ebp-$18]
* Possible String Reference to: 'RegCode'
|
004D3F2E
BA7C404D00 mov edx, $004D407C
004D3F33 8BC6
mov eax, esi
|
004D3F35 E84E79F6FF
call 0043B888
004D3F3A
8BC6 mov
eax, esi
|
004D3F3C E84B74F6FF
call 0043B38C
004D3F41 8BC3
mov eax, ebx
* Reference to : TApplication._PROC_004856EC()
|
004D3F43
E8A417FBFF call 004856EC
004D3F48 A1FC3C5000 mov
eax, dword ptr [$00503CFC]
004D3F4D 8B00
mov eax, [eax]
004D3F4F
8B8084030000 mov eax, [eax+$0384]
004D3F55 33D2
xor edx, edx
|
004D3F57 E8E86EFAFF
call 0047AE44
004D3F5C
A1FC3C5000 mov eax, dword
ptr [$00503CFC]
004D3F61 8B00
mov eax, [eax]
004D3F63 C780A0060000FFFFFFFF
mov dword ptr [eax+$06A0], $FFFFFFFF
* Possible String
Reference to: '確定'
|
004D3F6D 688C404D00
push $004D408C
004D3F72 6A00
push $00
004D3F74
6A01 push
$01
004D3F76 6A00
push $00
004D3F78 6A00
push $00
004D3F7A
8D55E4 lea
edx, [ebp-$1C]
004D3F7D A1803E5000
mov eax, dword ptr [$00503E80]
004D3F82 8B00
mov eax,
[eax]
* Reference to : TApplication._PROC_004887A0()
|
004D3F84
E81748FBFF call 004887A0
004D3F89 8D45E4
lea eax, [ebp-$1C]
* Possible String Reference to: '-註冊成功'
|
004D3F8C BA9C404D00
mov edx, $004D409C
|
004D3F91 E86A0CF3FF
call 00404C00
004D3F96
8B55E4 mov
edx, [ebp-$1C]
004D3F99 33C9
xor ecx, ecx
* Possible String Reference
to: ' 感謝你對超級**伴侶的支援!希?
|
頤塹姆衲芄皇鼓懵狻?
|
004D3F9B B8B0404D00
mov eax, $004D40B0
|
004D3FA0 E89F53FFFF
call 004C9344
004D3FA5
8BC3 mov
eax, ebx
* Reference to : TApplication._PROC_0048554C()
|
004D3FA7 E8A015FBFF call
0048554C
004D3FAC 8BC6
mov eax, esi
|
004D3FAE
E871FBF2FF call 00403B24
004D3FB3 EB38
jmp 004D3FED
* Possible String Reference to: '確定'
|
004D3FB5 688C404D00
push $004D408C
004D3FBA 6A00
push $00
004D3FBC 6A01
push $01
004D3FBE 6A00
push $00
004D3FC0 6A00
push $00
004D3FC2 8D55E0
lea edx, [ebp-$20]
004D3FC5 A1803E5000 mov
eax, dword ptr [$00503E80]
004D3FCA 8B00
mov eax, [eax]
* Reference to : TApplication._PROC_004887A0()
|
004D3FCC E8CF47FBFF
call 004887A0
004D3FD1
8D45E0 lea
eax, [ebp-$20]
* Possible String Reference to: '-輸入錯誤'
|
004D3FD4
BAF8404D00 mov edx, $004D40F8
|
004D3FD9 E8220CF3FF
call 00404C00
004D3FDE 8B55E0
mov edx, [ebp-$20]
004D3FE1
33C9 xor
ecx, ecx
* Possible String Reference to: ' 註冊碼錯誤,請重新輸入註冊碼!'
|
004D3FE3 B80C414D00
mov eax, $004D410C
|
004D3FE8 E85753FFFF
call 004C9344
004D3FED
33C0 xor
eax, eax
004D3FEF 5A
pop edx
004D3FF0 59
pop ecx
004D3FF1 59
pop ecx
004D3FF2 648910
mov fs:[eax], edx
****** FINALLY
|
* Possible String Reference to: '^[]?
|
004D3FF5
682C404D00 push $004D402C
004D3FFA 8D45E0
lea eax, [ebp-$20]
004D3FFD BA02000000
mov edx, $00000002
|
004D4002
E85509F3FF call 0040495C
004D4007 8D45E8
lea eax, [ebp-$18]
004D400A BA04000000
mov edx, $00000004
|
004D400F
E84809F3FF call 0040495C
004D4014 8D45F8
lea eax, [ebp-$08]
|
004D4017 E81C09F3FF
call 00404938
004D401C
8D45FC lea
eax, [ebp-$04]
|
004D401F E81409F3FF
call 00404938
004D4024 C3
ret
004D4025
E98E02F3FF jmp 004042B8
004D402A EBCE
jmp 004D3FFA
****** END
|
004D402C
5E pop
esi
004D402D 5B
pop ebx
004D402E 8BE5
mov esp, ebp
004D4030 5D
pop ebp
004D4031 C3
ret
=========================================================================
演算法流程:
首先對使用者名稱的每位進行處理,然後分別儲存成10進位制在連線;
powerboy-> B0 AC AF 96
9A 7F 7F 7A
變10進位制連線:176172175150154127127122
在最後連線機器碼:176172175150154127127122+1181312697122788555
1761721751501541271271221181312697122788555然後對這個新字串進行運算
從第1位開始取5位變成十六進位制
17617->$44D1
然後進行3次方運算EAX儲存低8位,EDX儲存高8位
LF($44D1)=4F905B39971:
EAX=05B39971;EDX=000004F9
ESI=000053F7,EAX=0B7D772E,ECX=0,EDI=0,EDX=0,EBX=00006ECB
然後進行一次進位迴圈左移64位RCL(LF($44D1))=21495($53F7)
儲存最後的高位資料,最後把每次運算的結果變10進位制在連線;
$53F7=21495
21495 3994 18 1596 23870 6857 3381 16843 4743
004D36C0 /$ 55 PUSH EBP
004D36C1
|. 8BEC MOV EBP,ESP
004D36C3 |. 51
PUSH ECX
004D36C4 |. B9 0B000000
MOV ECX,0B
004D36C9 |> 6A 00
/PUSH 0
004D36CB |. 6A 00 |PUSH 0
004D36CD |. 49 |DEC ECX
004D36CE |.^75 F9 \JNZ SHORT 1.004D36C9
004D36D0 |. 874D FC XCHG DWORD PTR SS:[EBP-4],ECX
004D36D3 |. 53 PUSH EBX
004D36D4 |. 56 PUSH ESI
004D36D5
|. 8BD9 MOV EBX,ECX
004D36D7 |. 8955
F8 MOV DWORD PTR SS:[EBP-8],EDX
004D36DA
|. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004D36DD
|. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004D36E0
|. E8 0317F3FF CALL 1.00404DE8
004D36E5 |. 8B45 F8
MOV EAX,DWORD PTR SS:[EBP-8]
004D36E8 |. E8 FB16F3FF
CALL 1.00404DE8
004D36ED |. 33C0
XOR EAX,EAX
004D36EF |. 55
PUSH EBP
004D36F0 |. 68 18394D00 PUSH 1.004D3918
004D36F5 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004D36F8 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004D36FB |. 8BC3 MOV EAX,EBX
004D36FD |. E8 3612F3FF CALL 1.00404938
004D3702
|. C745 F0 CB6E00>MOV DWORD PTR SS:[EBP-10],6ECB
004D3709 |. C745 F4
000000>MOV DWORD PTR SS:[EBP-C],0
004D3710 |. C745 E0 606D00>MOV DWORD
PTR SS:[EBP-20],6D60
004D3717 |. C745 E4 000000>MOV DWORD PTR SS:[EBP-1C],0
004D371E |. FF75 E4 PUSH DWORD PTR SS:[EBP-1C]
; /Arg2
004D3721 |. FF75
E0 PUSH DWORD PTR SS:[EBP-20]
; |Arg1
004D3724 |. E8 D3FEFFFF CALL
1.004D35FC
; \1.004D35FC
004D3729 |. 8945 E8
MOV DWORD PTR SS:[EBP-18],EAX
004D372C |. 8955 EC
MOV DWORD PTR SS:[EBP-14],EDX
004D372F |. 8D4D
CC LEA ECX,DWORD PTR SS:[EBP-34]
004D3732
|. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
004D3735
|. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004D3738
|. E8 EB010000 CALL 1.004D3928
//對機器碼進行運算
004D373D
|. E9 0C010000 JMP 1.004D384E
004D3742 |> 8D45 C8
/LEA EAX,DWORD PTR SS:[EBP-38]
004D3745 |. 50
|PUSH EAX
004D3746 |. FF75 F4
|PUSH DWORD PTR SS:[EBP-C]
; /Arg2
004D3749 |. FF75 F0
|PUSH DWORD PTR SS:[EBP-10] ;
|Arg1
004D374C |. 8D45 C4 |LEA EAX,DWORD
PTR SS:[EBP-3C] ; |
004D374F |. E8
185DF3FF |CALL 1.0040946C
; \1.0040946C
004D3754 |.
8B45 C4 |MOV EAX,DWORD PTR SS:[EBP-3C]
004D3757
|. E8 9C14F3FF |CALL 1.00404BF8
004D375C |. 8BC8
|MOV ECX,EAX
004D375E |. BA 01000000
|MOV EDX,1
004D3763 |. 8B45 CC |MOV
EAX,DWORD PTR SS:[EBP-34]
004D3766 |. E8 ED16F3FF |CALL
1.00404E58
//取5位
004D376B |. 8B45 C8
|MOV EAX,DWORD PTR SS:[EBP-38]
//
004D376E |. E8 495DF3FF |CALL 1.004094BC
//將十進位制->十六進位制
004D3773 |. 99 |CDQ
004D3774
|. 8945 D8 |MOV DWORD PTR SS:[EBP-28],EAX
004D3777
|. 8955 DC |MOV DWORD PTR SS:[EBP-24],EDX
004D377A
|. 8B45 D8 |MOV EAX,DWORD PTR SS:[EBP-28]
004D377D
|. 8B55 DC |MOV EDX,DWORD PTR SS:[EBP-24]
004D3780
|. 3B55 F4 |CMP EDX,DWORD PTR SS:[EBP-C]
004D3783 |. 75 07 |JNZ SHORT 1.004D378C
004D3785 |. 3B45 F0 |CMP EAX,DWORD PTR SS:[EBP-10]
//和28363比較大於則跳
004D3788 |. 72 65
|JB SHORT 1.004D37EF
004D378A |. EB 02
|JMP SHORT 1.004D378E
004D378C |> 7C 61
|JL SHORT 1.004D37EF
004D378E |>
8D45 C0 |LEA EAX,DWORD PTR SS:[EBP-40]
004D3791
|. 50 |PUSH EAX
004D3792 |.
FF75 F4 |PUSH DWORD PTR SS:[EBP-C]
; /Arg2
004D3795 |. FF75 F0
|PUSH DWORD PTR SS:[EBP-10]
; |Arg1
004D3798 |. 8D45 BC |LEA
EAX,DWORD PTR SS:[EBP-44] ; |
004D379B
|. E8 CC5CF3FF |CALL 1.0040946C
; \1.0040946C
004D37A0
|. 8B45 BC |MOV EAX,DWORD PTR SS:[EBP-44]
004D37A3
|. E8 5014F3FF |CALL 1.00404BF8
004D37A8 |. 8BC8
|MOV ECX,EAX
004D37AA |. 49
|DEC ECX
004D37AB |. BA 01000000
|MOV EDX,1
004D37B0 |. 8B45 CC |MOV
EAX,DWORD PTR SS:[EBP-34]
004D37B3 |. E8 A016F3FF |CALL
1.00404E58
004D37B8 |. 8B45 C0 |MOV EAX,DWORD
PTR SS:[EBP-40]
004D37BB |. E8 FC5CF3FF |CALL 1.004094BC
004D37C0 |. 99 |CDQ
004D37C1
|. 8945 D8 |MOV DWORD PTR SS:[EBP-28],EAX
004D37C4
|. 8955 DC |MOV DWORD PTR SS:[EBP-24],EDX
004D37C7
|. FF75 F4 |PUSH DWORD PTR SS:[EBP-C]
; /Arg2
004D37CA |. FF75 F0
|PUSH DWORD PTR SS:[EBP-10]
; |Arg1
004D37CD |. 8D45 B8
|LEA EAX,DWORD PTR SS:[EBP-48] ; |
004D37D0
|. E8 975CF3FF |CALL 1.0040946C
; \1.0040946C
004D37D5
|. 8B45 B8 |MOV EAX,DWORD PTR SS:[EBP-48]
004D37D8
|. E8 1B14F3FF |CALL 1.00404BF8
004D37DD |. 8BC8
|MOV ECX,EAX
004D37DF |. 49
|DEC ECX
004D37E0 |. 8D45 CC
|LEA EAX,DWORD PTR SS:[EBP-34]
004D37E3 |. BA 01000000
|MOV EDX,1
004D37E8 |. E8 AB16F3FF |CALL 1.00404E98
004D37ED |. EB 25 |JMP SHORT 1.004D3814
004D37EF |> FF75 F4 |PUSH DWORD PTR SS:[EBP-C]
; /Arg2
004D37F2 |. FF75
F0 |PUSH DWORD PTR SS:[EBP-10]
; |Arg1
004D37F5 |. 8D45 B4
|LEA EAX,DWORD PTR SS:[EBP-4C]
; |
004D37F8 |. E8 6F5CF3FF |CALL 1.0040946C
; \1.0040946C
004D37FD |. 8B45 B4 |MOV EAX,DWORD PTR SS:[EBP-4C]
004D3800 |. E8 F313F3FF |CALL 1.00404BF8
004D3805
|. 8BC8 |MOV ECX,EAX
004D3807 |.
8D45 CC |LEA EAX,DWORD PTR SS:[EBP-34]
004D380A
|. BA 01000000 |MOV EDX,1
004D380F |. E8 8416F3FF
|CALL 1.00404E98
004D3814 |> FF75 F4
|PUSH DWORD PTR SS:[EBP-C]
004D3817 |. FF75 F0
|PUSH DWORD PTR SS:[EBP-10]
004D381A |. FF75 DC
|PUSH DWORD PTR SS:[EBP-24]
; /Arg4
004D381D |. FF75 D8 |PUSH
DWORD PTR SS:[EBP-28] ; |Arg3
004D3820 |. FF75 EC |PUSH DWORD PTR SS:[EBP-14]
; |Arg2
004D3823 |. FF75
E8 |PUSH DWORD PTR SS:[EBP-18]
; |Arg1
004D3826 |. E8 45FEFFFF
|CALL 1.004D3670
; \1.004D3670//立方運算
004D382B |. E8 2021F3FF
|CALL 1.00405950
//進位迴圈左移64位(RCL)
004D3830 |. 8945 D0
|MOV DWORD PTR SS:[EBP-30],EAX
004D3833 |. 8955
D4 |MOV DWORD PTR SS:[EBP-2C],EDX
004D3836
|. FF75 D4 |PUSH DWORD PTR SS:[EBP-2C]
; /Arg2
004D3839 |. FF75 D0
|PUSH DWORD PTR SS:[EBP-30]
; |Arg1
004D383C |. 8D45 B0
|LEA EAX,DWORD PTR SS:[EBP-50] ; |
004D383F
|. E8 285CF3FF |CALL 1.0040946C
; \1.0040946C
004D3844
|. 8B55 B0 |MOV EDX,DWORD PTR SS:[EBP-50]
004D3847
|. 8BC3 |MOV EAX,EBX
004D3849 |.
E8 B213F3FF |CALL 1.00404C00
004D384E |> FF75 F4
PUSH DWORD PTR SS:[EBP-C]
; /Arg2
004D3851 |. FF75 F0
|PUSH DWORD PTR SS:[EBP-10] ;
|Arg1
004D3854 |. 8D45 AC |LEA EAX,DWORD
PTR SS:[EBP-54] ; |
004D3857 |. E8
105CF3FF |CALL 1.0040946C
; \1.0040946C
004D385C |.
8B45 AC |MOV EAX,DWORD PTR SS:[EBP-54]
004D385F
|. E8 9413F3FF |CALL 1.00404BF8
004D3864 |. 8BF0
|MOV ESI,EAX
004D3866 |. 8B45 CC
|MOV EAX,DWORD PTR SS:[EBP-34]
004D3869 |. E8
8A13F3FF |CALL 1.00404BF8
004D386E |. 3BF0
|CMP ESI,EAX
004D3870 |.^0F8E CCFEFFFF \JLE
1.004D3742
004D3876 |. 8B45 CC MOV EAX,DWORD
PTR SS:[EBP-34]
004D3879 |. E8 7A13F3FF CALL 1.00404BF8
004D387E |. 85C0 TEST EAX,EAX
004D3880 |. 74 49 JE SHORT 1.004D38CB
004D3882 |. 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34]
004D3885 |. E8 325CF3FF CALL 1.004094BC
004D388A
|. 99 CDQ
004D388B |. 8945
D8 MOV DWORD PTR SS:[EBP-28],EAX
004D388E
|. 8955 DC MOV DWORD PTR SS:[EBP-24],EDX
004D3891
|. FF75 F4 PUSH DWORD PTR SS:[EBP-C]
004D3894
|. FF75 F0 PUSH DWORD PTR SS:[EBP-10]
004D3897
|. FF75 DC PUSH DWORD PTR SS:[EBP-24]
; /Arg4
004D389A |. FF75 D8
PUSH DWORD PTR SS:[EBP-28]
; |Arg3
004D389D |. FF75 EC
PUSH DWORD PTR SS:[EBP-14] ; |Arg2
004D38A0 |. FF75 E8 PUSH DWORD PTR SS:[EBP-18]
; |Arg1
004D38A3 |. E8 C8FDFFFF
CALL 1.004D3670
; \1.004D3670
004D38A8 |. E8 A320F3FF
CALL 1.00405950
//最後剩下的也進行一次同樣的運算
004D38AD |. 8945 D0 MOV
DWORD PTR SS:[EBP-30],EAX
004D38B0 |. 8955 D4
MOV DWORD PTR SS:[EBP-2C],EDX
004D38B3 |. FF75 D4
PUSH DWORD PTR SS:[EBP-2C]
; /Arg2
004D38B6 |. FF75 D0 PUSH DWORD PTR
SS:[EBP-30] ; |Arg1
004D38B9
|. 8D45 A8 LEA EAX,DWORD PTR SS:[EBP-58]
; |
004D38BC |. E8 AB5BF3FF
CALL 1.0040946C
; \1.0040946C
004D38C1 |. 8B55 A8
MOV EDX,DWORD PTR SS:[EBP-58]
004D38C4 |. 8BC3
MOV EAX,EBX
004D38C6 |. E8 3513F3FF
CALL 1.00404C00
004D38CB |> 8B03
MOV EAX,DWORD PTR DS:[EBX]
004D38CD |. E8 2613F3FF
CALL 1.00404BF8
004D38D2 |. 83F8 28 CMP
EAX,28
004D38D5 |. 7E 19 JLE SHORT
1.004D38F0
004D38D7 |. 8D4D A4 LEA ECX,DWORD
PTR SS:[EBP-5C]
004D38DA |. 8B03
MOV EAX,DWORD PTR DS:[EBX]
004D38DC |. BA 28000000 MOV
EDX,28
004D38E1 |. E8 BE3FF6FF CALL 1.004378A4
004D38E6
|. 8B55 A4 MOV EDX,DWORD PTR SS:[EBP-5C]
004D38E9
|. 8BC3 MOV EAX,EBX
004D38EB |. E8
9C10F3FF CALL 1.0040498C
004D38F0 |> 33C0
XOR EAX,EAX
004D38F2 |. 5A
POP EDX
004D38F3 |. 59
POP ECX
004D38F4 |. 59
POP ECX
004D38F5 |. 64:8910 MOV DWORD
PTR FS:[EAX],EDX
004D38F8 |. 68 1F394D00 PUSH 1.004D391F
004D38FD |> 8D45 A4 LEA EAX,DWORD PTR SS:[EBP-5C]
004D3900 |. BA 0B000000 MOV EDX,0B
004D3905
|. E8 5210F3FF CALL 1.0040495C
004D390A |. 8D45 F8
LEA EAX,DWORD PTR SS:[EBP-8]
004D390D |. BA 02000000
MOV EDX,2
004D3912 |. E8 4510F3FF CALL 1.0040495C
004D3917 \. C3 RETN
----------------------------------------------------------------
對機器碼的運算......
004D3928 /$ 55 PUSH EBP
004D3929 |. 8BEC MOV EBP,ESP
004D392B
|. 6A 00 PUSH 0
004D392D |. 6A 00
PUSH 0
004D392F |. 6A 00
PUSH 0
004D3931 |. 6A 00
PUSH 0
004D3933 |. 6A 00 PUSH 0
004D3935 |. 53 PUSH EBX
004D3936
|. 56 PUSH ESI
004D3937 |.
57 PUSH EDI
004D3938 |. 8BF9
MOV EDI,ECX
004D393A |. 8955 F8
MOV DWORD PTR SS:[EBP-8],EDX
004D393D |. 8945 FC
MOV DWORD PTR SS:[EBP-4],EAX
004D3940 |. 8B45
FC MOV EAX,DWORD PTR SS:[EBP-4]
004D3943
|. E8 A014F3FF CALL 1.00404DE8
004D3948 |. 8B45 F8
MOV EAX,DWORD PTR SS:[EBP-8]
004D394B |. E8 9814F3FF
CALL 1.00404DE8
004D3950 |. 33C0
XOR EAX,EAX
004D3952 |. 55
PUSH EBP
004D3953 |. 68 FA394D00 PUSH 1.004D39FA
004D3958 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004D395B |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004D395E |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004D3961 |. E8 D20FF3FF CALL 1.00404938
004D3966
|. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
004D3969
|. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004D396C
|. E8 E7FAFFFF CALL 1.004D3458 //對使用者名稱進行運算1
powerboy->011CD340
B0 AC AF 96 9A 7F 7F 7A 艾?z AF
004D3971 |. 8B45 FC
MOV EAX,DWORD PTR SS:[EBP-4]
004D3974 |. E8 7F12F3FF
CALL 1.00404BF8
004D3979 |. 8BD8
MOV EBX,EAX
004D397B |. 85DB
TEST EBX,EBX
004D397D |. 7E 42 JLE
SHORT 1.004D39C1
004D397F |. BE 01000000 MOV ESI,1
//對上面產生的數值進行計算
004D3984 |> 8D55 EC /LEA EDX,DWORD PTR SS:[EBP-14]
004D3987 |. 8B45 F0 |MOV EAX,DWORD PTR SS:[EBP-10]
004D398A |. 0FB64430 FF |MOVZX EAX,BYTE PTR DS:[EAX+ESI-1]//取BO
004D398F |. E8 EC59F3FF |CALL 1.00409380
//變十進位制B0->176
004D3994
|. 8B55 EC |MOV EDX,DWORD PTR SS:[EBP-14]
004D3997
|. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]
004D399A
|. E8 6112F3FF |CALL 1.00404C00
//相連
004D399F |. 46
|INC ESI
004D39A0 |. 4B
|DEC EBX
004D39A1 |.^75 E1
\JNZ SHORT 1.004D3984
004D39A3 |. EB 1C
JMP SHORT 1.004D39C1
004D39A5 |> 8B55 F4
/MOV EDX,DWORD PTR SS:[EBP-C]
004D39A8 |. B8 103A4D00
|MOV EAX,1.004D3A10
004D39AD |. E8 8A15F3FF |CALL
1.00404F3C
004D39B2 |. 8BD0 |MOV
EDX,EAX
004D39B4 |. 8D45 F4 |LEA EAX,DWORD
PTR SS:[EBP-C]
004D39B7 |. B9 01000000 |MOV ECX,1
004D39BC |. E8 D714F3FF |CALL 1.00404E98
004D39C1
|> 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]//
EDX=176172175150154127127122
004D39C4 |. B8 103A4D00 |MOV EAX,1.004D3A10
004D39C9 |. E8 6E15F3FF |CALL 1.00404F3C
004D39CE
|. 85C0 |TEST EAX,EAX
004D39D0 |.^7F
D3 \JG SHORT 1.004D39A5
004D39D2
|. 8BC7 MOV EAX,EDI
004D39D4 |. 8B4D
F8 MOV ECX,DWORD PTR SS:[EBP-8]
004D39D7
|. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
004D39DA
|. E8 6512F3FF CALL 1.00404C44
004D39DF |. 33C0
XOR EAX,EAX
004D39E1 |. 5A
POP EDX
004D39E2 |. 59
POP ECX
004D39E3 |. 59
POP ECX
004D39E4 |. 64:8910
MOV DWORD PTR FS:[EAX],EDX
004D39E7 |. 68 013A4D00 PUSH
1.004D3A01
004D39EC |> 8D45 EC LEA EAX,DWORD
PTR SS:[EBP-14]
004D39EF |. BA 05000000 MOV EDX,5
004D39F4 |. E8 630FF3FF CALL 1.0040495C
004D39F9
\. C3 RETN
VAR
NAME,SN,C:STRING;
LENNAME,A,B:INTEGER;
BEGIN
NAME:=EDIT1.TEXT;
LENNAME:=LENGTH(NAME);
FOR A:=1 TO LENNAME DO
BEGIN
B:=LENNAME;
B:=(B*B)-(A*A)+1;
C:=C+INTTOSTR(B+ORD(NAME[A]));
END;
C:=C+EDIT2.TEXT;//連線機器碼生成計算用的新字串
----------------------------------------------------------------
對使用者名稱的處理....
004D3458 /$ 55 PUSH EBP
004D3459 |. 8BEC MOV EBP,ESP
004D345B
|. 83C4 EC ADD ESP,-14
004D345E |. 53
PUSH EBX
004D345F |. 56
PUSH ESI
004D3460 |. 57
PUSH EDI
004D3461 |. 33C9
XOR ECX,ECX
004D3463 |. 894D EC
MOV DWORD PTR SS:[EBP-14],ECX
004D3466 |. 894D F0
MOV DWORD PTR SS:[EBP-10],ECX
004D3469 |. 8955 F8
MOV DWORD PTR SS:[EBP-8],EDX
004D346C |. 8945 FC
MOV DWORD PTR SS:[EBP-4],EAX
004D346F |. 8B45
FC MOV EAX,DWORD PTR SS:[EBP-4]
004D3472
|. E8 7119F3FF CALL 1.00404DE8
004D3477 |. 33C0
XOR EAX,EAX
004D3479 |. 55
PUSH EBP
004D347A |. 68 01354D00
PUSH 1.004D3501
004D347F |. 64:FF30
PUSH DWORD PTR FS:[EAX]
004D3482 |. 64:8920
MOV DWORD PTR FS:[EAX],ESP
004D3485 |. 8D45 F0
LEA EAX,DWORD PTR SS:[EBP-10]
004D3488 |. E8 AB14F3FF
CALL 1.00404938
004D348D |. 8B45 FC
MOV EAX,DWORD PTR SS:[EBP-4]
004D3490 |. E8 6317F3FF CALL
1.00404BF8
004D3495 |. 8BF0 MOV ESI,EAX
004D3497 |. 8BFE MOV EDI,ESI
004D3499 |. 85FF TEST EDI,EDI
004D349B
|. 7E 36 JLE SHORT 1.004D34D3
004D349D
|. BB 01000000 MOV EBX,1
004D34A2 |> 8BC6
/MOV EAX,ESI
//使用者名稱長度
004D34A4 |. F7EE
|IMUL ESI
//平方
004D34A6 |. 8BD3
|MOV EDX,EBX
//EDX=EBX
004D34A8 |. 0FAFD3 |IMUL EDX,EBX
//EDX=EDX*EBX;又平方
004D34AB |. 2BC2 |SUB EAX,EDX
//EAX=EAX-EDX
004D34AD
|. 40 |INC EAX
//EAX=EAX+1
004D34AE
|. 8945 F4 |MOV DWORD PTR SS:[EBP-C],EAX
//[EBP-C]=EAX
004D34B1 |. 8D45 EC |LEA EAX,DWORD
PTR SS:[EBP-14]
004D34B4 |. 8B55 FC |MOV
EDX,DWORD PTR SS:[EBP-4] //EDX=NAME
004D34B7 |. 0FB6541A
FF |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]//取使用者名稱
004D34BC |.
0355 F4 |ADD EDX,DWORD PTR SS:[EBP-C]
//EDX=EDX+[EBP-C]
004D34BF |. E8 5C16F3FF |CALL 1.00404B20
//儲存EDX
004D34C4
|. 8B55 EC |MOV EDX,DWORD PTR SS:[EBP-14]
004D34C7
|. 8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10]
004D34CA
|. E8 3117F3FF |CALL 1.00404C00
004D34CF |. 43
|INC EBX
//EBX=EBX+1
004D34D0 |. 4F
|DEC EDI
//EDI=EDI-1
004D34D1 |.^75 CF
\JNZ SHORT 1.004D34A2
004D34D3 |> 8B45
F8 MOV EAX,DWORD PTR SS:[EBP-8]
004D34D6
|. 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]
004D34D9
|. E8 AE14F3FF CALL 1.0040498C
004D34DE |. 33C0
XOR EAX,EAX
004D34E0 |. 5A
POP EDX
004D34E1 |. 59
POP ECX
004D34E2 |. 59
POP ECX
004D34E3 |. 64:8910
MOV DWORD PTR FS:[EAX],EDX
004D34E6 |. 68 08354D00 PUSH
1.004D3508
004D34EB |> 8D45 EC LEA EAX,DWORD
PTR SS:[EBP-14]
004D34EE |. BA 02000000 MOV EDX,2
004D34F3 |. E8 6414F3FF CALL 1.0040495C
004D34F8
|. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004D34FB
|. E8 3814F3FF CALL 1.00404938
004D3500 \. C3
RETN
=========================================================================
立方的運算
004D3670 /$ 55
PUSH EBP
004D3671 |. 8BEC MOV EBP,ESP
004D3673 |. 83C4 F0 ADD ESP,-10
004D3676
|. 53 PUSH EBX
004D3677 |.
8B45 10 MOV EAX,DWORD PTR SS:[EBP+10]
004D367A
|. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
004D367D
|. 8B45 14 MOV EAX,DWORD PTR SS:[EBP+14]
004D3680
|. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX
004D3683
|. 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
004D3686
|. 4B DEC EBX
004D3687 |.
85DB TEST EBX,EBX
004D3689 |. 7E
1A JLE SHORT 1.004D36A5
004D368B
|> FF75 14 /PUSH DWORD PTR SS:[EBP+14]
004D368E
|. FF75 10 |PUSH DWORD PTR SS:[EBP+10]
004D3691
|. 8B45 F0 |MOV EAX,DWORD PTR SS:[EBP-10]
004D3694
|. 8B55 F4 |MOV EDX,DWORD PTR SS:[EBP-C]
004D3697
|. E8 1422F3FF |CALL 1.004058B0 //A=A*A
004D369C |. 8945 F0 |MOV DWORD PTR SS:[EBP-10],EAX
004D369F |. 8955 F4 |MOV DWORD PTR SS:[EBP-C],EDX
004D36A2 |. 4B |DEC EBX
//EBX=2所以為立方
004D36A3 |.^75
E6 \JNZ SHORT 1.004D368B
004D36A5
|> 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004D36A8
|. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
004D36AB
|. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
004D36AE
|. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004D36B1
|. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004D36B4
|. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
004D36B7
|. 5B POP EBX
004D36B8 |.
8BE5 MOV ESP,EBP
004D36BA |. 5D
POP EBP
004D36BB \. C2 1000
RETN 10
---------------------------------------------------------
A=A*A.........
004058B0 /$ 52
PUSH EDX
004058B1 |. 50
PUSH EAX
004058B2 |. 8B4424 10 MOV EAX,DWORD PTR
SS:[ESP+10]
004058B6 |. F72424 MUL DWORD
PTR SS:[ESP]
004058B9 |. 89C1 MOV
ECX,EAX
004058BB |. 8B4424 04 MOV EAX,DWORD PTR
SS:[ESP+4]
004058BF |. F76424 0C MUL DWORD PTR
SS:[ESP+C]
004058C3 |. 01C1 ADD ECX,EAX
004058C5 |. 8B0424 MOV EAX,DWORD PTR SS:[ESP]
004058C8 |. F76424 0C MUL DWORD PTR SS:[ESP+C]
004058CC |. 01CA ADD EDX,ECX
004058CE |. 59 POP ECX
004058CF
|. 59 POP ECX
004058D0 \.
C2 0800 RETN 8
=====================================================================================
進位迴圈的運算...
計算前
LF($44D1)=4F905B39971: EAX=05B39971;EDX=000004F9
計算後
ESI=000053F7,EAX=0B7D772E,ECX=0,EDI=0,EDX=0,EBX=00006ECB
00405950 /$ 55 PUSH EBP
00405951
|. 53 PUSH EBX
00405952 |.
56 PUSH ESI
00405953 |. 57
PUSH EDI
00405954 |. 31FF
XOR EDI,EDI
00405956 |. 8B5C24 14
MOV EBX,DWORD PTR SS:[ESP+14]
0040595A |. 8B4C24 18
MOV ECX,DWORD PTR SS:[ESP+18]
0040595E |. 09C9
OR ECX,ECX
00405960 |. 75 08
JNZ SHORT 1.0040596A
00405962 |. 09D2
OR EDX,EDX
00405964 |. 74 5D
JE SHORT 1.004059C3
00405966 |. 09DB
OR EBX,EBX
00405968 |. 74 59
JE SHORT 1.004059C3
0040596A |> 09D2
OR EDX,EDX
0040596C |. 79 0A
JNS SHORT 1.00405978
0040596E |. F7DA
NEG EDX
00405970 |. F7D8 NEG EAX
00405972 |. 83DA 00 SBB EDX,0
00405975
|. 83CF 01 OR EDI,1
00405978 |> 09C9
OR ECX,ECX
0040597A |. 79 07
JNS SHORT 1.00405983
0040597C |. F7D9
NEG ECX
0040597E |. F7DB
NEG EBX
00405980 |. 83D9 00 SBB ECX,0
00405983 |> 89CD MOV EBP,ECX
00405985 |. B9 40000000 MOV ECX,40
0040598A |. 57
PUSH EDI
0040598B |. 31FF
XOR EDI,EDI
0040598D |. 31F6
XOR ESI,ESI //迴圈計算64次
0040598F |> D1E0 /SHL EAX,1
//EAX=EAX SHL 1
00405991 |. D1D2
|RCL EDX,1
//EDX=EDX RCL 1
00405993 |. D1D6
|RCL ESI,1 //ESI=ESI RCL 1
00405995 |. D1D7 |RCL EDI,1
//EDI=EDI RCL 1
00405997 |. 39EF
|CMP EDI,EBP //EBP=28363
00405999 |. 72 0B |JB SHORT 1.004059A6
0040599B |. 77 04 |JA SHORT 1.004059A1
0040599D |. 39DE |CMP ESI,EBX
0040599F |. 72 05 |JB SHORT 1.004059A6
004059A1 |> 29DE |SUB ESI,EBX
//ESI=ESI-EBX
004059A3 |. 19EF
|SBB EDI,EBP
004059A5 |. 40
|INC EAX
004059A6 |>^E2 E7
\LOOPD SHORT 1.0040598F//EBX作為迴圈的標誌
004059A8 |. 89F0
MOV EAX,ESI
//EAX=ESI
004059AA |. 89FA MOV EDX,EDI
004059AC |. 5B POP EBX
004059AD |. F7C3 01000000 TEST EBX,1
004059B3 |. 74 07
JE SHORT 1.004059
004059B5 |. F7DA
NEG EDX
004059B7 |. F7D8
NEG EAX
004059B9 |. 83DA 00
SBB EDX,0
004059BC |> 5F POP
EDI
004059BD |. 5E POP ESI
004059BE |. 5B POP EBX
004059BF |. 5D POP EBP
004059C0
|. C2 0800 RETN 8
004059C3 |> F7F3
DIV EBX
004059C5 |. 92
XCHG EAX,EDX
004059C6 |. 31D2
XOR EDX,EDX
004059C8 \.^EB F2
JMP SHORT 1.004059BC
004059CA . C3
RETN
很可惜進位迴圈的部分我不能用程式設計模擬(水平太差,也沒有時間思考...)所以序號產生器不能完成.
不知道各位誰有時間可以跟蹤一下然後給出進位迴圈的原始碼^_^謝了!
這幾日單位的事情非常之多,而且工作壓力還特別的大~!所以想找一個軟體分析一下,作為鬆弛神經的方法.
不知道各位有什麼好的辦法給自己減壓啊!告訴小弟幾招阿~小弟不勝感激~!
相關文章
- 向大家請教開發流程的問題2006-06-22
- 請教大家一個JAVA的問題2003-10-09Java
- 請教大家關於java效能的問題2003-10-16Java
- [譯] React & Redux 頂級開發伴侶2018-04-09ReactRedux
- 小小java面試題(請教大家)2008-06-14Java面試題
- api 介面欄位規範的問題,請教大家2021-11-19API
- 請教大家spring mvc的action轉發問題2008-11-04SpringMVC
- 請教大家一個財務軟體的問題2007-10-22
- 請教一個演算法問題2023-09-17演算法
- 我是剛接觸java的,請教大家一問題!2004-11-16Java
- 技術晉級煩惱,請大家賜教2009-05-12
- 牛奶咖啡好伴侶——《C程式設計伴侶》對《C程式設計》2012-08-14C程式程式設計
- 遇到一個關於session id的問題,向大家請教!2006-11-12Session
- 請教phpword問題2022-05-18PHP
- 請教SAXParseException問題2005-12-08Exception
- 請教:NullPointerException 問題2005-07-07NullException
- 這是道面試題,想不懂,請教大家2020-12-10面試題
- 我請教大家這個平常的問題怎麼處理的2006-09-10
- 請教Beego Router 問題2018-07-24Go
- javah命令問題請教2006-07-15Java
- 請教初級問題:多語言合作如何實現2007-10-22
- Proxy Authorization Required 問題請教2020-05-09UI
- 請教ejb釋出問題2004-09-04
- 請教!!iplanet的問題2003-11-19
- 請教一個JVM問題2004-01-12JVM
- 請教: jive安裝問題?2003-08-06
- 請教javac 編譯問題2005-10-25Java編譯
- 請教XMLHttpRequest和Servlet問題2003-02-17XMLHTTPServlet
- 請教高手一個問題!2006-06-16
- 請教:OpenSessionInViewFilter配置使用問題2007-03-06SessionViewFilter
- 請教一個關於全排列的演算法問題?2003-06-16演算法
- Mac微信靈魂伴侶 - Tweak小助手2021-08-20Mac
- 《C程式設計伴侶》誕生記2012-08-13C程式程式設計
- 請教大家一個支付系統領域物件建模中類提取的問題2008-08-09物件
- 關於repaint()問題,大家請指點2003-08-08AI
- 請教 TensorFlow 安裝問題2020-07-11
- 請教web工程的的問題?2008-11-07Web
- 請教hibernate 中session問題2009-03-19Session