【原創】 一個會計軟體的演算法分析過程(詳細)

看雪資料發表於2015-11-15

標 題: 【原創】 一個會計軟體的演算法分析過程(詳細)

發帖人:liyangsj

時 間: 2005-01-10 12:16 

詳細資訊: 



一個會計軟體的演算法分析過程(詳細)
【破解作者】 jsliyangsj
【作者郵箱】 sjcrack@yahoo.com.cn
【使用工具】 peid OllyDbg1.10
【破解平臺】 Winxp
【軟體名稱】 總會計2000
【下載地址】 http://www.sfzc.com.cn/download/kj/zkj2000.exe
--------------------------------------------------------------------------------
分析:
程式沒有殼,是Microsoft Visual C++ 6.0編寫
用OD載入,選擇使用者名稱,點選“確定” 讓你輸入序列號不正確則退出
輸入碼必須16位,否則報錯,我用OD外掛ustrref.dll查詢字串“解密口令長度不對”
0040F237    .  83F8 10     cmp eax,10        必須16位
0040F23A    .  74 21       je short ZKJ2000.0040F25D
0040F23C    .  6A 00       push 0
0040F23E    .  6A 00       push 0
0040F240    .  68 8C3E5100 push ZKJ2000.00513E8C
0040F245    .  8BCF        mov ecx,edi
0040F247    .  E8 F8320C00 call <jmp.&MFC42.#4224>   出錯!!

我的輸入碼1212121212121212    我的機器碼:334Q0K1U4G3K3T52


0040F25D    > \8D4D 94     lea ecx,dword ptr ss:[ebp-6C]
0040F260    .  51          push ecx
0040F261    .  E8 D42D0C00 call <jmp.&ZB_DLL.Bm3GetYJInfo>
0040F266    .  83C4 04     add esp,4
0040F269    .  8D4D EC     lea ecx,dword ptr ss:[ebp-14]
0040F26C    .  E8 41310C00 call <jmp.&MFC42.#540>
0040F271    .  33F6        xor esi,esi
0040F273    .  68 A03D5100 push ZKJ2000.00513DA0
0040F278    .  8D4D EC     lea ecx,dword ptr ss:[ebp-14]
0040F27B    .  8975 FC     mov dword ptr ss:[ebp-4],esi
0040F27E    .  E8 95310C00 call <jmp.&MFC42.#860>
0040F283    .  8B45 EC     mov eax,dword ptr ss:[ebp-14]
0040F286    .  8B48 F8     mov ecx,dword ptr ds:[eax-8]
0040F289    .  51          push ecx
0040F28A    .  50          push eax
0040F28B    .  8D8D 4CEFFF>lea ecx,dword ptr ss:[ebp-10B4]
0040F291    .  FF15 B89D4E>call dword ptr ds:[<&ZB_DLL.CBm3Blowfis>;  ZB_DLL.CBm3Blowfish::CBm3Blowfish
0040F297    .  8B47 64     mov eax,dword ptr ds:[edi+64]
0040F29A    .  8D55 BC     lea edx,dword ptr ss:[ebp-44]
0040F29D    .  6A 0A       push 0A
0040F29F    .  52          push edx
0040F2A0    .  50          push eax
0040F2A1    .  C645 FC 01  mov byte ptr ss:[ebp-4],1
0040F2A5    .  E8 962D0C00 call <jmp.&ZB_DLL.Bm3WordToByte>        ;  第一次處理輸入碼
0040F2AA    .  83C4 0C     add esp,0C
0040F2AD    .  8D45 BC     lea eax,dword ptr ss:[ebp-44]
0040F2B0    .  8D8D 4CEFFF>lea ecx,dword ptr ss:[ebp-10B4]
0040F2B6    .  6A 08       push 8
0040F2B8    .  50          push eax
0040F2B9    .  FF15 A09D4E>call dword ptr ds:[<&ZB_DLL.CBm3Blowfis>;  第2次處理輸入碼
0040F2BF    .  33C0        xor eax,eax
0040F2C1    >  8A4C05 BC   mov cl,byte ptr ss:[ebp+eaw-44]
0040F2C5    .  8A5405 94   mov dl,byte ptr ss:[ebp+eaw-6C]            此處發現我最終的結果 
…………………………………………………………………………………………………………………………
0012D408  1CEB3030
0012D40C  00000F4A      由於最後兩位必須是FF,修正FFFF0F4A
…………………………………………………………………………………………………………………………
0040F2C9    .  3ACA        cmp cl,dl
0040F2CB    .  75 1E       jnz short ZKJ2000.0040F2EB
0040F2CD    .  40          inc eax
0040F2CE    .  83F8 06     cmp eax,6
0040F2D1    .^ 7C EE       jl short ZKJ2000.0040F2C1
0040F2D3    .  8B45 C2     mov eax,dword ptr ss:[ebp-3E]
0040F2D6    .  3C FF       cmp al,0FF
0040F2D8    .  75 24       jnz short ZKJ2000.0040F2FE              ;  計算後的倒數3,4位必須是FF
0040F2DA    .  891D B8FA51>mov dword ptr ds:[51FAB8],ebx
0040F2E0    .  8935 BCFA51>mov dword ptr ds:[51FABC],esi
0040F2E6    .  E9 BF000000 jmp ZKJ2000.0040F3AA
0040F2EB    >  56          push esi
0040F2EC    .  56          push esi
0040F2ED    .  68 643E5100 push ZKJ2000.00513E64
0040F2F2    .  8BCF        mov ecx,edi
0040F2F4    .  E8 4B320C00 call <jmp.&MFC42.#4224>
0040F2F9    .  E9 23030000 jmp ZKJ2000.0040F621
0040F2FE    >  25 FF000000 and eax,0FF
0040F303    .  891D BCFA51>mov dword ptr ds:[51FABC],ebx
0040F309    .  8BC8        mov ecx,eax
0040F30B    .  B8 ABAAAAAA mov eax,AAAAAAAB
0040F310    .  F7E1        mul ecx
0040F312    .  C1EA 03     shr edx,3
0040F315    .  81C2 D00700>add edx,7D0
0040F31B    .  8BC1        mov eax,ecx
0040F31D    .  8915 C0FA51>mov dword ptr ds:[51FAC0],edx
0040F323    .  33D2        xor edx,edx
0040F325    .  B9 0C000000 mov ecx,0C
0040F32A    .  F7F1        div ecx
0040F32C    .  42          inc edx
0040F32D    .  8915 C4FA51>mov dword ptr ds:[51FAC4],edx
0040F333    .  8D55 DC     lea edx,dword ptr ss:[ebp-24]
0040F336    .  52          push edx
0040F337    .  E8 14350C00 call <jmp.&MFC42.#3811>
0040F33C    .  8B00        mov eax,dword ptr ds:[eax]
0040F33E    .  56          push esi
0040F33F    .  8D4D E8     lea ecx,dword ptr ss:[ebp-18]
0040F342    .  8945 E8     mov dword ptr ss:[ebp-18],eax
0040F345    .  E8 00350C00 call <jmp.&MFC42.#3337>
0040F34A    .  8B40 14     mov eax,dword ptr ds:[eax+14]
0040F34D    .  8B0D C0FA51>mov ecx,dword ptr ds:[51FAC0]
0040F353    .  05 6C070000 add eax,76C
0040F358    .  3BC1        cmp eax,ecx
0040F35A    .  7C 45       jl short ZKJ2000.0040F3A1
0040F35C    .  56          push esi
0040F35D    .  8D4D E8     lea ecx,dword ptr ss:[ebp-18]
0040F360    .  E8 E5340C00 call <jmp.&MFC42.#3337>
0040F365    .  8B40 14     mov eax,dword ptr ds:[eax+14]
0040F368    .  8B0D C0FA51>mov ecx,dword ptr ds:[51FAC0]
0040F36E    .  05 6C070000 add eax,76C
0040F373    .  3BC1        cmp eax,ecx
0040F375    .  75 17       jnz short ZKJ2000.0040F38E
0040F377    .  56          push esi
0040F378    .  8D4D E8     lea ecx,dword ptr ss:[ebp-18]
0040F37B    .  E8 CA340C00 call <jmp.&MFC42.#3337>
0040F380    .  8B40 10     mov eax,dword ptr ds:[eax+10]
0040F383    .  8B0D C4FA51>mov ecx,dword ptr ds:[51FAC4]
0040F389    .  40          inc eax
0040F38A    .  3BC1        cmp eax,ecx
0040F38C    .  7E 13       jle short ZKJ2000.0040F3A1
0040F38E    >  56          push esi
0040F38F    .  56          push esi
0040F390    .  68 403E5100 push ZKJ2000.00513E40
0040F395    .  8BCF        mov ecx,edi
0040F397    .  E8 A8310C00 call <jmp.&MFC42.#4224>
0040F39C    .  E9 80020000 jmp ZKJ2000.0040F621
0040F3A1    >  8B45 C2     mov eax,dword ptr ss:[ebp-3E]
0040F3A4    .  891D B8FA51>mov dword ptr ds:[51FAB8],ebx
0040F3AA    >  80FC FF     cmp ah,0FF                              ;  計算後倒數1,2位必須是FF
0040F3AD    .  0F84 4E0100>je ZKJ2000.0040F501

………………………………………………………………………………………………………………………………
進入第一次處理輸入碼:0040F2A5    .  E8 962D0C00 call 第一次處理輸入碼 2次F7
………………………………………………………………………………………………………………………………
10001B50 Z>/$  53          push ebx
10001B51   |.  56          push esi
10001B52   |.  8B7424 0C   mov esi,dword ptr ss:[esp+C]
10001B56   |.  57          push edi
10001B57   |.  56          push esi                                ; /String
10001B58   |.  FF15 2CA109>call dword ptr ds:[<&KERNEL32.lstrlenA>>; \lstrlenA
10001B5E   |.  A8 01       test al,1
10001B60   |.  0F85 980000>jnz ZB_DLL.10001BFE
10001B66   |.  8B4C24 18   mov ecx,dword ptr ss:[esp+18]
10001B6A   |.  D1E8        shr eax,1
10001B6C   |.  3BC1        cmp eax,ecx
10001B6E   |.  0F87 8A0000>ja ZB_DLL.10001BFE
10001B74   |.  33FF        xor edi,edi
10001B76   |.  85C0        test eax,eax
10001B78   |.  0F86 820000>jbe ZB_DLL.10001C00
10001B7E   |.  8B5C24 14   mov ebx,dword ptr ss:[esp+14]           ;  準備儲存的地址
10001B82   |>  0FBE0E      /movsx ecx,byte ptr ds:[esi]
10001B85   |.  83F9 61     |cmp ecx,61                             ;  判斷是否為小寫
10001B88   |.  7C 0A       |jl short ZB_DLL.10001B94
10001B8A   |.  83F9 7A     |cmp ecx,7A
10001B8D   |.  7F 05       |jg short ZB_DLL.10001B94
10001B8F   |.  83E9 57     |sub ecx,57                             ;  小寫就-57
10001B92   |.  EB 1C       |jmp short ZB_DLL.10001BB0
10001B94   |>  83F9 41     |cmp ecx,41
10001B97   |.  7C 0A       |jl short ZB_DLL.10001BA3               ;  判斷是否為大寫
10001B99   |.  83F9 5A     |cmp ecx,5A
10001B9C   |.  7F 05       |jg short ZB_DLL.10001BA3
10001B9E   |.  83E9 37     |sub ecx,37                             ;  大寫就-37得到原字母
10001BA1   |.  EB 0D       |jmp short ZB_DLL.10001BB0
10001BA3   |>  83F9 30     |cmp ecx,30
10001BA6   |.  7C 56       |jl short ZB_DLL.10001BFE               ;  判斷是否為數字
10001BA8   |.  83F9 39     |cmp ecx,39
10001BAB   |.  7F 51       |jg short ZB_DLL.10001BFE
10001BAD   |.  83E9 30     |sub ecx,30                             ;  數字就-30
10001BB0   |>  8D14C9      |lea edx,dword ptr ds:[ecx+ecx*8]       ;  輸入碼第一位*8+原輸入碼臨時儲存
10001BB3   |.  0FBE4E 01   |movsx ecx,byte ptr ds:[esi+1]          ;  下一位註冊碼
10001BB7   |.  C1E2 02     |shl edx,2                              ;  第一次的結果左移2位
10001BBA   |.  83F9 61     |cmp ecx,61                             ;  檢查是否為小寫字母
10001BBD   |.  7C 0A       |jl short ZB_DLL.10001BC9
10001BBF   |.  83F9 7A     |cmp ecx,7A
10001BC2   |.  7F 05       |jg short ZB_DLL.10001BC9
10001BC4   |.  83E9 57     |sub ecx,57
10001BC7   |.  EB 1C       |jmp short ZB_DLL.10001BE5
10001BC9   |>  83F9 41     |cmp ecx,41                             ;  檢查是否為大寫
10001BCC   |.  7C 0A       |jl short ZB_DLL.10001BD8
10001BCE   |.  83F9 5A     |cmp ecx,5A
10001BD1   |.  7F 05       |jg short ZB_DLL.10001BD8
10001BD3   |.  83E9 37     |sub ecx,37                             ;  大寫就-37得到原字母
10001BD6   |.  EB 0D       |jmp short ZB_DLL.10001BE5
10001BD8   |>  83F9 30     |cmp ecx,30
10001BDB   |.  7C 21       |jl short ZB_DLL.10001BFE
10001BDD   |.  83F9 39     |cmp ecx,39
10001BE0   |.  7F 1C       |jg short ZB_DLL.10001BFE
10001BE2   |.  83E9 30     |sub ecx,30                             ;  數字-30
10001BE5   |>  03D1        |add edx,ecx                            ;  把第一個輸入碼計算再左移的數值加上第二位
10001BE7   |.  81FA FF0000>|cmp edx,0FF                            ;  看看有沒有超過0FF
10001BED   |.  7F 0F       |jg short ZB_DLL.10001BFE
10001BEF   |.  88141F      |mov byte ptr ds:[edi+ebx],dl           ;  儲存到0012D430開始的地址
10001BF2   |.  47          |inc edi                                ;  準備儲存到下一個地址
10001BF3   |.  83C6 02     |add esi,2                              ;  兩位兩位計算儲存,
10001BF6   |.  3BF8        |cmp edi,eax                            ;  比較次數8次16的一半
10001BF8   |.^ 72 88       \jb short ZB_DLL.10001B82
10001BFA   |.  5F          pop edi
10001BFB   |.  5E          pop esi
10001BFC   |.  5B          pop ebx
10001BFD   |.  C3          retn
10001BFE   |>  33C0        xor eax,eax
10001C00   |>  5F          pop edi
10001C01   |.  5E          pop esi
10001C02   |.  5B          pop ebx
10001C03   \.  C3          retn

分析:上面是兩個輸入碼一次處理,第一個輸入碼(當成十六進位制只能0~7)*9的值左移2位+第2個輸入碼的值
第2個輸入碼如果是數字,直接相加,,若是大寫字母ACSII-37再相加即可,(輸入字元不可以小寫)
………………………………………………………………………………………………………………………………
進入第2次處理輸入碼
0040F2B9    .  FF15 A09D4E>call dword ptr ds:[<&ZB_DLL.CBm3Blowfis>;  第2次處理輸入碼
………………………………………………………………………………………………………………………………
10001260 Z>/$  8B4424 08   mov eax,dword ptr ss:[esp+8]
10001264   |.  53          push ebx
10001265   |.  8BD9        mov ebx,ecx
10001267   |.  8BC8        mov ecx,eax
10001269   |.  C1E9 03     shr ecx,3
1000126C   |.  C1E1 03     shl ecx,3
1000126F   |.  3BC8        cmp ecx,eax
10001271   |.  74 06       je short ZB_DLL.10001279
10001273   |.  33C0        xor eax,eax
10001275   |.  5B          pop ebx
10001276   |.  C2 0800     retn 8
10001279   |>  85C0        test eax,eax
1000127B   |.  76 20       jbe short ZB_DLL.1000129D
1000127D   |.  56          push esi
1000127E   |.  8B7424 0C   mov esi,dword ptr ss:[esp+C]            ;  第一次計算碼地址0012D430
10001282   |.  57          push edi
10001283   |.  8D78 07     lea edi,dword ptr ds:[eax+7]
10001286   |.  C1EF 03     shr edi,3
10001289   |>  8D56 04     /lea edx,dword ptr ds:[esi+4]           ;  計算後的第5位註冊碼的地址
1000128C   |.  8BCB        |mov ecx,ebx                            ;  密碼錶地址
1000128E   |.  52          |push edx                               ;  第5位地址
1000128F   |.  56          |push esi                               ;  第1位地址
10001290   |.  E8 2B040000 |call ZB_DLL.CBm3Blowfish::Blowfish_dec>;  進入
10001295   |.  83C6 08     |add esi,8
10001298   |.  4F          |dec edi
10001299   |.^ 75 EE       \jnz short ZB_DLL.10001289
1000129B   |.  5F          pop edi
1000129C   |.  5E          pop esi
1000129D   |>  B8 01000000 mov eax,1
100012A2   |.  5B          pop ebx
100012A3   \.  C2 0800     retn 8
………………………………………………………………………………………………………………………………
10001290   |.  E8 2B040000 |call ZB_DLL.CBm3Blowfish::Blowfish_dec>;  進入
………………………………………………………………………………………………………………………………
100016C0 Z>/$  8B51 44     mov edx,dword ptr ds:[ecx+44]   ;  不變值   D3B2368E
100016C3   |.  53          push ebx                        ;  0012C3C0
100016C4   |.  55          push ebp
100016C5   |.  56          push esi                        ;  0012D430
100016C6   |.  8B7424 10   mov esi,dword ptr ss:[esp+10]   ;  0012D430
100016CA   |.  57          push edi                        ;  1,下面沒有PUSH了就是說堆疊的值一個都不變
100016CB   |.  8B06        mov eax,dword ptr ds:[esi]      ;  取計算後的前六位
100016CD   |.  33D0        xor edx,eax                     ;  前6位與D3B2368E XOR
100016CF   |.  33C0        xor eax,eax                     ;  清零
100016D1   |.  895424 14   mov dword ptr ss:[esp+14],edx   ;  XOR後儲存到0012C394(臨時儲存後面好多都儲存這裡)
100016D5   |.  8BFA        mov edi,edx                     ;  值又給了EDI
100016D7   |.  8A4424 16   mov al,byte ptr ss:[esp+16]     ;  指標   剛才算出來的第3,4位
100016DB   |.  C1EF 18     shr edi,18                      ;  指標  把剛才數值SHR 18位就是取第1,2兩位
100016DE   |.  8B8481 4804>mov eax,dword ptr ds:[ecx+eax*4>;  固定值可以變化
100016E5   |.  8B5CB9 48   mov ebx,dword ptr ds:[ecx+edi*4>;  固定值可以變化
100016E9   |.  03C3        add eax,ebx                     ;  兩位固定值相加
100016EB   |.  33DB        xor ebx,ebx                     ;  其中一個清零
100016ED   |.  8ADE        mov bl,dh                       ;  第6,7位給了BH
100016EF   |.  8BBC99 4808>mov edi,dword ptr ds:[ecx+ebx*4>;  固定值可以變化
100016F6   |.  33C7        xor eax,edi
100016F8   |.  8BFA        mov edi,edx                     ;  取代edi
100016FA   |.  81E7 FF0000>and edi,0FF                     ;  指標  取最後2位A8
10001700   |.  8B9CB9 480C>mov ebx,dword ptr ds:[ecx+edi*4>;  固定值可以變化
10001707   |.  8B79 40     mov edi,dword ptr ds:[ecx+40]   ;  不變值  F01AE404
1000170A   |.  03C3        add eax,ebx                     ;  EAX與固定值相加
1000170C   |.  33DB        xor ebx,ebx                     ;  清零固定值
1000170E   |.  33C7        xor eax,edi                     ;  EAX值再與另一固定值
10001710   |.  8B7C24 18   mov edi,dword ptr ss:[esp+18]   ;  輸入碼的計算後的後8位地址
10001714   |.  3307        xor eax,dword ptr ds:[edi]      ;  剛才上面算出來的EAX,再與後四位XOR
10001716   |.  894424 14   mov dword ptr ss:[esp+14],eax   ;  把結果儲存在0012C394
1000171A   |.  8BE8        mov ebp,eax
1000171C   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]     ;  指標  取剛才儲存的3,4位
10001720   |.  C1ED 18     shr ebp,18                      ;  指標  把剛才儲存的值SHR18就是前第1,2為
10001723   |.  8B9C99 4804>mov ebx,dword ptr ds:[ecx+ebx*4>;  固定值可以變化
1000172A   |.  035CA9 48   add ebx,dword ptr ds:[ecx+ebp*4>;  固定值可以變化
1000172E   |.  8BEB        mov ebp,ebx
10001730   |.  33DB        xor ebx,ebx
10001732   |.  8ADC        mov bl,ah                       ;  指標 取剛儲存的第5,6位
10001734   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>;  固定值可以變化
1000173B   |.  8BD8        mov ebx,eax                     ;  把算好的給了EBX
1000173D   |.  81E3 FF0000>and ebx,0FF                     ;  指標 取最後兩位
10001743   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>;  固定值可以變化
1000174A   |.  8B59 3C     mov ebx,dword ptr ds:[ecx+3C]   ;  不變值
1000174D   |.  33EB        xor ebp,ebx                     ;  剛加好的數與剛才的固定值XOR
1000174F   |.  33DB        xor ebx,ebx
10001751   |.  33D5        xor edx,ebp                     ;  EDX與剛才的值XOR
10001753   |.  895424 14   mov dword ptr ss:[esp+14],edx   ;  臨時儲存0012C394
10001757   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]     ;  取它的3,4位作指標
1000175B   |.  C1EA 18     shr edx,18                      ;  指標
1000175E   |.  8BAC99 4804>mov ebp,dword ptr ds:[ecx+ebx*4>;  固定值可以變化
10001765   |.  8B5C91 48   mov ebx,dword ptr ds:[ecx+edx*4>;  固定值可以變化
10001769   |.  8B5424 14   mov edx,dword ptr ss:[esp+14]   ;  從0012C943取剛才的值
1000176D   |.  03EB        add ebp,ebx                     ;  相加
1000176F   |.  33DB        xor ebx,ebx                     ;  清零
10001771   |.  8ADE        mov bl,dh                       ;  第6,7位當指標
10001773   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>;  取固定值與EBP XOR
1000177A   |.  8BDA        mov ebx,edx                     ;  從0012C094中取的值給了EBX
1000177C   |.  81E3 FF0000>and ebx,0FF                     ;  取後兩位作指標
10001782   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>;  固定值可以變化
10001789   |.  8B59 38     mov ebx,dword ptr ds:[ecx+38]   ;  不變的值
1000178C   |.  33EB        xor ebp,ebx
1000178E   |.  33DB        xor ebx,ebx
10001790   |.  33C5        xor eax,ebp
10001792   |.  894424 14   mov dword ptr ss:[esp+14],eax   ;  儲存並準備分成4組,分別作指標取值計算改變EDX
10001796   |.  8BE8        mov ebp,eax
10001798   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
1000179C   |.  C1ED 18     shr ebp,18
1000179F   |.  8B9C99 4804>mov ebx,dword ptr ds:[ecx+ebx*4>
100017A6   |.  035CA9 48   add ebx,dword ptr ds:[ecx+ebp*4>
100017AA   |.  8BEB        mov ebp,ebx
100017AC   |.  33DB        xor ebx,ebx
100017AE   |.  8ADC        mov bl,ah
100017B0   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
100017B7   |.  8BD8        mov ebx,eax
100017B9   |.  81E3 FF0000>and ebx,0FF
100017BF   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
100017C6   |.  8B59 34     mov ebx,dword ptr ds:[ecx+34]
100017C9   |.  33EB        xor ebp,ebx
100017CB   |.  33D5        xor edx,ebp
100017CD   |.  33DB        xor ebx,ebx
100017CF   |.  895424 14   mov dword ptr ss:[esp+14],edx   ;  儲存並準備分成4組,分別作指標取值計算改變EAX
100017D3   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
100017D7   |.  C1EA 18     shr edx,18
100017DA   |.  8BAC99 4804>mov ebp,dword ptr ds:[ecx+ebx*4>
100017E1   |.  8B5C91 48   mov ebx,dword ptr ds:[ecx+edx*4>
100017E5   |.  8B5424 14   mov edx,dword ptr ss:[esp+14]
100017E9   |.  03EB        add ebp,ebx
100017EB   |.  33DB        xor ebx,ebx
100017ED   |.  8ADE        mov bl,dh
100017EF   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
100017F6   |.  8BDA        mov ebx,edx
100017F8   |.  81E3 FF0000>and ebx,0FF
100017FE   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
10001805   |.  8B59 30     mov ebx,dword ptr ds:[ecx+30]
10001808   |.  33EB        xor ebp,ebx
1000180A   |.  33DB        xor ebx,ebx
1000180C   |.  33C5        xor eax,ebp
1000180E   |.  894424 14   mov dword ptr ss:[esp+14],eax   ;  儲存並準備分成4組,分別作指標取值計算改變
10001812   |.  8BE8        mov ebp,eax
10001814   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
10001818   |.  C1ED 18     shr ebp,18
1000181B   |.  8B9C99 4804>mov ebx,dword ptr ds:[ecx+ebx*4>
10001822   |.  035CA9 48   add ebx,dword ptr ds:[ecx+ebp*4>
10001826   |.  8BEB        mov ebp,ebx
10001828   |.  33DB        xor ebx,ebx
1000182A   |.  8ADC        mov bl,ah
1000182C   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
10001833   |.  8BD8        mov ebx,eax
10001835   |.  81E3 FF0000>and ebx,0FF
1000183B   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
10001842   |.  8B59 2C     mov ebx,dword ptr ds:[ecx+2C]
10001845   |.  33EB        xor ebp,ebx
10001847   |.  33DB        xor ebx,ebx
10001849   |.  33D5        xor edx,ebp
1000184B   |.  895424 14   mov dword ptr ss:[esp+14],edx   ;  儲存並準備分成4組,分別作指標取值計算改變
1000184F   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
10001853   |.  C1EA 18     shr edx,18
10001856   |.  8BAC99 4804>mov ebp,dword ptr ds:[ecx+ebx*4>
1000185D   |.  8B5C91 48   mov ebx,dword ptr ds:[ecx+edx*4>
10001861   |.  8B5424 14   mov edx,dword ptr ss:[esp+14]
10001865   |.  03EB        add ebp,ebx
10001867   |.  33DB        xor ebx,ebx
10001869   |.  8ADE        mov bl,dh
1000186B   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
10001872   |.  8BDA        mov ebx,edx
10001874   |.  81E3 FF0000>and ebx,0FF
1000187A   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
10001881   |.  8B59 28     mov ebx,dword ptr ds:[ecx+28]
10001884   |.  33EB        xor ebp,ebx
10001886   |.  33DB        xor ebx,ebx
10001888   |.  33C5        xor eax,ebp
1000188A   |.  894424 14   mov dword ptr ss:[esp+14],eax   ;  儲存並準備分成4組,分別作指標取值計算改變
1000188E   |.  8BE8        mov ebp,eax
10001890   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
10001894   |.  C1ED 18     shr ebp,18
10001897   |.  8B9C99 4804>mov ebx,dword ptr ds:[ecx+ebx*4>
1000189E   |.  035CA9 48   add ebx,dword ptr ds:[ecx+ebp*4>
100018A2   |.  8BEB        mov ebp,ebx
100018A4   |.  33DB        xor ebx,ebx
100018A6   |.  8ADC        mov bl,ah
100018A8   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
100018AF   |.  8BD8        mov ebx,eax
100018B1   |.  81E3 FF0000>and ebx,0FF
100018B7   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
100018BE   |.  8B59 24     mov ebx,dword ptr ds:[ecx+24]
100018C1   |.  33EB        xor ebp,ebx
100018C3   |.  33DB        xor ebx,ebx
100018C5   |.  33D5        xor edx,ebp
100018C7   |.  895424 14   mov dword ptr ss:[esp+14],edx   ;  儲存並準備分成4組,分別作指標取值計算改變
100018CB   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
100018CF   |.  C1EA 18     shr edx,18
100018D2   |.  8BAC99 4804>mov ebp,dword ptr ds:[ecx+ebx*4>
100018D9   |.  8B5C91 48   mov ebx,dword ptr ds:[ecx+edx*4>
100018DD   |.  8B5424 14   mov edx,dword ptr ss:[esp+14]
100018E1   |.  03EB        add ebp,ebx
100018E3   |.  33DB        xor ebx,ebx
100018E5   |.  8ADE        mov bl,dh
100018E7   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
100018EE   |.  8BDA        mov ebx,edx
100018F0   |.  81E3 FF0000>and ebx,0FF
100018F6   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
100018FD   |.  8B59 20     mov ebx,dword ptr ds:[ecx+20]
10001900   |.  33EB        xor ebp,ebx
10001902   |.  33DB        xor ebx,ebx
10001904   |.  33C5        xor eax,ebp
10001906   |.  894424 14   mov dword ptr ss:[esp+14],eax   ;  儲存並準備分成4組,分別作指標取值計算改變
1000190A   |.  8BE8        mov ebp,eax
1000190C   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
10001910   |.  C1ED 18     shr ebp,18
10001913   |.  8B9C99 4804>mov ebx,dword ptr ds:[ecx+ebx*4>
1000191A   |.  035CA9 48   add ebx,dword ptr ds:[ecx+ebp*4>
1000191E   |.  8BEB        mov ebp,ebx
10001920   |.  33DB        xor ebx,ebx
10001922   |.  8ADC        mov bl,ah
10001924   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
1000192B   |.  8BD8        mov ebx,eax
1000192D   |.  81E3 FF0000>and ebx,0FF
10001933   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
1000193A   |.  8B59 1C     mov ebx,dword ptr ds:[ecx+1C]
1000193D   |.  33EB        xor ebp,ebx
1000193F   |.  33DB        xor ebx,ebx
10001941   |.  33D5        xor edx,ebp
10001943   |.  895424 14   mov dword ptr ss:[esp+14],edx   ;  儲存並準備分成4組,分別作指標取值計算改變
10001947   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
1000194B   |.  C1EA 18     shr edx,18
1000194E   |.  8BAC99 4804>mov ebp,dword ptr ds:[ecx+ebx*4>
10001955   |.  8B5C91 48   mov ebx,dword ptr ds:[ecx+edx*4>
10001959   |.  8B5424 14   mov edx,dword ptr ss:[esp+14]
1000195D   |.  03EB        add ebp,ebx
1000195F   |.  33DB        xor ebx,ebx
10001961   |.  8ADE        mov bl,dh
10001963   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
1000196A   |.  8BDA        mov ebx,edx
1000196C   |.  81E3 FF0000>and ebx,0FF
10001972   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
10001979   |.  8B59 18     mov ebx,dword ptr ds:[ecx+18]
1000197C   |.  33EB        xor ebp,ebx
1000197E   |.  33DB        xor ebx,ebx
10001980   |.  33C5        xor eax,ebp
10001982   |.  894424 14   mov dword ptr ss:[esp+14],eax   ;  儲存並準備分成4組,分別作指標取值計算改變
10001986   |.  8BE8        mov ebp,eax
10001988   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
1000198C   |.  C1ED 18     shr ebp,18
1000198F   |.  8B9C99 4804>mov ebx,dword ptr ds:[ecx+ebx*4>
10001996   |.  035CA9 48   add ebx,dword ptr ds:[ecx+ebp*4>
1000199A   |.  8BEB        mov ebp,ebx
1000199C   |.  33DB        xor ebx,ebx
1000199E   |.  8ADC        mov bl,ah
100019A0   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
100019A7   |.  8BD8        mov ebx,eax
100019A9   |.  81E3 FF0000>and ebx,0FF
100019AF   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
100019B6   |.  8B59 14     mov ebx,dword ptr ds:[ecx+14]
100019B9   |.  33EB        xor ebp,ebx
100019BB   |.  33DB        xor ebx,ebx
100019BD   |.  33D5        xor edx,ebp
100019BF   |.  895424 14   mov dword ptr ss:[esp+14],edx   ;  儲存並準備分成4組,分別作指標取值計算改變
100019C3   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
100019C7   |.  C1EA 18     shr edx,18
100019CA   |.  8BAC99 4804>mov ebp,dword ptr ds:[ecx+ebx*4>
100019D1   |.  8B5C91 48   mov ebx,dword ptr ds:[ecx+edx*4>
100019D5   |.  8B5424 14   mov edx,dword ptr ss:[esp+14]
100019D9   |.  03EB        add ebp,ebx
100019DB   |.  33DB        xor ebx,ebx
100019DD   |.  8ADE        mov bl,dh
100019DF   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
100019E6   |.  8BDA        mov ebx,edx
100019E8   |.  81E3 FF0000>and ebx,0FF
100019EE   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
100019F5   |.  8B59 10     mov ebx,dword ptr ds:[ecx+10]
100019F8   |.  33EB        xor ebp,ebx
100019FA   |.  33C5        xor eax,ebp
100019FC   |.  33DB        xor ebx,ebx
100019FE   |.  894424 14   mov dword ptr ss:[esp+14],eax   ;  儲存並準備分成4組,分別作指標取值計算改變
10001A02   |.  8BE8        mov ebp,eax
10001A04   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
10001A08   |.  8B9C99 4804>mov ebx,dword ptr ds:[ecx+ebx*4>
10001A0F   |.  C1ED 18     shr ebp,18
10001A12   |.  035CA9 48   add ebx,dword ptr ds:[ecx+ebp*4>
10001A16   |.  8BEB        mov ebp,ebx
10001A18   |.  33DB        xor ebx,ebx
10001A1A   |.  8ADC        mov bl,ah
10001A1C   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
10001A23   |.  8BD8        mov ebx,eax
10001A25   |.  81E3 FF0000>and ebx,0FF
10001A2B   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
10001A32   |.  8B59 0C     mov ebx,dword ptr ds:[ecx+C]
10001A35   |.  33EB        xor ebp,ebx
10001A37   |.  33DB        xor ebx,ebx
10001A39   |.  33D5        xor edx,ebp
10001A3B   |.  895424 14   mov dword ptr ss:[esp+14],edx   ;  儲存並準備分成4組,分別作指標取值計算改變
10001A3F   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
10001A43   |.  C1EA 18     shr edx,18
10001A46   |.  8BAC99 4804>mov ebp,dword ptr ds:[ecx+ebx*4>
10001A4D   |.  8B5C91 48   mov ebx,dword ptr ds:[ecx+edx*4>
10001A51   |.  8B5424 14   mov edx,dword ptr ss:[esp+14]
10001A55   |.  03EB        add ebp,ebx
10001A57   |.  33DB        xor ebx,ebx
10001A59   |.  8ADE        mov bl,dh
10001A5B   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
10001A62   |.  8BDA        mov ebx,edx
10001A64   |.  81E3 FF0000>and ebx,0FF
10001A6A   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
10001A71   |.  8B59 08     mov ebx,dword ptr ds:[ecx+8]
10001A74   |.  33EB        xor ebp,ebx
10001A76   |.  33DB        xor ebx,ebx
10001A78   |.  33C5        xor eax,ebp
10001A7A   |.  894424 14   mov dword ptr ss:[esp+14],eax   ;  斷點1 儲存並準備分成4組,分別作指標取值計算改變此處的EAX值與10001AB5同
10001A7E   |.  8BE8        mov ebp,eax
10001A80   |.  8A5C24 16   mov bl,byte ptr ss:[esp+16]
10001A84   |.  C1ED 18     shr ebp,18
10001A87   |.  8B9C99 4804>mov ebx,dword ptr ds:[ecx+ebx*4>
10001A8E   |.  035CA9 48   add ebx,dword ptr ds:[ecx+ebp*4>
10001A92   |.  8BEB        mov ebp,ebx
10001A94   |.  33DB        xor ebx,ebx
10001A96   |.  8ADC        mov bl,ah
10001A98   |.  33AC99 4808>xor ebp,dword ptr ds:[ecx+ebx*4>
10001A9F   |.  8BD8        mov ebx,eax
10001AA1   |.  81E3 FF0000>and ebx,0FF
10001AA7   |.  03AC99 480C>add ebp,dword ptr ds:[ecx+ebx*4>
10001AAE   |.  8B59 04     mov ebx,dword ptr ds:[ecx+4]
10001AB1   |.  8B09        mov ecx,dword ptr ds:[ecx]
10001AB3   |.  33EB        xor ebp,ebx
10001AB5   |.  33C8        xor ecx,eax                     ;  現在開始倒推:ECX是固定EB4A4B27我的結果碼1CEB3030所以我的EAX必須是F7A17B17
10001AB7   |.  33D5        xor edx,ebp                     ;  斷點2  推出EDX的值等同與上面10001A3B  EDX的值
10001AB9   |.  890E        mov dword ptr ds:[esi],ecx      ;  終於寫入了0012D430
10001ABB   |.  8917        mov dword ptr ds:[edi],edx
10001ABD   |.  5F          pop edi
10001ABE   |.  5E          pop esi
10001ABF   |.  5D          pop ebp
10001AC0   |.  5B          pop ebx
10001AC1   \.  C2 0800     retn 8
10001AC4       90          nop
……………………………………………………………………………………………………………………………………
這裡發現一張表是固定的,用於指標取之,計算:
0012C3C0  EB4A4B27
0012C3C4  80A9ECF0
0012C3C8  5336A06B
0012C3CC  E6332B22
0012C3D0  CB6960CA
0012C3D4  9ACE42FF
0012C3D8  B9088D52
0012C3DC  9B060A56
0012C3E0  1C38C9E5
0012C3E4  9C698BD0
0012C3E8  46184F38
0012C3EC  AA4B0D2E
0012C3F0  2170D567
0012C3F4  9B2CE490
0012C3F8  F86572A2
0012C3FC  71F00093
0012C400  F01AE404
0012C404  D3B2368E
0012C408  A34609DE
0012C40C  35B8F70C
0012C410  90B734C1
0012C414  BFA4758B
0012C418  DBAAB349
0012C41C  FA12B5D1
0012C420  1FD69CA1
0012C424  233CAC84
0012C428  6F3B7B61
0012C42C  133A7550
0012C430  0203C026
0012C434  E8CA811F
0012C438  D1314F7B
0012C43C  FDEF2BA1
0012C440  37B7E9F5
0012C444  20558ACB
0012C448  1B41EA90
0012C44C  F6148C49
0012C450  C809C03C
0012C454  B46B3421
0012C458  DE0FF17D
0012C45C  81ED4BC3
0012C460  CE28F22E
0012C464  B65890BF
0012C468  96C39A3C
0012C46C  E125F8C9
0012C470  8C34C5D9
0012C474  8AB9A855
0012C478  89ECFD8A
0012C47C  51913F5F
0012C480  4BF8C08A
0012C484  A29B8CFB
0012C488  CF1390D9
0012C48C  16B3B339
0012C490  834FAFEA
0012C494  0F92840A
0012C498  1F1E653D
0012C49C  1EC2826E
0012C4A0  0256D647
0012C4A4  D7B81E1F
0012C4A8  A91B0C57
下面還有還多的!!
………………………………………………………………………………………………………………………………

我的計算結果最後和1CEB3030  FFFF0F4A比較先推出EAX,再根據EAX推出EDX,然後把EDX帶入上面EDX,
這樣一點一點向上推,得到:我的經過第一次計算的前8位應該是346C23AD,後8位應該是AE6576A4
然後再把他們用第一次計算過程反計算!
最後我的輸入碼是1G300Z4T4U2T3A4K

――――――――――――――――――――――――――――――――――――――――――――――――
產生比較碼:1CEB3030  FFFF0F4A的地方:
0040F261    .  E8 D42D0C00 call <jmp.&ZB_DLL.Bm3GetYJInfo>
――――――――――――――――――――――――――――――――――――――――――――――――
進入:
10001C10 Z>/$  81EC A40500>sub esp,5A4
10001C16   |.  57          push edi
10001C17   |.  B9 10000000 mov ecx,10
10001C1C   |.  33C0        xor eax,eax
10001C1E   |.  8D7C24 0C   lea edi,dword ptr ss:[esp+C]
10001C22   |.  F3:AB       rep stos dword ptr es:[edi]
10001C24   |.  8D4C24 0C   lea ecx,dword ptr ss:[esp+C]
10001C28   |.  8D4424 50   lea eax,dword ptr ss:[esp+50]
10001C2C   |.  51          push ecx
10001C2D   |.  C64424 54 0>mov byte ptr ss:[esp+54],0
10001C32   |.  C64424 10 3>mov byte ptr ss:[esp+10],37
10001C37   |.  894424 14   mov dword ptr ss:[esp+14],eax
10001C3B   |.  66:C74424 1>mov word ptr ss:[esp+18],100
10001C42   |.  E8 719B0800 call <jmp.&NETAPI32.Netbios>
10001C47   |.  8A4424 50   mov al,byte ptr ss:[esp+50]
10001C4B   |.  84C0        test al,al
10001C4D   |.  0F86 CA0000>jbe ZB_DLL.10001D1D
10001C53   |.  8A5424 51   mov dl,byte ptr ss:[esp+51]
10001C57   |.  B9 10000000 mov ecx,10
10001C5C   |.  33C0        xor eax,eax
10001C5E   |.  8D7C24 0C   lea edi,dword ptr ss:[esp+C]
10001C62   |.  F3:AB       rep stos dword ptr es:[edi]
10001C64   |.  8D4424 0C   lea eax,dword ptr ss:[esp+C]
10001C68   |.  56          push esi
10001C69   |.  50          push eax
10001C6A   |.  C64424 14 3>mov byte ptr ss:[esp+14],32
10001C6F   |.  885424 44   mov byte ptr ss:[esp+44],dl
10001C73   |.  E8 409B0800 call <jmp.&NETAPI32.Netbios>
10001C78   |.  B9 10000000 mov ecx,10
10001C7D   |.  33C0        xor eax,eax
10001C7F   |.  8D7C24 10   lea edi,dword ptr ss:[esp+10]
10001C83   |.  8D5424 1A   lea edx,dword ptr ss:[esp+1A]
10001C87   |.  F3:AB       rep stos dword ptr es:[edi]
10001C89   |.  BF 28700C10 mov edi,ZB_DLL.100C7028                  ;  ASCII "*               "
10001C8E   |.  83C9 FF     or ecx,FFFFFFFF
10001C91   |.  F2:AE       repne scas byte ptr es:[edi]
10001C93   |.  F7D1        not ecx
10001C95   |.  2BF9        sub edi,ecx
10001C97   |.  884424 40   mov byte ptr ss:[esp+40],al
10001C9B   |.  8BC1        mov eax,ecx
10001C9D   |.  8BF7        mov esi,edi
10001C9F   |.  8BFA        mov edi,edx
10001CA1   |.  C64424 10 3>mov byte ptr ss:[esp+10],33
10001CA6   |.  C1E9 02     shr ecx,2
10001CA9   |.  F3:A5       rep movs dword ptr es:[edi],dword ptr ds>
10001CAB   |.  8BC8        mov ecx,eax
10001CAD   |.  8D5424 10   lea edx,dword ptr ss:[esp+10]
10001CB1   |.  83E1 03     and ecx,3
10001CB4   |.  52          push edx
10001CB5   |.  F3:A4       rep movs byte ptr es:[edi],byte ptr ds:[>
10001CB7   |.  8D8C24 5801>lea ecx,dword ptr ss:[esp+158]
10001CBE   |.  66:C74424 1>mov word ptr ss:[esp+1C],258
10001CC5   |.  894C24 18   mov dword ptr ss:[esp+18],ecx
10001CC9   |.  E8 EA9A0800 call <jmp.&NETAPI32.Netbios>
10001CCE   |.  84C0        test al,al
10001CD0   |.  5E          pop esi
10001CD1   |.  75 4A       jnz short ZB_DLL.10001D1D
10001CD3   |.  8B8424 AC05>mov eax,dword ptr ss:[esp+5AC]
10001CDA   |.  8A8C24 5001>mov cl,byte ptr ss:[esp+150]
10001CE1   |.  8A9424 5101>mov dl,byte ptr ss:[esp+151]
10001CE8   |.  5F          pop edi
10001CE9   |.  8808        mov byte ptr ds:[eax],cl
10001CEB   |.  8A8C24 4E01>mov cl,byte ptr ss:[esp+14E]
10001CF2   |.  8850 01     mov byte ptr ds:[eax+1],dl
10001CF5   |.  8A9424 4F01>mov dl,byte ptr ss:[esp+14F]
10001CFC   |.  8848 02     mov byte ptr ds:[eax+2],cl
10001CFF   |.  8A8C24 5001>mov cl,byte ptr ss:[esp+150]
10001D06   |.  8850 03     mov byte ptr ds:[eax+3],dl
10001D09   |.  8A9424 5101>mov dl,byte ptr ss:[esp+151]
10001D10   |.  8848 04     mov byte ptr ds:[eax+4],cl
10001D13   |.  8850 05     mov byte ptr ds:[eax+5],dl
10001D16   |.  81C4 A40500>add esp,5A4
10001D1C   |.  C3          retn                                    
10001D1D   |>  8D8424 A803>lea eax,dword ptr ss:[esp+3A8]              沒上網到這裡
10001D24   |.  68 00010000 push 100                                 ; /pFileSystemNameSize = 00000100
10001D29   |.  8D4C24 0C   lea ecx,dword ptr ss:[esp+C]             ; |
10001D2D   |.  50          push eax                                 ; |pFileSystemNameBuffer
10001D2E   |.  8D5424 54   lea edx,dword ptr ss:[esp+54]            ; |
10001D32   |.  51          push ecx                                 ; |pFileSystemFlags
10001D33   |.  8D4424 10   lea eax,dword ptr ss:[esp+10]            ; |
10001D37   |.  52          push edx                                 ; |pMaxFilenameLength
10001D38   |.  50          push eax                                 ; |pVolumeSerialNumber
10001D39   |.  8D8C24 BC04>lea ecx,dword ptr ss:[esp+4BC]           ; |
10001D40   |.  68 00010000 push 100                                 ; |MaxVolumeNameSize = 100 (256.)
10001D45   |.  51          push ecx                                 ; |VolumeNameBuffer
10001D46   |.  68 24700C10 push ZB_DLL.100C7024                     ; |RootPathName = "C:\"
10001D4B   |.  C74424 28 0>mov dword ptr ss:[esp+28],0              ; |
10001D53   |.  FF15 24A109>call dword ptr ds:[<&KERNEL32.GetVolumeI>; \GetVolumeInformationA
10001D59   |.  8B8424 AC05>mov eax,dword ptr ss:[esp+5AC]
10001D60   |.  8B4C24 04   mov ecx,dword ptr ss:[esp+4]
10001D64   |.  8A5424 06   mov dl,byte ptr ss:[esp+6]
10001D68   |.  5F          pop edi
10001D69   |.  8848 02     mov byte ptr ds:[eax+2],cl
10001D6C   |.  8A4C24 03   mov cl,byte ptr ss:[esp+3]
10001D70   |.  C600 30     mov byte ptr ds:[eax],30
10001D73   |.  C640 01 30  mov byte ptr ds:[eax+1],30
10001D77   |.  8868 03     mov byte ptr ds:[eax+3],ch
10001D7A   |.  8850 04     mov byte ptr ds:[eax+4],dl
10001D7D   |.  8848 05     mov byte ptr ds:[eax+5],cl
10001D80   |.  81C4 A40500>add esp,5A4
10001D86   \.  C3          retn

分上網和沒上網之分!!!!(估計它分為網路版本和,單機版本)
――――――――――――――――――――――――――――――――――――――――――――――――
整理:機器碼:334Q0K1U4G3K3T52
      序列號:1G300Z4T4U2T3A4K

還有我發現,此軟體,重新驗證機制不太行,它寫一檔案在C:\WINDOWS\SYSTEM32\regyskjinfo16.sys
所以你也可以這樣破解:你可以自己建立C:\WINDOWS\SYSTEM32\regyskjinfo16.sys,並寫上32(是32位)的數字,如12121212121212121212121212121212即可透過!!
不行你換個數字好了!!
爆破點:
0040F2CB    . /75 1E       jnz short ZKJ2000.0040F2EB               ;  爆破點
0040F2CD    . |40          inc eax
0040F2CE    . |83F8 06     cmp eax,6
0040F2D1    .^|7C EE       jl short ZKJ2000.0040F2C1
0040F2D3    . |8B45 C2     mov eax,dword ptr ss:[ebp-3E]
0040F2D6    . |3C FF       cmp al,0FF
0040F2D8    . |75 24       jnz short ZKJ2000.0040F2FE               ;  爆破點



0040F3AD    . /0F84 4E0100>je ZKJ2000.0040F501                      ;  爆破點

注意:爆破後要輸入兩次序列號,就是在regyskjinfo16.sys寫兩次,就是32位的,(不知道有沒有限制)

相關文章