图章制作系统注册算法详细分析
【破解作者】 jsliyangsj
【作者邮箱】 sjcrack@yahoo.com.cn
【使用工具】 peid OllyDbg1.10
【破解平台】 Winxp
【软件名称】 图章制作系统 V1.0
此软件已经由yijun[PYG]老兄,找到注册码了,没写过程,下载顺手分析了下,软件不大,注册码的计算过程

还挺繁,我这里主要是算法部分:软件功能不大,就当CRACKME看吧,
0046ADC3   |.  E8 1>call unpacked.004406E0           ;  得到注册码
0046ADC8   |.  8B45>mov eax,dword ptr ss:[ebp-8]
0046ADCB   |.  8D55>lea edx,dword ptr ss:[ebp-4]
0046ADCE   |.  E8 4>call unpacked.00408718
0046ADD3   |.  8B55>mov edx,dword ptr ss:[ebp-4]
0046ADD6   |.  8BC6 mov eax,esi
0046ADD8   |.  E8 3>call unpacked.00440710
0046ADDD   |.  8D55>lea edx,dword ptr ss:[ebp-C]
0046ADE0   |.  8B83>mov eax,dword ptr ds:[ebx+300]
0046ADE6   |.  E8 F>call unpacked.004406E0           ;  得到位数
0046ADEB   |.  837D>cmp dword ptr ss:[ebp-C],0       ;  是否输入
0046ADEF   |.  0F84>je unpacked.0046AE7D
0046ADF5   |.  B9 B>mov ecx,unpacked.0046AEB8        ;  ASCII "HsjSoft.ini"
0046ADFA   |.  B2 0>mov dl,1
0046ADFC   |.  A1 0>mov eax,dword ptr ds:[465D08]
0046AE01   |.  E8 B>call unpacked.00465DB8
0046AE06   |.  8BF0 mov esi,eax
0046AE08   |.  8D55>lea edx,dword ptr ss:[ebp-10]
0046AE0B   |.  8B83>mov eax,dword ptr ds:[ebx+300]
0046AE11   |.  E8 C>call unpacked.004406E0
0046AE16   |.  8B45>mov eax,dword ptr ss:[ebp-10]    ;  取出注册码
0046AE19   |.  50   push eax                         ;  准备储存
0046AE1A   |.  B9 C>mov ecx,unpacked.0046AECC        ;  ASCII "reg_code"
0046AE1F   |.  8B93>mov edx,dword ptr ds:[ebx+310]
0046AE25   |.  8BC6 mov eax,esi
0046AE27   |.  8B38 mov edi,dword ptr ds:[eax]
0046AE29   |.  FF57>call dword ptr ds:[edi+4]
0046AE2C   |.  8BC6 mov eax,esi
0046AE2E   |.  E8 4>call unpacked.00403578
0046AE33   |.  8B83>mov eax,dword ptr ds:[ebx+310]
0046AE39   |.  E8 B>call unpacked.0046B9F4           ;  关键
0046AE3E   |.  84C0 test al,al
0046AE40   |.  75 1>jnz short unpacked.0046AE5D
0046AE42   |.  6A 0>push 0
0046AE44   |.  68 D>push unpacked.0046AED8
0046AE49   |.  68 E>push unpacked.0046AEE0           ;  出现失败的对话框
0046AE4E   |.  8BC3 mov eax,ebx
0046AE50   |.  E8 A>call unpacked.00446DF8
0046AE55   |.  50   push eax                         ; |hOwner
0046AE56   |.  E8 D>call <jmp.&user32.MessageBoxA>   ; \MessageBoxA
0046AE5B   |.  EB 2>jmp short unpacked.0046AE7D
0046AE5D   |>  6A 0>push 0
0046AE5F   |.  68 F>push unpacked.0046AEF8
0046AE64   |.  68 0>push unpacked.0046AF00           ;  成功的对话框
0046AE69   |.  8BC3 mov eax,ebx
0046AE6B   |.  E8 8>call unpacked.00446DF8
0046AE70   |.  50   push eax                         ; |hOwner
………………………………………………………………………………………………………………………………
进入0046AE39   |.  E8 B>call unpacked.0046B9F4           ;  关键
…………………………………………………………………………………………………………………………
0046B9F4   /$  55   push ebp
0046B9F5   |.  8BEC mov ebp,esp
0046B9F7   |.  33C9 xor ecx,ecx
0046B9F9   |.  51   push ecx
0046B9FA   |.  51   push ecx
0046B9FB   |.  51   push ecx
0046B9FC   |.  51   push ecx
0046B9FD   |.  51   push ecx
0046B9FE   |.  53   push ebx
0046B9FF   |.  56   push esi
0046BA00   |.  8945>mov dword ptr ss:[ebp-4],eax
0046BA03   |.  8B45>mov eax,dword ptr ss:[ebp-4]
0046BA06   |.  E8 F>call unpacked.00404808
0046BA0B   |.  33C0 xor eax,eax
0046BA0D   |.  55   push ebp
0046BA0E   |.  68 9>push unpacked.0046BA91
0046BA13   |.  64:F>push dword ptr fs:[eax]
0046BA16   |.  64:8>mov dword ptr fs:[eax],esp
0046BA19   |.  8D55>lea edx,dword ptr ss:[ebp-C]
0046BA1C   |.  8B45>mov eax,dword ptr ss:[ebp-4]
0046BA1F   |.  E8 D>call unpacked.0046B800
0046BA24   |.  8D55>lea edx,dword ptr ss:[ebp-8]
0046BA27   |.  8B45>mov eax,dword ptr ss:[ebp-C]     ;  得到机器码
0046BA2A   |.  E8 D>call unpacked.0046B908           ;  根据机器码计算注册码的地方
0046BA2F   |.  B9 A>mov ecx,unpacked.0046BAA8        ;  ASCII "HsjSoft.ini"
……………………………………………………………………………………………………………………
进入0046BA2A   |.  E8 D>call unpacked.0046B908
………………………………………………………………………………………………………………………………
0046B92B   |.  33C0 xor eax,eax
0046B92D   |.  55   push ebp
0046B92E   |.  68 C>push unpacked.0046B9CE
0046B933   |.  64:F>push dword ptr fs:[eax]
0046B936   |.  64:8>mov dword ptr fs:[eax],esp
0046B939   |.  8BC6 mov eax,esi
0046B93B   |.  E8 2>call unpacked.00404368
0046B940   |.  8D45>lea eax,dword ptr ss:[ebp-20]
0046B943   |.  8B4D>mov ecx,dword ptr ss:[ebp-4]
0046B946   |.  BA E>mov edx,unpacked.0046B9E4
0046B94B   |.  E8 1>call unpacked.0040466C           ;  得到位数
0046B950   |.  8B45>mov eax,dword ptr ss:[ebp-20]
0046B953   |.  8D55>lea edx,dword ptr ss:[ebp-1C]
0046B956   |.  E8 E>call unpacked.00467648           ;  计算处理的关键地方 进入
0046B95B   |.  8D45>lea eax,dword ptr ss:[ebp-1C]    ;  得到计算好的4组数据在内存中的地址
0046B95E   |.  8D55>lea edx,dword ptr ss:[ebp-8]     ;  准备存储的地址
0046B961   |.  E8 5>call unpacked.004676BC           ;  这里将得到的结果转化为字符!
0046B966   |.  8D45>lea eax,dword ptr ss:[ebp-C]
0046B969   |.  E8 F>call unpacked.00404368
0046B96E   |.  8B45>mov eax,dword ptr ss:[ebp-8]     ;  这里看到了注册码32位字符串
0046B971   |.  E8 A>call unpacked.00404620           ;  得到位数
0046B976   |.  8BD8 mov ebx,eax
0046B978   |.  83FB>cmp ebx,1
0046B97B   |.  7C 1>jl short unpacked.0046B99C
0046B97D   |>  8D45>/lea eax,dword ptr ss:[ebp-24]
0046B980   |.  8B55>|mov edx,dword ptr ss:[ebp-8]
0046B983   |.  8A54>|mov dl,byte ptr ds:[edx+ebx-1]  ;  依次从最后得到每一位的ASCII
0046B987   |.  E8 B>|call unpacked.00404548
0046B98C   |.  8B55>|mov edx,dword ptr ss:[ebp-24]
0046B98F   |.  8D45>|lea eax,dword ptr ss:[ebp-C]
0046B992   |.  E8 9>|call unpacked.00404628          ;  一个一个收集存储的地方EBP-C
0046B997   |.  4B   |dec ebx
0046B998   |.  85DB |test ebx,ebx
0046B99A   |.^ 75 E>\jnz short unpacked.0046B97D     ;  上面的循环就是将把得到的32位字符串反过来

存储
0046B99C   |>  8BC6 mov eax,esi
0046B99E   |.  8B55>mov edx,dword ptr ss:[ebp-C]
0046B9A1   |.  E8 1>call unpacked.004043BC
0046B9A6   |.  33C0 xor eax,eax
0046B9A8   |.  5A   pop edx
0046B9A9   |.  59   pop ecx
0046B9AA   |.  59   pop ecx
0046B9AB   |.  64:8>mov dword ptr fs:[eax],edx
0046B9AE   |.  68 D>push unpacked.0046B9D5
0046B9B3   |>  8D45>lea eax,dword ptr ss:[ebp-24]
0046B9B6   |.  BA 0>mov edx,2
0046B9BB   |.  E8 C>call unpacked.0040438C
0046B9C0   |.  8D45>lea eax,dword ptr ss:[ebp-C]
0046B9C3   |.  BA 0>mov edx,3
0046B9C8   |.  E8 B>call unpacked.0040438C
0046B9CD   \.  C3   retn
………………………………………………………………………………………………………………………………
进入0046B956   |.  E8 E>call unpacked.00467648           ;  计算处理的关键地方 进入
………………………………………………………………………………………………………………………………
00467685   |.  8D45>lea eax,dword ptr ss:[ebp-5C]
00467688   |.  59   pop ecx
00467689   |.  E8 C>call unpacked.00467554
0046768E   |.  8BD3 mov edx,ebx
00467690   |.  8D45>lea eax,dword ptr ss:[ebp-5C]
00467693   |.  E8 3>call unpacked.004675D4           ;  处理地方
00467698   |.  33C0 xor eax,eax
0046769A   |.  5A   pop edx
……………………………………………………………………………………………………………………
进入00467693   |.  E8 3>call unpacked.004675D4           ;  处理地方
…………………………………………………………………………………………………………………………
00467605   |> \BA 7>mov edx,78
0046760A   |.  2BD0 sub edx,eax
0046760C   |.  8BC2 mov eax,edx
0046760E   |>  BA A>mov edx,unpacked.0047FFA4
00467613   |.  8BCB mov ecx,ebx
00467615   |.  91   xchg eax,ecx
00467616   |.  E8 3>call unpacked.00467554
0046761B   |.  8BD4 mov edx,esp
0046761D   |.  8BC3 mov eax,ebx
0046761F   |.  B9 0>mov ecx,8
00467624   |.  E8 2>call unpacked.00467554           ;  处理 进入
00467629   |.  8BD6 mov edx,esi
0046762B   |.  8BC3 mov eax,ebx
0046762D   |.  B9 0>mov ecx,4
00467632   |.  E8 7>call unpacked.00466DB4           ;  将得到的4组数据存放在内存中
00467637   |.  8BC3 mov eax,ebx
00467639   |.  BA 5>mov edx,58
0046763E   |.  E8 C>call unpacked.00407310
00467643   |.  59   pop ecx
00467644   |.  5A   pop edx

…………………………………………………………………………………………………………………………
00467624   |.  E8 2>call unpacked.00467554           ;  处理 进入
……………………………………………………………………………………………………………………
0046758E   |.  8BCB mov ecx,ebx
00467590   |.  8BD5 mov edx,ebp
00467592   |.  E8 7>call unpacked.00407308
00467597   |.  8BD6 mov edx,esi
00467599   |.  8D46>lea eax,dword ptr ds:[esi+18]
0046759C   |.  E8 4>call unpacked.00466DF0           ;  关键进入
004675A1   |.  EB 0>jmp short unpacked.004675B1
004675A3   |>  8BD6 /mov edx,esi
004675A5   |.  8D44>|lea eax,dword ptr ss:[ebp+ebx]
004675A9   |.  E8 4>|call unpacked.00466DF0
004675AE   |.  83C3>|add ebx,40
004675B1   |>  8D43> lea eax,dword ptr ds:[ebx+3F]
004675B4   |.  3BF8 |cmp edi,eax
004675B6   |.^ 77 E>\ja short unpacked.004675A3
004675B8   |.  33C0 xor eax,eax
004675BA   |.  EB 0>jmp short unpacked.004675BE

……………………………………………………………………………………………………………………………
进入0046759C   |.  E8 4>call unpacked.00466DF0           ;  关键进入  这里是最后关键的CALL了
………………………………………………………………………………………………………………………………
00466E02   |.  8D74>lea esi,dword ptr ss:[esp+C]
00466E06   |.  8D7C>lea edi,dword ptr ss:[esp+10]
00466E0A   |.  8D6C>lea ebp,dword ptr ss:[esp+14]
00466E0E   |.  8D54>lea edx,dword ptr ss:[esp+18]
00466E12   |.  B9 4>mov ecx,40
00466E17   |.  8B04>mov eax,dword ptr ss:[esp]
00466E1A   |.  E8 5>call unpacked.00466D7C           ;  得到机器码表的地方
00466E1F   |.  8B44>mov eax,dword ptr ss:[esp+4]
00466E23   |.  8B00 mov eax,dword ptr ds:[eax]       ;  得到初始化的的 67452301
00466E25   |.  8903 mov dword ptr ds:[ebx],eax       ;  存储在堆栈第一组
00466E27   |.  8B44>mov eax,dword ptr ss:[esp+4]
00466E2B   |.  8B40>mov eax,dword ptr ds:[eax+4]     ;  固定 EFCDAB89
00466E2E   |.  8906 mov dword ptr ds:[esi],eax       ;  存储在堆栈第2组
00466E30   |.  8B44>mov eax,dword ptr ss:[esp+4]
00466E34   |.  8B40>mov eax,dword ptr ds:[eax+8]     ;  固定 98BADCFE
00466E37   |.  8907 mov dword ptr ds:[edi],eax       ;  存储在堆栈第3组
00466E39   |.  8B44>mov eax,dword ptr ss:[esp+4]
00466E3D   |.  8B40>mov eax,dword ptr ds:[eax+C]     ;  固定 10325476
00466E40   |.  8945>mov dword ptr ss:[ebp],eax       ;  存储在堆栈最后一组
00466E43   |.  8B45>mov eax,dword ptr ss:[ebp]       ;  得到最后一个固定值
00466E46   |.  50   push eax                         ; /压入固定值表第4组数据
00466E47   |.  8B44>mov eax,dword ptr ss:[esp+1C]    ; |
00466E4B   |.  50   push eax                         ; |压入机器码表的第1组数据
00466E4C   |.  6A 0>push 7                           ; |固定值07
00466E4E   |.  68 7>push D76AA478                    ; |固定值  D76AA478
00466E53   |.  8BC3 mov eax,ebx                      ; |1准备修改的地址
00466E55   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |固定值表第3组数据
00466E57   |.  8B16 mov edx,dword ptr ds:[esi]       ; |固定值表第2组数据
00466E59   |.  E8 4>call unpacked.00466CAC           ; \unpacked.00466CAC
00466E5E   |.  8B07 mov eax,dword ptr ds:[edi]       ;  得到第3组数据
00466E60   |.  50   push eax                         ; /固定值表循环(以准备修改开始计算)的第4组

数据
00466E61   |.  8B44>mov eax,dword ptr ss:[esp+20]    ; |
00466E65   |.  50   push eax                         ; |压入机器码表的第2组数据
00466E66   |.  6A 0>push 0C                          ; |固定值0C
00466E68   |.  68 5>push E8C7B756                    ; |固定值E8C7B756
00466E6D   |.  8BC5 mov eax,ebp                      ; |2准备修改的固定值数据地址
00466E6F   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |固定值表循环(以准备修改开始计算)的第3组

数据
00466E71   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |固定值表循环(以准备修改开始计算)的第2组

数据
00466E73   |.  E8 3>call unpacked.00466CAC           ; \unpacked.00466CAC
00466E78   |.  8B06 mov eax,dword ptr ds:[esi]       ;  固定值表循环(以准备修改开始计算)的第4组

数据
00466E7A   |.  50   push eax                         ; /Arg4
00466E7B   |.  8B44>mov eax,dword ptr ss:[esp+24]    ; |
00466E7F   |.  50   push eax                         ; |Arg3
00466E80   |.  6A 1>push 11                          ; |固定值11
00466E82   |.  68 D>push 242070DB                    ; |固定值242070DB
00466E87   |.  8BC7 mov eax,edi                      ; |3准备修改的固定值数据地址
00466E89   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
00466E8B   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00466E8E   |.  E8 1>call unpacked.00466CAC           ; \unpacked.00466CAC
00466E93   |.  8B03 mov eax,dword ptr ds:[ebx]
00466E95   |.  50   push eax                         ; /Arg4
00466E96   |.  8B44>mov eax,dword ptr ss:[esp+28]    ; |
00466E9A   |.  50   push eax                         ; |Arg3
00466E9B   |.  6A 1>push 16                          ; |Arg2 = 00000016
00466E9D   |.  68 E>push C1BDCEEE                    ; |Arg1 = C1BDCEEE
00466EA2   |.  8BC6 mov eax,esi                      ; |4准备修改的固定值数据地址
00466EA4   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00466EA7   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00466EA9   |.  E8 F>call unpacked.00466CAC           ; \unpacked.00466CAC
00466EAE   |.  8B45>mov eax,dword ptr ss:[ebp]
00466EB1   |.  50   push eax                         ; /Arg4
00466EB2   |.  8B44>mov eax,dword ptr ss:[esp+2C]    ; |
00466EB6   |.  50   push eax                         ; |Arg3
00466EB7   |.  6A 0>push 7                           ; |Arg2 = 00000007
00466EB9   |.  68 A>push F57C0FAF                    ; |Arg1 = F57C0FAF
00466EBE   |.  8BC3 mov eax,ebx                      ; |5准备修改的固定值数据地址
00466EC0   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
00466EC2   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
00466EC4   |.  E8 E>call unpacked.00466CAC           ; \unpacked.00466CAC
00466EC9   |.  8B07 mov eax,dword ptr ds:[edi]
00466ECB   |.  50   push eax                         ; /Arg4
00466ECC   |.  8B44>mov eax,dword ptr ss:[esp+30]    ; |
00466ED0   |.  50   push eax                         ; |Arg3
00466ED1   |.  6A 0>push 0C                          ; |Arg2 = 0000000C
00466ED3   |.  68 2>push 4787C62A                    ; |Arg1 = 4787C62A
00466ED8   |.  8BC5 mov eax,ebp                      ; |6准备修改的固定值数据地址
00466EDA   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
00466EDC   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
00466EDE   |.  E8 C>call unpacked.00466CAC           ; \unpacked.00466CAC
00466EE3   |.  8B06 mov eax,dword ptr ds:[esi]
00466EE5   |.  50   push eax                         ; /Arg4
00466EE6   |.  8B44>mov eax,dword ptr ss:[esp+34]    ; |
00466EEA   |.  50   push eax                         ; |Arg3
00466EEB   |.  6A 1>push 11                          ; |Arg2 = 00000011
00466EED   |.  68 1>push A8304613                    ; |Arg1 = A8304613
00466EF2   |.  8BC7 mov eax,edi                      ; |7准备修改的固定值数据地址
00466EF4   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
00466EF6   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00466EF9   |.  E8 A>call unpacked.00466CAC           ; \unpacked.00466CAC
00466EFE   |.  8B03 mov eax,dword ptr ds:[ebx]
00466F00   |.  50   push eax                         ; /Arg4
00466F01   |.  8B44>mov eax,dword ptr ss:[esp+38]    ; |
00466F05   |.  50   push eax                         ; |Arg3
00466F06   |.  6A 1>push 16                          ; |Arg2 = 00000016
00466F08   |.  68 0>push FD469501                    ; |Arg1 = FD469501
00466F0D   |.  8BC6 mov eax,esi                      ; |8准备修改的固定值数据地址
00466F0F   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00466F12   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00466F14   |.  E8 9>call unpacked.00466CAC           ; \unpacked.00466CAC
00466F19   |.  8B45>mov eax,dword ptr ss:[ebp]
00466F1C   |.  50   push eax                         ; /Arg4
00466F1D   |.  8B44>mov eax,dword ptr ss:[esp+3C]    ; |
00466F21   |.  50   push eax                         ; |Arg3
00466F22   |.  6A 0>push 7                           ; |Arg2 = 00000007
00466F24   |.  68 D>push 698098D8                    ; |Arg1 = 698098D8
00466F29   |.  8BC3 mov eax,ebx                      ; |9准备修改的固定值数据地址
00466F2B   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
00466F2D   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
00466F2F   |.  E8 7>call unpacked.00466CAC           ; \unpacked.00466CAC
00466F34   |.  8B07 mov eax,dword ptr ds:[edi]
00466F36   |.  50   push eax                         ; /Arg4
00466F37   |.  8B44>mov eax,dword ptr ss:[esp+40]    ; |
00466F3B   |.  50   push eax                         ; |Arg3
00466F3C   |.  6A 0>push 0C                          ; |Arg2 = 0000000C
00466F3E   |.  68 A>push 8B44F7AF                    ; |Arg1 = 8B44F7AF
00466F43   |.  8BC5 mov eax,ebp                      ; |10准备修改的固定值数据地址
00466F45   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
00466F47   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
00466F49   |.  E8 5>call unpacked.00466CAC           ; \unpacked.00466CAC
00466F4E   |.  8B06 mov eax,dword ptr ds:[esi]
00466F50   |.  50   push eax                         ; /Arg4
00466F51   |.  8B44>mov eax,dword ptr ss:[esp+44]    ; |
00466F55   |.  50   push eax                         ; |Arg3
00466F56   |.  6A 1>push 11                          ; |Arg2 = 00000011
00466F58   |.  68 B>push FFFF5BB1                    ; |Arg1 = FFFF5BB1
00466F5D   |.  8BC7 mov eax,edi                      ; |11准备修改的固定值数据地址
00466F5F   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
00466F61   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00466F64   |.  E8 4>call unpacked.00466CAC           ; \unpacked.00466CAC
00466F69   |.  8B03 mov eax,dword ptr ds:[ebx]
00466F6B   |.  50   push eax                         ; /Arg4
00466F6C   |.  8B44>mov eax,dword ptr ss:[esp+48]    ; |
00466F70   |.  50   push eax                         ; |Arg3
00466F71   |.  6A 1>push 16                          ; |Arg2 = 00000016
00466F73   |.  68 B>push 895CD7BE                    ; |Arg1 = 895CD7BE
00466F78   |.  8BC6 mov eax,esi                      ; |12准备修改的固定值数据地址
00466F7A   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00466F7D   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00466F7F   |.  E8 2>call unpacked.00466CAC           ; \unpacked.00466CAC
00466F84   |.  8B45>mov eax,dword ptr ss:[ebp]
00466F87   |.  50   push eax                         ; /Arg4
00466F88   |.  8B44>mov eax,dword ptr ss:[esp+4C]    ; |固定为00000000
00466F8C   |.  50   push eax                         ; |Arg3
00466F8D   |.  6A 0>push 7                           ; |Arg2 = 00000007
00466F8F   |.  68 2>push 6B901122                    ; |Arg1 = 6B901122
00466F94   |.  8BC3 mov eax,ebx                      ; |13准备修改的固定值数据地址
00466F96   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
00466F98   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
00466F9A   |.  E8 0>call unpacked.00466CAC           ; \unpacked.00466CAC
00466F9F   |.  8B07 mov eax,dword ptr ds:[edi]
00466FA1   |.  50   push eax                         ; /Arg4
00466FA2   |.  8B44>mov eax,dword ptr ss:[esp+50]    ; |固定为00000000
00466FA6   |.  50   push eax                         ; |Arg3
00466FA7   |.  6A 0>push 0C                          ; |Arg2 = 0000000C
00466FA9   |.  68 9>push FD987193                    ; |Arg1 = FD987193
00466FAE   |.  8BC5 mov eax,ebp                      ; |14准备修改的固定值数据地址
00466FB0   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
00466FB2   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
00466FB4   |.  E8 F>call unpacked.00466CAC           ; \unpacked.00466CAC
00466FB9   |.  8B06 mov eax,dword ptr ds:[esi]
00466FBB   |.  50   push eax                         ; /Arg4
00466FBC   |.  8B44>mov eax,dword ptr ss:[esp+54]    ; |固定为00000178
00466FC0   |.  50   push eax                         ; |Arg3
00466FC1   |.  6A 1>push 11                          ; |Arg2 = 00000011
00466FC3   |.  68 8>push A679438E                    ; |Arg1 = A679438E
00466FC8   |.  8BC7 mov eax,edi                      ; |15准备修改的固定值数据地址
00466FCA   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
00466FCC   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00466FCF   |.  E8 D>call unpacked.00466CAC           ; \unpacked.00466CAC
00466FD4   |.  8B03 mov eax,dword ptr ds:[ebx]
00466FD6   |.  50   push eax                         ; /Arg4
00466FD7   |.  8B44>mov eax,dword ptr ss:[esp+58]    ; |固定为00000000
00466FDB   |.  50   push eax                         ; |Arg3
00466FDC   |.  6A 1>push 16                          ; |Arg2 = 00000016
00466FDE   |.  68 2>push 49B40821                    ; |Arg1 = 49B40821
00466FE3   |.  8BC6 mov eax,esi                      ; |16准备修改的固定值数据地址
00466FE5   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00466FE8   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00466FEA   |.  E8 B>call unpacked.00466CAC           ; \unpacked.00466CAC
00466FEF   |.  8B45>mov eax,dword ptr ss:[ebp]
00466FF2   |.  50   push eax                         ; /Arg4
00466FF3   |.  8B44>mov eax,dword ptr ss:[esp+20]    ; |机器码表中的标号为1的组数据
00466FF7   |.  50   push eax                         ; |Arg3
00466FF8   |.  6A 0>push 5                           ; |Arg2 = 00000005
00466FFA   |.  68 6>push F61E2562                    ; |Arg1 = F61E2562
00466FFF   |.  8BC3 mov eax,ebx                      ; |17准备修改的固定值数据地址
00467001   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
00467003   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
00467005   |.  E8 D>call unpacked.00466CE0           ; \unpacked.00466CE0
0046700A   |.  8B07 mov eax,dword ptr ds:[edi]
0046700C   |.  50   push eax                         ; /Arg4
0046700D   |.  8B44>mov eax,dword ptr ss:[esp+34]    ; |机器码表中的标号为6的组数据
00467011   |.  50   push eax                         ; |Arg3
00467012   |.  6A 0>push 9                           ; |Arg2 = 00000009
00467014   |.  68 4>push C040B340                    ; |Arg1 = C040B340
00467019   |.  8BC5 mov eax,ebp                      ; |18准备修改的固定值数据地址
0046701B   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
0046701D   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
0046701F   |.  E8 B>call unpacked.00466CE0           ; \unpacked.00466CE0
00467024   |.  8B06 mov eax,dword ptr ds:[esi]
00467026   |.  50   push eax                         ; /Arg4
00467027   |.  8B44>mov eax,dword ptr ss:[esp+48]    ; |机器码表中的标号为11的组数据
0046702B   |.  50   push eax                         ; |Arg3
0046702C   |.  6A 0>push 0E                          ; |Arg2 = 0000000E
0046702E   |.  68 5>push 265E5A51                    ; |Arg1 = 265E5A51
00467033   |.  8BC7 mov eax,edi                      ; |19准备修改的固定值数据地址
00467035   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
00467037   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
0046703A   |.  E8 A>call unpacked.00466CE0           ; \unpacked.00466CE0
0046703F   |.  8B03 mov eax,dword ptr ds:[ebx]
00467041   |.  50   push eax                         ; /Arg4
00467042   |.  8B44>mov eax,dword ptr ss:[esp+1C]    ; |机器码表中的标号为0的组数据
00467046   |.  50   push eax                         ; |Arg3
00467047   |.  6A 1>push 14                          ; |Arg2 = 00000014
00467049   |.  68 A>push E9B6C7AA                    ; |Arg1 = E9B6C7AA
0046704E   |.  8BC6 mov eax,esi                      ; |20准备修改的固定值数据地址
00467050   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00467053   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00467055   |.  E8 8>call unpacked.00466CE0           ; \unpacked.00466CE0
0046705A   |.  8B45>mov eax,dword ptr ss:[ebp]
0046705D   |.  50   push eax                         ; /Arg4
0046705E   |.  8B44>mov eax,dword ptr ss:[esp+30]    ; |机器码表中的标号为5的组数据
00467062   |.  50   push eax                         ; |Arg3
00467063   |.  6A 0>push 5                           ; |Arg2 = 00000005
00467065   |.  68 5>push D62F105D                    ; |Arg1 = D62F105D
0046706A   |.  8BC3 mov eax,ebx                      ; |21准备修改的固定值数据地址
0046706C   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
0046706E   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
00467070   |.  E8 6>call unpacked.00466CE0           ; \unpacked.00466CE0
00467075   |.  8B07 mov eax,dword ptr ds:[edi]
00467077   |.  50   push eax                         ; /Arg4
00467078   |.  8B44>mov eax,dword ptr ss:[esp+44]    ; |机器码表中的标号为10的组数据
0046707C   |.  50   push eax                         ; |Arg3
0046707D   |.  6A 0>push 9                           ; |Arg2 = 00000009
0046707F   |.  68 5>push 2441453                     ; |Arg1 = 02441453
00467084   |.  8BC5 mov eax,ebp                      ; |22准备修改的固定值数据地址
00467086   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
00467088   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
0046708A   |.  E8 5>call unpacked.00466CE0           ; \unpacked.00466CE0
0046708F   |.  8B06 mov eax,dword ptr ds:[esi]
00467091   |.  50   push eax                         ; /Arg4
00467092   |.  8B44>mov eax,dword ptr ss:[esp+58]    ; |机器码表中的标号为15的组数据
00467096   |.  50   push eax                         ; |Arg3
00467097   |.  6A 0>push 0E                          ; |Arg2 = 0000000E
00467099   |.  68 8>push D8A1E681                    ; |Arg1 = D8A1E681
0046709E   |.  8BC7 mov eax,edi                      ; |23准备修改的固定值数据地址
004670A0   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
004670A2   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
004670A5   |.  E8 3>call unpacked.00466CE0           ; \unpacked.00466CE0
004670AA   |.  8B03 mov eax,dword ptr ds:[ebx]
004670AC   |.  50   push eax                         ; /Arg4
004670AD   |.  8B44>mov eax,dword ptr ss:[esp+2C]    ; |机器码表中的标号为4的组数据
004670B1   |.  50   push eax                         ; |Arg3
004670B2   |.  6A 1>push 14                          ; |Arg2 = 00000014
004670B4   |.  68 C>push E7D3FBC8                    ; |Arg1 = E7D3FBC8
004670B9   |.  8BC6 mov eax,esi                      ; |24准备修改的固定值数据地址
004670BB   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
004670BE   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
004670C0   |.  E8 1>call unpacked.00466CE0           ; \unpacked.00466CE0
004670C5   |.  8B45>mov eax,dword ptr ss:[ebp]
004670C8   |.  50   push eax                         ; /Arg4
004670C9   |.  8B44>mov eax,dword ptr ss:[esp+40]    ; |机器码表中的标号为9的组数据
004670CD   |.  50   push eax                         ; |Arg3
004670CE   |.  6A 0>push 5                           ; |Arg2 = 00000005
004670D0   |.  68 E>push 21E1CDE6                    ; |Arg1 = 21E1CDE6
004670D5   |.  8BC3 mov eax,ebx                      ; |25准备修改的固定值数据地址
004670D7   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
004670D9   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
004670DB   |.  E8 0>call unpacked.00466CE0           ; \unpacked.00466CE0
004670E0   |.  8B07 mov eax,dword ptr ds:[edi]
004670E2   |.  50   push eax                         ; /Arg4
004670E3   |.  8B44>mov eax,dword ptr ss:[esp+54]    ; |机器码表中的标号为14的组数据
004670E7   |.  50   push eax                         ; |Arg3
004670E8   |.  6A 0>push 9                           ; |Arg2 = 00000009
004670EA   |.  68 D>push C33707D6                    ; |Arg1 = C33707D6
004670EF   |.  8BC5 mov eax,ebp                      ; |26准备修改的固定值数据地址
004670F1   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
004670F3   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
004670F5   |.  E8 E>call unpacked.00466CE0           ; \unpacked.00466CE0
004670FA   |.  8B06 mov eax,dword ptr ds:[esi]
004670FC   |.  50   push eax                         ; /Arg4
004670FD   |.  8B44>mov eax,dword ptr ss:[esp+28]    ; |机器码表中的标号为3的组数据
00467101   |.  50   push eax                         ; |Arg3
00467102   |.  6A 0>push 0E                          ; |Arg2 = 0000000E
00467104   |.  68 8>push F4D50D87                    ; |Arg1 = F4D50D87
00467109   |.  8BC7 mov eax,edi                      ; |27准备修改的固定值数据地址
0046710B   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
0046710D   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00467110   |.  E8 C>call unpacked.00466CE0           ; \unpacked.00466CE0
00467115   |.  8B03 mov eax,dword ptr ds:[ebx]
00467117   |.  50   push eax                         ; /Arg4
00467118   |.  8B44>mov eax,dword ptr ss:[esp+3C]    ; |机器码表中的标号为8的组数据
0046711C   |.  50   push eax                         ; |Arg3
0046711D   |.  6A 1>push 14                          ; |Arg2 = 00000014
0046711F   |.  68 E>push 455A14ED                    ; |Arg1 = 455A14ED
00467124   |.  8BC6 mov eax,esi                      ; |28准备修改的固定值数据地址
00467126   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00467129   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
0046712B   |.  E8 B>call unpacked.00466CE0           ; \unpacked.00466CE0
00467130   |.  8B45>mov eax,dword ptr ss:[ebp]
00467133   |.  50   push eax                         ; /Arg4
00467134   |.  8B44>mov eax,dword ptr ss:[esp+50]    ; |机器码表中的标号为13的组数据
00467138   |.  50   push eax                         ; |Arg3
00467139   |.  6A 0>push 5                           ; |Arg2 = 00000005
0046713B   |.  68 0>push A9E3E905                    ; |Arg1 = A9E3E905
00467140   |.  8BC3 mov eax,ebx                      ; |29准备修改的固定值数据地址
00467142   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
00467144   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
00467146   |.  E8 9>call unpacked.00466CE0           ; \unpacked.00466CE0
0046714B   |.  8B07 mov eax,dword ptr ds:[edi]
0046714D   |.  50   push eax                         ; /Arg4
0046714E   |.  8B44>mov eax,dword ptr ss:[esp+24]    ; |机器码表中的标号为2的组数据
00467152   |.  50   push eax                         ; |Arg3
00467153   |.  6A 0>push 9                           ; |Arg2 = 00000009
00467155   |.  68 F>push FCEFA3F8                    ; |Arg1 = FCEFA3F8
0046715A   |.  8BC5 mov eax,ebp                      ; |30准备修改的固定值数据地址
0046715C   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
0046715E   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
00467160   |.  E8 7>call unpacked.00466CE0           ; \unpacked.00466CE0
00467165   |.  8B06 mov eax,dword ptr ds:[esi]
00467167   |.  50   push eax                         ; /Arg4
00467168   |.  8B44>mov eax,dword ptr ss:[esp+38]    ; |机器码表中的标号为7的组数据
0046716C   |.  50   push eax                         ; |Arg3
0046716D   |.  6A 0>push 0E                          ; |Arg2 = 0000000E
0046716F   |.  68 D>push 676F02D9                    ; |Arg1 = 676F02D9
00467174   |.  8BC7 mov eax,edi                      ; |31准备修改的固定值数据地址
00467176   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
00467178   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
0046717B   |.  E8 6>call unpacked.00466CE0           ; \unpacked.00466CE0
00467180   |.  8B03 mov eax,dword ptr ds:[ebx]
00467182   |.  50   push eax                         ; /Arg4
00467183   |.  8B44>mov eax,dword ptr ss:[esp+4C]    ; |机器码表中的标号为12的组数据
00467187   |.  50   push eax                         ; |Arg3
00467188   |.  6A 1>push 14                          ; |Arg2 = 00000014
0046718A   |.  68 8>push 8D2A4C8A                    ; |Arg1 = 8D2A4C8A
0046718F   |.  8BC6 mov eax,esi                      ; |32准备修改的固定值数据地址
00467191   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00467194   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00467196   |.  E8 4>call unpacked.00466CE0           ; \unpacked.00466CE0
0046719B   |.  8B45>mov eax,dword ptr ss:[ebp]
0046719E   |.  50   push eax                         ; /Arg4
0046719F   |.  8B44>mov eax,dword ptr ss:[esp+30]    ; |机器码表中的标号为5的组数据
004671A3   |.  50   push eax                         ; |Arg3
004671A4   |.  6A 0>push 4                           ; |Arg2 = 00000004
004671A6   |.  68 4>push FFFA3942                    ; |Arg1 = FFFA3942
004671AB   |.  8BC3 mov eax,ebx                      ; |33准备修改的固定值数据地址
004671AD   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
004671AF   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
004671B1   |.  E8 5>call unpacked.00466D14           ; \unpacked.00466D14
004671B6   |.  8B07 mov eax,dword ptr ds:[edi]
004671B8   |.  50   push eax                         ; /Arg4
004671B9   |.  8B44>mov eax,dword ptr ss:[esp+3C]    ; |机器码表中的标号为8的组数据
004671BD   |.  50   push eax                         ; |Arg3
004671BE   |.  6A 0>push 0B                          ; |Arg2 = 0000000B
004671C0   |.  68 8>push 8771F681                    ; |Arg1 = 8771F681
004671C5   |.  8BC5 mov eax,ebp                      ; |34准备修改的固定值数据地址
004671C7   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
004671C9   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
004671CB   |.  E8 4>call unpacked.00466D14           ; \unpacked.00466D14
004671D0   |.  8B06 mov eax,dword ptr ds:[esi]
004671D2   |.  50   push eax                         ; /Arg4
004671D3   |.  8B44>mov eax,dword ptr ss:[esp+48]    ; |机器码表中的标号为11的组数据
004671D7   |.  50   push eax                         ; |Arg3
004671D8   |.  6A 1>push 10                          ; |Arg2 = 00000010
004671DA   |.  68 2>push 6D9D6122                    ; |Arg1 = 6D9D6122
004671DF   |.  8BC7 mov eax,edi                      ; |35准备修改的固定值数据地址
004671E1   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
004671E3   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
004671E6   |.  E8 2>call unpacked.00466D14           ; \unpacked.00466D14
004671EB   |.  8B03 mov eax,dword ptr ds:[ebx]
004671ED   |.  50   push eax                         ; /Arg4
004671EE   |.  8B44>mov eax,dword ptr ss:[esp+54]    ; |机器码表中的标号为14的组数据
004671F2   |.  50   push eax                         ; |Arg3
004671F3   |.  6A 1>push 17                          ; |Arg2 = 00000017
004671F5   |.  68 0>push FDE5380C                    ; |Arg1 = FDE5380C
004671FA   |.  8BC6 mov eax,esi                      ; |36准备修改的固定值数据地址
004671FC   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
004671FF   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00467201   |.  E8 0>call unpacked.00466D14           ; \unpacked.00466D14
00467206   |.  8B45>mov eax,dword ptr ss:[ebp]
00467209   |.  50   push eax                         ; /Arg4
0046720A   |.  8B44>mov eax,dword ptr ss:[esp+20]    ; |机器码表中的标号为1的组数据
0046720E   |.  50   push eax                         ; |Arg3
0046720F   |.  6A 0>push 4                           ; |Arg2 = 00000004
00467211   |.  68 4>push A4BEEA44                    ; |Arg1 = A4BEEA44
00467216   |.  8BC3 mov eax,ebx                      ; |37准备修改的固定值数据地址
00467218   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
0046721A   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
0046721C   |.  E8 F>call unpacked.00466D14           ; \unpacked.00466D14
00467221   |.  8B07 mov eax,dword ptr ds:[edi]
00467223   |.  50   push eax                         ; /Arg4
00467224   |.  8B44>mov eax,dword ptr ss:[esp+2C]    ; |机器码表中的标号为4的组数据
00467228   |.  50   push eax                         ; |Arg3
00467229   |.  6A 0>push 0B                          ; |Arg2 = 0000000B
0046722B   |.  68 A>push 4BDECFA9                    ; |Arg1 = 4BDECFA9
00467230   |.  8BC5 mov eax,ebp                      ; |38准备修改的固定值数据地址
00467232   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
00467234   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
00467236   |.  E8 D>call unpacked.00466D14           ; \unpacked.00466D14
0046723B   |.  8B06 mov eax,dword ptr ds:[esi]
0046723D   |.  50   push eax                         ; /Arg4
0046723E   |.  8B44>mov eax,dword ptr ss:[esp+38]    ; |机器码表中的标号为7的组数据
00467242   |.  50   push eax                         ; |Arg3
00467243   |.  6A 1>push 10                          ; |Arg2 = 00000010
00467245   |.  68 6>push F6BB4B60                    ; |Arg1 = F6BB4B60
0046724A   |.  8BC7 mov eax,edi                      ; |39准备修改的固定值数据地址
0046724C   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
0046724E   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00467251   |.  E8 B>call unpacked.00466D14           ; \unpacked.00466D14
00467256   |.  8B03 mov eax,dword ptr ds:[ebx]
00467258   |.  50   push eax                         ; /Arg4
00467259   |.  8B44>mov eax,dword ptr ss:[esp+44]    ; |机器码表中的标号为10的组数据
0046725D   |.  50   push eax                         ; |Arg3
0046725E   |.  6A 1>push 17                          ; |Arg2 = 00000017
00467260   |.  68 7>push BEBFBC70                    ; |Arg1 = BEBFBC70
00467265   |.  8BC6 mov eax,esi                      ; |40准备修改的固定值数据地址
00467267   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
0046726A   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
0046726C   |.  E8 A>call unpacked.00466D14           ; \unpacked.00466D14
00467271   |.  8B45>mov eax,dword ptr ss:[ebp]
00467274   |.  50   push eax                         ; /Arg4
00467275   |.  8B44>mov eax,dword ptr ss:[esp+50]    ; |机器码表中的标号为13的组数据
00467279   |.  50   push eax                         ; |Arg3
0046727A   |.  6A 0>push 4                           ; |Arg2 = 00000004
0046727C   |.  68 C>push 289B7EC6                    ; |Arg1 = 289B7EC6
00467281   |.  8BC3 mov eax,ebx                      ; |41准备修改的固定值数据地址
00467283   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
00467285   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
00467287   |.  E8 8>call unpacked.00466D14           ; \unpacked.00466D14
0046728C   |.  8B07 mov eax,dword ptr ds:[edi]
0046728E   |.  50   push eax                         ; /Arg4
0046728F   |.  8B44>mov eax,dword ptr ss:[esp+1C]    ; |机器码表中的标号为0的组数据
00467293   |.  50   push eax                         ; |Arg3
00467294   |.  6A 0>push 0B                          ; |Arg2 = 0000000B
00467296   |.  68 F>push EAA127FA                    ; |Arg1 = EAA127FA
0046729B   |.  8BC5 mov eax,ebp                      ; |42准备修改的固定值数据地址
0046729D   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
0046729F   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
004672A1   |.  E8 6>call unpacked.00466D14           ; \unpacked.00466D14
004672A6   |.  8B06 mov eax,dword ptr ds:[esi]
004672A8   |.  50   push eax                         ; /Arg4
004672A9   |.  8B44>mov eax,dword ptr ss:[esp+28]    ; |机器码表中的标号为3的组数据
004672AD   |.  50   push eax                         ; |Arg3
004672AE   |.  6A 1>push 10                          ; |Arg2 = 00000010
004672B0   |.  68 8>push D4EF3085                    ; |Arg1 = D4EF3085
004672B5   |.  8BC7 mov eax,edi                      ; |43准备修改的固定值数据地址
004672B7   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
004672B9   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
004672BC   |.  E8 5>call unpacked.00466D14           ; \unpacked.00466D14
004672C1   |.  8B03 mov eax,dword ptr ds:[ebx]
004672C3   |.  50   push eax                         ; /Arg4
004672C4   |.  8B44>mov eax,dword ptr ss:[esp+34]    ; |机器码表中的标号为6的组数据
004672C8   |.  50   push eax                         ; |Arg3
004672C9   |.  6A 1>push 17                          ; |Arg2 = 00000017
004672CB   |.  68 0>push 4881D05                     ; |Arg1 = 04881D05
004672D0   |.  8BC6 mov eax,esi                      ; |44准备修改的固定值数据地址
004672D2   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
004672D5   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
004672D7   |.  E8 3>call unpacked.00466D14           ; \unpacked.00466D14
004672DC   |.  8B45>mov eax,dword ptr ss:[ebp]
004672DF   |.  50   push eax                         ; /Arg4
004672E0   |.  8B44>mov eax,dword ptr ss:[esp+40]    ; |机器码表中的标号为9的组数据
004672E4   |.  50   push eax                         ; |Arg3
004672E5   |.  6A 0>push 4                           ; |Arg2 = 00000004
004672E7   |.  68 3>push D9D4D039                    ; |Arg1 = D9D4D039
004672EC   |.  8BC3 mov eax,ebx                      ; |45准备修改的固定值数据地址
004672EE   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
004672F0   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
004672F2   |.  E8 1>call unpacked.00466D14           ; \unpacked.00466D14
004672F7   |.  8B07 mov eax,dword ptr ds:[edi]
004672F9   |.  50   push eax                         ; /Arg4
004672FA   |.  8B44>mov eax,dword ptr ss:[esp+4C]    ; |机器码表中的标号为12的组数据
004672FE   |.  50   push eax                         ; |Arg3
004672FF   |.  6A 0>push 0B                          ; |Arg2 = 0000000B
00467301   |.  68 E>push E6DB99E5                    ; |Arg1 = E6DB99E5
00467306   |.  8BC5 mov eax,ebp                      ; |46准备修改的固定值数据地址
00467308   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
0046730A   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
0046730C   |.  E8 0>call unpacked.00466D14           ; \unpacked.00466D14
00467311   |.  8B06 mov eax,dword ptr ds:[esi]
00467313   |.  50   push eax                         ; /Arg4
00467314   |.  8B44>mov eax,dword ptr ss:[esp+58]    ; |机器码表中的标号为15的组数据
00467318   |.  50   push eax                         ; |Arg3
00467319   |.  6A 1>push 10                          ; |Arg2 = 00000010
0046731B   |.  68 F>push 1FA27CF8                    ; |Arg1 = 1FA27CF8
00467320   |.  8BC7 mov eax,edi                      ; |47准备修改的固定值数据地址
00467322   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
00467324   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00467327   |.  E8 E>call unpacked.00466D14           ; \unpacked.00466D14
0046732C   |.  8B03 mov eax,dword ptr ds:[ebx]
0046732E   |.  50   push eax                         ; /Arg4
0046732F   |.  8B44>mov eax,dword ptr ss:[esp+24]    ; |机器码表中的标号为2的组数据
00467333   |.  50   push eax                         ; |Arg3
00467334   |.  6A 1>push 17                          ; |Arg2 = 00000017
00467336   |.  68 6>push C4AC5665                    ; |Arg1 = C4AC5665
0046733B   |.  8BC6 mov eax,esi                      ; |48准备修改的固定值数据地址
0046733D   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00467340   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00467342   |.  E8 C>call unpacked.00466D14           ; \unpacked.00466D14
00467347   |.  8B45>mov eax,dword ptr ss:[ebp]
0046734A   |.  50   push eax                         ; /Arg4
0046734B   |.  8B44>mov eax,dword ptr ss:[esp+1C]    ; |机器码表中的标号为0的组数据
0046734F   |.  50   push eax                         ; |Arg3
00467350   |.  6A 0>push 6                           ; |Arg2 = 00000006
00467352   |.  68 4>push F4292244                    ; |Arg1 = F4292244
00467357   |.  8BC3 mov eax,ebx                      ; |49准备修改的固定值数据地址
00467359   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
0046735B   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
0046735D   |.  E8 E>call unpacked.00466D48           ; \unpacked.00466D48
00467362   |.  8B07 mov eax,dword ptr ds:[edi]
00467364   |.  50   push eax                         ; /Arg4
00467365   |.  8B44>mov eax,dword ptr ss:[esp+38]    ; |机器码表中的标号为7的组数据
00467369   |.  50   push eax                         ; |Arg3
0046736A   |.  6A 0>push 0A                          ; |Arg2 = 0000000A
0046736C   |.  68 9>push 432AFF97                    ; |Arg1 = 432AFF97
00467371   |.  8BC5 mov eax,ebp                      ; |50准备修改的固定值数据地址
00467373   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
00467375   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
00467377   |.  E8 C>call unpacked.00466D48           ; \unpacked.00466D48
0046737C   |.  8B06 mov eax,dword ptr ds:[esi]
0046737E   |.  50   push eax                         ; /Arg4
0046737F   |.  8B44>mov eax,dword ptr ss:[esp+54]    ; |机器码表中的标号为14的组数据
00467383   |.  50   push eax                         ; |Arg3
00467384   |.  6A 0>push 0F                          ; |Arg2 = 0000000F
00467386   |.  68 A>push AB9423A7                    ; |Arg1 = AB9423A7
0046738B   |.  8BC7 mov eax,edi                      ; |51准备修改的固定值数据地址
0046738D   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
0046738F   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00467392   |.  E8 B>call unpacked.00466D48           ; \unpacked.00466D48
00467397   |.  8B03 mov eax,dword ptr ds:[ebx]
00467399   |.  50   push eax                         ; /Arg4
0046739A   |.  8B44>mov eax,dword ptr ss:[esp+30]    ; |机器码表中的标号为5的组数据
0046739E   |.  50   push eax                         ; |Arg3
0046739F   |.  6A 1>push 15                          ; |Arg2 = 00000015
004673A1   |.  68 3>push FC93A039                    ; |Arg1 = FC93A039
004673A6   |.  8BC6 mov eax,esi                      ; |52准备修改的固定值数据地址
004673A8   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
004673AB   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
004673AD   |.  E8 9>call unpacked.00466D48           ; \unpacked.00466D48
004673B2   |.  8B45>mov eax,dword ptr ss:[ebp]
004673B5   |.  50   push eax                         ; /Arg4
004673B6   |.  8B44>mov eax,dword ptr ss:[esp+4C]    ; |机器码表中的标号为12的组数据
004673BA   |.  50   push eax                         ; |Arg3
004673BB   |.  6A 0>push 6                           ; |Arg2 = 00000006
004673BD   |.  68 C>push 655B59C3                    ; |Arg1 = 655B59C3
004673C2   |.  8BC3 mov eax,ebx                      ; |53准备修改的固定值数据地址
004673C4   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
004673C6   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
004673C8   |.  E8 7>call unpacked.00466D48           ; \unpacked.00466D48
004673CD   |.  8B07 mov eax,dword ptr ds:[edi]
004673CF   |.  50   push eax                         ; /Arg4
004673D0   |.  8B44>mov eax,dword ptr ss:[esp+28]    ; |机器码表中的标号为3的组数据
004673D4   |.  50   push eax                         ; |Arg3
004673D5   |.  6A 0>push 0A                          ; |Arg2 = 0000000A
004673D7   |.  68 9>push 8F0CCC92                    ; |Arg1 = 8F0CCC92
004673DC   |.  8BC5 mov eax,ebp                      ; |54准备修改的固定值数据地址
004673DE   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
004673E0   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
004673E2   |.  E8 6>call unpacked.00466D48           ; \unpacked.00466D48
004673E7   |.  8B06 mov eax,dword ptr ds:[esi]
004673E9   |.  50   push eax                         ; /Arg4
004673EA   |.  8B44>mov eax,dword ptr ss:[esp+44]    ; |机器码表中的标号为10的组数据
004673EE   |.  50   push eax                         ; |Arg3
004673EF   |.  6A 0>push 0F                          ; |Arg2 = 0000000F
004673F1   |.  68 7>push FFEFF47D                    ; |Arg1 = FFEFF47D
004673F6   |.  8BC7 mov eax,edi                      ; |55准备修改的固定值数据地址
004673F8   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
004673FA   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
004673FD   |.  E8 4>call unpacked.00466D48           ; \unpacked.00466D48
00467402   |.  8B03 mov eax,dword ptr ds:[ebx]
00467404   |.  50   push eax                         ; /Arg4
00467405   |.  8B44>mov eax,dword ptr ss:[esp+20]    ; |机器码表中的标号为1的组数据
00467409   |.  50   push eax                         ; |Arg3
0046740A   |.  6A 1>push 15                          ; |Arg2 = 00000015
0046740C   |.  68 D>push 85845DD1                    ; |Arg1 = 85845DD1
00467411   |.  8BC6 mov eax,esi                      ; |56准备修改的固定值数据地址
00467413   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00467416   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00467418   |.  E8 2>call unpacked.00466D48           ; \unpacked.00466D48
0046741D   |.  8B45>mov eax,dword ptr ss:[ebp]
00467420   |.  50   push eax                         ; /Arg4
00467421   |.  8B44>mov eax,dword ptr ss:[esp+3C]    ; |机器码表中的标号为8的组数据
00467425   |.  50   push eax                         ; |Arg3
00467426   |.  6A 0>push 6                           ; |Arg2 = 00000006
00467428   |.  68 4>push 6FA87E4F                    ; |Arg1 = 6FA87E4F
0046742D   |.  8BC3 mov eax,ebx                      ; |57准备修改的固定值数据地址
0046742F   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
00467431   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
00467433   |.  E8 1>call unpacked.00466D48           ; \unpacked.00466D48
00467438   |.  8B07 mov eax,dword ptr ds:[edi]
0046743A   |.  50   push eax                         ; /Arg4
0046743B   |.  8B44>mov eax,dword ptr ss:[esp+58]    ; |机器码表中的标号为15的组数据
0046743F   |.  50   push eax                         ; |Arg3
00467440   |.  6A 0>push 0A                          ; |Arg2 = 0000000A
00467442   |.  68 E>push FE2CE6E0                    ; |Arg1 = FE2CE6E0
00467447   |.  8BC5 mov eax,ebp                      ; |58准备修改的固定值数据地址
00467449   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
0046744B   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
0046744D   |.  E8 F>call unpacked.00466D48           ; \unpacked.00466D48
00467452   |.  8B06 mov eax,dword ptr ds:[esi]
00467454   |.  50   push eax                         ; /Arg4
00467455   |.  8B44>mov eax,dword ptr ss:[esp+34]    ; |机器码表中的标号为6的组数据
00467459   |.  50   push eax                         ; |Arg3
0046745A   |.  6A 0>push 0F                          ; |Arg2 = 0000000F
0046745C   |.  68 1>push A3014314                    ; |Arg1 = A3014314
00467461   |.  8BC7 mov eax,edi                      ; |59准备修改的固定值数据地址
00467463   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
00467465   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
00467468   |.  E8 D>call unpacked.00466D48           ; \unpacked.00466D48
0046746D   |.  8B03 mov eax,dword ptr ds:[ebx]
0046746F   |.  50   push eax                         ; /Arg4
00467470   |.  8B44>mov eax,dword ptr ss:[esp+50]    ; |机器码表中的标号为13的组数据
00467474   |.  50   push eax                         ; |Arg3
00467475   |.  6A 1>push 15                          ; |Arg2 = 00000015
00467477   |.  68 A>push 4E0811A1                    ; |Arg1 = 4E0811A1
0046747C   |.  8BC6 mov eax,esi                      ; |60准备修改的固定值数据地址
0046747E   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
00467481   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
00467483   |.  E8 C>call unpacked.00466D48           ; \unpacked.00466D48
00467488   |.  8B45>mov eax,dword ptr ss:[ebp]
0046748B   |.  50   push eax                         ; /Arg4
0046748C   |.  8B44>mov eax,dword ptr ss:[esp+2C]    ; |机器码表中的标号为4的组数据
00467490   |.  50   push eax                         ; |Arg3
00467491   |.  6A 0>push 6                           ; |Arg2 = 00000006
00467493   |.  68 8>push F7537E82                    ; |Arg1 = F7537E82
00467498   |.  8BC3 mov eax,ebx                      ; |61准备修改的固定值数据地址
0046749A   |.  8B0F mov ecx,dword ptr ds:[edi]       ; |
0046749C   |.  8B16 mov edx,dword ptr ds:[esi]       ; |
0046749E   |.  E8 A>call unpacked.00466D48           ; \unpacked.00466D48
004674A3   |.  8B07 mov eax,dword ptr ds:[edi]
004674A5   |.  50   push eax                         ; /Arg4
004674A6   |.  8B44>mov eax,dword ptr ss:[esp+48]    ; |机器码表中的标号为11的组数据
004674AA   |.  50   push eax                         ; |Arg3
004674AB   |.  6A 0>push 0A                          ; |Arg2 = 0000000A
004674AD   |.  68 3>push BD3AF235                    ; |Arg1 = BD3AF235
004674B2   |.  8BC5 mov eax,ebp                      ; |62准备修改的固定值数据地址
004674B4   |.  8B0E mov ecx,dword ptr ds:[esi]       ; |
004674B6   |.  8B13 mov edx,dword ptr ds:[ebx]       ; |
004674B8   |.  E8 8>call unpacked.00466D48           ; \unpacked.00466D48
004674BD   |.  8B06 mov eax,dword ptr ds:[esi]
004674BF   |.  50   push eax                         ; /Arg4
004674C0   |.  8B44>mov eax,dword ptr ss:[esp+24]    ; |机器码表中的标号为2的组数据
004674C4   |.  50   push eax                         ; |Arg3
004674C5   |.  6A 0>push 0F                          ; |Arg2 = 0000000F
004674C7   |.  68 B>push 2AD7D2BB                    ; |Arg1 = 2AD7D2BB
004674CC   |.  8BC7 mov eax,edi                      ; |63准备修改的固定值数据地址
004674CE   |.  8B0B mov ecx,dword ptr ds:[ebx]       ; |
004674D0   |.  8B55>mov edx,dword ptr ss:[ebp]       ; |
004674D3   |.  E8 7>call unpacked.00466D48           ; \unpacked.00466D48
004674D8   |.  8B03 mov eax,dword ptr ds:[ebx]
004674DA   |.  50   push eax                         ; /Arg4
004674DB   |.  8B44>mov eax,dword ptr ss:[esp+40]    ; |机器码表中的标号为9的组数据
004674DF   |.  50   push eax                         ; |Arg3
004674E0   |.  6A 1>push 15                          ; |Arg2 = 00000015
004674E2   |.  68 9>push EB86D391                    ; |Arg1 = EB86D391
004674E7   |.  8BC6 mov eax,esi                      ; |64准备修改的固定值数据地址
004674E9   |.  8B4D>mov ecx,dword ptr ss:[ebp]       ; |
004674EC   |.  8B17 mov edx,dword ptr ds:[edi]       ; |
004674EE   |.  E8 5>call unpacked.00466D48           ; \unpacked.00466D48
004674F3   |.  8B44>mov eax,dword ptr ss:[esp+4]
004674F7   |.  8B13 mov edx,dword ptr ds:[ebx]       ;  取出计算好的固定值表的第1组
004674F9   |.  0110 add dword ptr ds:[eax],edx       ;  将计算好的固定值表的第1组数据加上原固定值

表第一组67452301
004674FB   |.  8B44>mov eax,dword ptr ss:[esp+4]
004674FF   |.  8B16 mov edx,dword ptr ds:[esi]       ;  取出计算好的固定值表的第2组
00467501   |.  0150>add dword ptr ds:[eax+4],edx     ;  将计算好的固定值表的第2组数据加上原固定值

表第2组efcdab89
00467504   |.  8B44>mov eax,dword ptr ss:[esp+4]
00467508   |.  8B17 mov edx,dword ptr ds:[edi]       ;  取出计算好的固定值表的第3组
0046750A   |.  0150>add dword ptr ds:[eax+8],edx     ;  将计算好的固定值表的第3组数据加上原固定值

表第3组98BADCFE
0046750D   |.  8B44>mov eax,dword ptr ss:[esp+4]
00467511   |.  8B55>mov edx,dword ptr ss:[ebp]       ;  取出计算好的固定值表的第4组
00467514   |.  0150>add dword ptr ds:[eax+C],edx     ;  将计算好的固定值表的第4组数据加上原固定值

表第4组10325476
00467517   |.  83C4>add esp,58
0046751A   |.  5D   pop ebp
0046751B   |.  5F   pop edi
0046751C   |.  5E   pop esi
0046751D   |.  5B   pop ebx
0046751E   \.  C3   retn
…………………………………………………………………………………………………………………………6……
00466E1A   |.  E8 5>call unpacked.00466D7C           ;  得到机器码表的地方
这里的机器码表,一共有16组数据它是由固定字符,与机器码组合而成在内存中的数据:
0012F11C  B0 E6 C8 A8 CB F9 D3 D0  版权所有
0012F124  3A BA AB CA F7 BD AD 30  :韩树江0
0012F12C  39 35 30 34 32 39 35 64  9504295d
0012F134  30 32 33 36 36 39 32 34  02366924
0012F13C  64 35 32 38 65 35 31 66  d528e51f
0012F144  63 38 64 37 38 38 32 80  c8d7882
0012F14C  00 00 00 00 00 00 00 00  ........
0012F154  78 01 00 00 00 00 00 00  x......
其中数字部分为我的机器码,数据结束有个80,后面是固定的00000000,00000000,00000178,00000000
一共调用子程序64次,且后48次作为参数的取机器码表没有规律,所以给编写注册机烦了点,只好分别调用函

数64次
不好循环。
程序中还用到2组固定的数据表作参数,计算注册码
………………………………………………………………………………………………………………………………

00466E4C   |.  6A 0>push 7                           ; |固定值00000007
00466E4E   |.  68 7>push D76AA478                    ; |固定值  D76AA478
00466E53   |.  8BC3 mov eax,ebx                      ; |1准备修改的地址

00466E66   |.  6A 0>push 0C                          ; |固定值0C
00466E68   |.  68 5>push E8C7B756                    ; |固定值E8C7B756
00466E6D   |.  8BC5 mov eax,ebp                      ; |2准备修改的固定值数据地址

00466E80   |.  6A 1>push 11                          ; |固定值11
00466E82   |.  68 D>push 242070DB                    ; |固定值242070DB
00466E87   |.  8BC7 mov eax,edi                      ; |3准备修改的固定值数据地址

00466E9B   |.  6A 1>push 16                          ; |Arg2 = 00000016
00466E9D   |.  68 E>push C1BDCEEE                    ; |Arg1 = C1BDCEEE
00466EA2   |.  8BC6 mov eax,esi                      ; |4准备修改的固定值数据地址

00466EB7   |.  6A 0>push 7                           ; |Arg2 = 00000007
00466EB9   |.  68 A>push F57C0FAF                    ; |Arg1 = F57C0FAF
00466EBE   |.  8BC3 mov eax,ebx                      ; |5准备修改的固定值数据地址

00466ED1   |.  6A 0>push 0C                          ; |Arg2 = 0000000C
00466ED3   |.  68 2>push 4787C62A                    ; |Arg1 = 4787C62A
00466ED8   |.  8BC5 mov eax,ebp                      ; |6准备修改的固定值数据地址

00466EEB   |.  6A 1>push 11                          ; |Arg2 = 00000011
00466EED   |.  68 1>push A8304613                    ; |Arg1 = A8304613
00466EF2   |.  8BC7 mov eax,edi                      ; |7准备修改的固定值数据地址

00466F06   |.  6A 1>push 16                          ; |Arg2 = 00000016
00466F08   |.  68 0>push FD469501                    ; |Arg1 = FD469501
00466F0D   |.  8BC6 mov eax,esi                      ; |8准备修改的固定值数据地址

00466F22   |.  6A 0>push 7                           ; |Arg2 = 00000007
00466F24   |.  68 D>push 698098D8                    ; |Arg1 = 698098D8
00466F29   |.  8BC3 mov eax,ebx                      ; |9准备修改的固定值数据地址

00466F3C   |.  6A 0>push 0C                          ; |Arg2 = 0000000C
00466F3E   |.  68 A>push 8B44F7AF                    ; |Arg1 = 8B44F7AF
00466F43   |.  8BC5 mov eax,ebp                      ; |10准备修改的固定值数据地址

00466F56   |.  6A 1>push 11                          ; |Arg2 = 00000011
00466F58   |.  68 B>push FFFF5BB1                    ; |Arg1 = FFFF5BB1
00466F5D   |.  8BC7 mov eax,edi                      ; |11准备修改的固定值数据地址

00466F71   |.  6A 1>push 16                          ; |Arg2 = 00000016
00466F73   |.  68 B>push 895CD7BE                    ; |Arg1 = 895CD7BE
00466F78   |.  8BC6 mov eax,esi                      ; |12准备修改的固定值数据地址

00466F8D   |.  6A 0>push 7                           ; |Arg2 = 00000007
00466F8F   |.  68 2>push 6B901122                    ; |Arg1 = 6B901122
00466F94   |.  8BC3 mov eax,ebx                      ; |13准备修改的固定值数据地址

00466FA7   |.  6A 0>push 0C                          ; |Arg2 = 0000000C
00466FA9   |.  68 9>push FD987193                    ; |Arg1 = FD987193
00466FAE   |.  8BC5 mov eax,ebp                      ; |14准备修改的固定值数据地址

00466FC1   |.  6A 1>push 11                          ; |Arg2 = 00000011
00466FC3   |.  68 8>push A679438E                    ; |Arg1 = A679438E
00466FC8   |.  8BC7 mov eax,edi                      ; |15准备修改的固定值数据地址

00466FDC   |.  6A 1>push 16                          ; |Arg2 = 00000016
00466FDE   |.  68 2>push 49B40821                    ; |Arg1 = 49B40821
00466FE3   |.  8BC6 mov eax,esi                      ; |16准备修改的固定值数据地址

00466FF8   |.  6A 0>push 5                           ; |Arg2 = 00000005
00466FFA   |.  68 6>push F61E2562                    ; |Arg1 = F61E2562
00466FFF   |.  8BC3 mov eax,ebx                      ; |17准备修改的固定值数据地址

00467012   |.  6A 0>push 9                           ; |Arg2 = 00000009
00467014   |.  68 4>push C040B340                    ; |Arg1 = C040B340
00467019   |.  8BC5 mov eax,ebp                      ; |18准备修改的固定值数据地址

0046702C   |.  6A 0>push 0E                          ; |Arg2 = 0000000E
0046702E   |.  68 5>push 265E5A51                    ; |Arg1 = 265E5A51
00467033   |.  8BC7 mov eax,edi                      ; |19准备修改的固定值数据地址

00467047   |.  6A 1>push 14                          ; |Arg2 = 00000014
00467049   |.  68 A>push E9B6C7AA                    ; |Arg1 = E9B6C7AA
0046704E   |.  8BC6 mov eax,esi                      ; |20准备修改的固定值数据地址

00467063   |.  6A 0>push 5                           ; |Arg2 = 00000005
00467065   |.  68 5>push D62F105D                    ; |Arg1 = D62F105D
0046706A   |.  8BC3 mov eax,ebx                      ; |21准备修改的固定值数据地址

0046707D   |.  6A 0>push 9                           ; |Arg2 = 00000009
0046707F   |.  68 5>push 2441453                     ; |Arg1 = 02441453
00467084   |.  8BC5 mov eax,ebp                      ; |22准备修改的固定值数据地址

00467097   |.  6A 0>push 0E                          ; |Arg2 = 0000000E
00467099   |.  68 8>push D8A1E681                    ; |Arg1 = D8A1E681
0046709E   |.  8BC7 mov eax,edi                      ; |23准备修改的固定值数据地址

004670B2   |.  6A 1>push 14                          ; |Arg2 = 00000014
004670B4   |.  68 C>push E7D3FBC8                    ; |Arg1 = E7D3FBC8
004670B9   |.  8BC6 mov eax,esi                      ; |24准备修改的固定值数据地址

004670CE   |.  6A 0>push 5                           ; |Arg2 = 00000005
004670D0   |.  68 E>push 21E1CDE6                    ; |Arg1 = 21E1CDE6
004670D5   |.  8BC3 mov eax,ebx                      ; |25准备修改的固定值数据地址

004670E8   |.  6A 0>push 9                           ; |Arg2 = 00000009
004670EA   |.  68 D>push C33707D6                    ; |Arg1 = C33707D6
004670EF   |.  8BC5 mov eax,ebp                      ; |26准备修改的固定值数据地址

00467102   |.  6A 0>push 0E                          ; |Arg2 = 0000000E
00467104   |.  68 8>push F4D50D87                    ; |Arg1 = F4D50D87
00467109   |.  8BC7 mov eax,edi                      ; |27准备修改的固定值数据地址

0046711D   |.  6A 1>push 14                          ; |Arg2 = 00000014
0046711F   |.  68 E>push 455A14ED                    ; |Arg1 = 455A14ED
00467124   |.  8BC6 mov eax,esi                      ; |28准备修改的固定值数据地址

00467139   |.  6A 0>push 5                           ; |Arg2 = 00000005
0046713B   |.  68 0>push A9E3E905                    ; |Arg1 = A9E3E905
00467140   |.  8BC3 mov eax,ebx                      ; |29准备修改的固定值数据地址

00467153   |.  6A 0>push 9                           ; |Arg2 = 00000009
00467155   |.  68 F>push FCEFA3F8                    ; |Arg1 = FCEFA3F8
0046715A   |.  8BC5 mov eax,ebp                      ; |30准备修改的固定值数据地址

0046716D   |.  6A 0>push 0E                          ; |Arg2 = 0000000E
0046716F   |.  68 D>push 676F02D9                    ; |Arg1 = 676F02D9
00467174   |.  8BC7 mov eax,edi                      ; |31准备修改的固定值数据地址

00467188   |.  6A 1>push 14                          ; |Arg2 = 00000014
0046718A   |.  68 8>push 8D2A4C8A                    ; |Arg1 = 8D2A4C8A
0046718F   |.  8BC6 mov eax,esi                      ; |32准备修改的固定值数据地址

004671A4   |.  6A 0>push 4                           ; |Arg2 = 00000004
004671A6   |.  68 4>push FFFA3942                    ; |Arg1 = FFFA3942
004671AB   |.  8BC3 mov eax,ebx                      ; |33准备修改的固定值数据地址

004671BE   |.  6A 0>push 0B                          ; |Arg2 = 0000000B
004671C0   |.  68 8>push 8771F681                    ; |Arg1 = 8771F681
004671C5   |.  8BC5 mov eax,ebp                      ; |34准备修改的固定值数据地址

004671D8   |.  6A 1>push 10                          ; |Arg2 = 00000010
004671DA   |.  68 2>push 6D9D6122                    ; |Arg1 = 6D9D6122
004671DF   |.  8BC7 mov eax,edi                      ; |35准备修改的固定值数据地址

004671F3   |.  6A 1>push 17                          ; |Arg2 = 00000017
004671F5   |.  68 0>push FDE5380C                    ; |Arg1 = FDE5380C
004671FA   |.  8BC6 mov eax,esi                      ; |36准备修改的固定值数据地址

0046720F   |.  6A 0>push 4                           ; |Arg2 = 00000004
00467211   |.  68 4>push A4BEEA44                    ; |Arg1 = A4BEEA44
00467216   |.  8BC3 mov eax,ebx                      ; |37准备修改的固定值数据地址

00467229   |.  6A 0>push 0B                          ; |Arg2 = 0000000B
0046722B   |.  68 A>push 4BDECFA9                    ; |Arg1 = 4BDECFA9
00467230   |.  8BC5 mov eax,ebp                      ; |38准备修改的固定值数据地址

00467243   |.  6A 1>push 10                          ; |Arg2 = 00000010
00467245   |.  68 6>push F6BB4B60                    ; |Arg1 = F6BB4B60
0046724A   |.  8BC7 mov eax,edi                      ; |39准备修改的固定值数据地址

0046725E   |.  6A 1>push 17                          ; |Arg2 = 00000017
00467260   |.  68 7>push BEBFBC70                    ; |Arg1 = BEBFBC70
00467265   |.  8BC6 mov eax,esi                      ; |40准备修改的固定值数据地址

0046727A   |.  6A 0>push 4                           ; |Arg2 = 00000004
0046727C   |.  68 C>push 289B7EC6                    ; |Arg1 = 289B7EC6
00467281   |.  8BC3 mov eax,ebx                      ; |41准备修改的固定值数据地址

00467294   |.  6A 0>push 0B                          ; |Arg2 = 0000000B
00467296   |.  68 F>push EAA127FA                    ; |Arg1 = EAA127FA
0046729B   |.  8BC5 mov eax,ebp                      ; |42准备修改的固定值数据地址

004672AE   |.  6A 1>push 10                          ; |Arg2 = 00000010
004672B0   |.  68 8>push D4EF3085                    ; |Arg1 = D4EF3085
004672B5   |.  8BC7 mov eax,edi                      ; |43准备修改的固定值数据地址

004672C9   |.  6A 1>push 17                          ; |Arg2 = 00000017
004672CB   |.  68 0>push 4881D05                     ; |Arg1 = 04881D05
004672D0   |.  8BC6 mov eax,esi                      ; |44准备修改的固定值数据地址

004672E5   |.  6A 0>push 4                           ; |Arg2 = 00000004
004672E7   |.  68 3>push D9D4D039                    ; |Arg1 = D9D4D039
004672EC   |.  8BC3 mov eax,ebx                      ; |45准备修改的固定值数据地址

004672FF   |.  6A 0>push 0B                          ; |Arg2 = 0000000B
00467301   |.  68 E>push E6DB99E5                    ; |Arg1 = E6DB99E5
00467306   |.  8BC5 mov eax,ebp                      ; |46准备修改的固定值数据地址

00467319   |.  6A 1>push 10                          ; |Arg2 = 00000010
0046731B   |.  68 F>push 1FA27CF8                    ; |Arg1 = 1FA27CF8
00467320   |.  8BC7 mov eax,edi                      ; |47准备修改的固定值数据地址

00467334   |.  6A 1>push 17                          ; |Arg2 = 00000017
00467336   |.  68 6>push C4AC5665                    ; |Arg1 = C4AC5665
0046733B   |.  8BC6 mov eax,esi                      ; |48准备修改的固定值数据地址

00467350   |.  6A 0>push 6                           ; |Arg2 = 00000006
00467352   |.  68 4>push F4292244                    ; |Arg1 = F4292244
00467357   |.  8BC3 mov eax,ebx                      ; |49准备修改的固定值数据地址

0046736A   |.  6A 0>push 0A                          ; |Arg2 = 0000000A
0046736C   |.  68 9>push 432AFF97                    ; |Arg1 = 432AFF97
00467371   |.  8BC5 mov eax,ebp                      ; |50准备修改的固定值数据地址

00467384   |.  6A 0>push 0F                          ; |Arg2 = 0000000F
00467386   |.  68 A>push AB9423A7                    ; |Arg1 = AB9423A7
0046738B   |.  8BC7 mov eax,edi                      ; |51准备修改的固定值数据地址

0046739F   |.  6A 1>push 15                          ; |Arg2 = 00000015
004673A1   |.  68 3>push FC93A039                    ; |Arg1 = FC93A039
004673A6   |.  8BC6 mov eax,esi                      ; |52准备修改的固定值数据地址

004673BB   |.  6A 0>push 6                           ; |Arg2 = 00000006
004673BD   |.  68 C>push 655B59C3                    ; |Arg1 = 655B59C3
004673C2   |.  8BC3 mov eax,ebx                      ; |53准备修改的固定值数据地址

004673D5   |.  6A 0>push 0A                          ; |Arg2 = 0000000A
004673D7   |.  68 9>push 8F0CCC92                    ; |Arg1 = 8F0CCC92
004673DC   |.  8BC5 mov eax,ebp                      ; |54准备修改的固定值数据地址

004673EF   |.  6A 0>push 0F                          ; |Arg2 = 0000000F
004673F1   |.  68 7>push FFEFF47D                    ; |Arg1 = FFEFF47D
004673F6   |.  8BC7 mov eax,edi                      ; |55准备修改的固定值数据地址

0046740A   |.  6A 1>push 15                          ; |Arg2 = 00000015
0046740C   |.  68 D>push 85845DD1                    ; |Arg1 = 85845DD1
00467411   |.  8BC6 mov eax,esi                      ; |56准备修改的固定值数据地址

00467426   |.  6A 0>push 6                           ; |Arg2 = 00000006
00467428   |.  68 4>push 6FA87E4F                    ; |Arg1 = 6FA87E4F
0046742D   |.  8BC3 mov eax,ebx                      ; |57准备修改的固定值数据地址

00467440   |.  6A 0>push 0A                          ; |Arg2 = 0000000A
00467442   |.  68 E>push FE2CE6E0                    ; |Arg1 = FE2CE6E0
00467447   |.  8BC5 mov eax,ebp                      ; |58准备修改的固定值数据地址

0046745A   |.  6A 0>push 0F                          ; |Arg2 = 0000000F
0046745C   |.  68 1>push A3014314                    ; |Arg1 = A3014314
00467461   |.  8BC7 mov eax,edi                      ; |59准备修改的固定值数据地址

00467475   |.  6A 1>push 15                          ; |Arg2 = 00000015
00467477   |.  68 A>push 4E0811A1                    ; |Arg1 = 4E0811A1
0046747C   |.  8BC6 mov eax,esi                      ; |60准备修改的固定值数据地址

00467491   |.  6A 0>push 6                           ; |Arg2 = 00000006
00467493   |.  68 8>push F7537E82                    ; |Arg1 = F7537E82
00467498   |.  8BC3 mov eax,ebx                      ; |61准备修改的固定值数据地址

004674AB   |.  6A 0>push 0A                          ; |Arg2 = 0000000A
004674AD   |.  68 3>push BD3AF235                    ; |Arg1 = BD3AF235
004674B2   |.  8BC5 mov eax,ebp                      ; |62准备修改的固定值数据地址

004674C5   |.  6A 0>push 0F                          ; |Arg2 = 0000000F
004674C7   |.  68 B>push 2AD7D2BB                    ; |Arg1 = 2AD7D2BB
004674CC   |.  8BC7 mov eax,edi                      ; |63准备修改的固定值数据地址

004674E0   |.  6A 1>push 15                          ; |Arg2 = 00000015
004674E2   |.  68 9>push EB86D391                    ; |Arg1 = EB86D391
004674E7   |.  8BC6 mov eax,esi                      ; |64准备修改的固定值数据地址
………………………………………………………………………………………………………………………………
整理得到2组固定值表
这里叫固定值表2
0xD76AA478,0xE8C7B756,0x242070DB,0xC1BDCEEE,0xF57C0FAF,0x4787C62A,0xA8304613,0xFD469501,0x698098D

8,0x8B44F7AF,0xFFFF5BB1,0x895CD7BE,0x6B901122,0xFD987193,0xA679438E,0x49B40821,
0xF61E2562,0xC040B340,0x265E5A51,0xE9B6C7AA,0xD62F105D,0x02441453,0xD8A1E681,0xE7D3FBC8,0x21E1CDE

6,0xC33707D6,0xF4D50D87,0x455A14ED,0xA9E3E905,0xFCEFA3F8,0x676F02D9,0x8D2A4C8A,
0xFFFA3942,0x8771F681,0x6D9D6122,0xFDE5380C,0xA4BEEA44,0x4BDECFA9,0xF6BB4B60,0xBEBFBC70,0x289B7EC

6,0xEAA127FA,0xD4EF3085,0x04881D05,0xD9D4D039,0xE6DB99E5,0x1FA27CF8,0xC4AC5665,
0xF4292244,0x432AFF97,0xAB9423A7,0xFC93A039,0x655B59C3,0x8F0CCC92,0xFFEFF47D,0x85845DD1,0x6FA87E4

F,0xFE2CE6E0,0xA3014314,0x4E0811A1,0xF7537E82,0xBD3AF235,0x2AD7D2BB,0xEB86D391
上面的表用与相加,
固定值表3:
0x07,0x0C,0x11,0x16,0x07,0x0C,0x11,0x16,0x07,0x0C,0x11,0x16,0x07,0x0C,0x11,0x16,
0x5,0x9,0xe,0x14,0x5,0x9,0xe,0x14,0x5,0x9,0xe,0x14,0x5,0x9,0xe,0x14,
0x4,0xb,0x10,0x17,0x4,0xb,0x10,0x17,0x4,0xb,0x10,0x17,0x4,0xb,0x10,0x17,
0x6,0xa,0xf,0x15,0x6,0xa,0xf,0x15,0x6,0xa,0xf,0x15,0x6,0xa,0xf,0x15
上面的表用与把得到的结果移动后组合。

还用到另一组固定值表  也是用与相加
固定值表1:
0012F1A8    67452301
0012F1AC    EFCDAB89
0012F1B0    98BADCFE
0012F1B4    10325476
…………………………………………………………………………………………………………………………
在上面调用64次函数中还用了4中不同的函数,
00466E59   |.  E8 4>call unpacked.00466CAC           ; \unpacked.00466CAC

0046701F   |.  E8 B>call unpacked.00466CE0           ; \unpacked.00466CE0

004671CB   |.  E8 4>call unpacked.00466D14           ; \unpacked.00466D14

0046735D   |.  E8 E>call unpacked.00466D48           ; \unpacked.00466D48


…………………………………………………………………………………………………………………………
00466CAC   /$  55   push ebp
00466CAD   |.  8BEC mov ebp,esp
00466CAF   |.  53   push ebx
00466CB0   |.  56   push esi
00466CB1   |.  57   push edi
00466CB2   |.  8BF9 mov edi,ecx
00466CB4   |.  8BF2 mov esi,edx
00466CB6   |.  8BD8 mov ebx,eax
00466CB8   |.  8B4D>mov ecx,dword ptr ss:[ebp+14]    ;  固定值表循环(以准备修改开始计算)的第4组

数据
00466CBB   |.  8BD7 mov edx,edi                      ;  固定值表循环(以准备修改开始计算)的第3组

数据
00466CBD   |.  8BC6 mov eax,esi                      ;  固定值表循环(以准备修改开始计算)的第2组

数据
00466CBF   |.  E8 9>call unpacked.00466C60           ;  2,3组与运算,2取反的值与4与运算,两次结

果OR运算
00466CC4   |.  0345>add eax,dword ptr ss:[ebp+10]    ;  函数得到的结果加上机器码表的依次第几组数


00466CC7   |.  0345>add eax,dword ptr ss:[ebp+8]     ;  结果再加上压入的固定值数据
00466CCA   |.  0103 add dword ptr ds:[ebx],eax       ;  得到的结果储存的加上固定值表的此次参与运

算的数据
00466CCC   |.  8BC3 mov eax,ebx                      ;  得到地址存储用
00466CCE   |.  8A55>mov dl,byte ptr ss:[ebp+C]       ;  得到压入的固定值参数2位的
00466CD1   |.  E8 B>call unpacked.00466C8C           ;  把修改的数据右移20-固定值位,再把修改的数

据左移固定值位,最后把两次移动结果进行OR运算直接储存
00466CD6   |.  0133 add dword ptr ds:[ebx],esi       ;  结果还要加上向下循环的第2组数据
00466CD8   |.  5F   pop edi
00466CD9   |.  5E   pop esi
00466CDA   |.  5B   pop ebx
00466CDB   |.  5D   pop ebp
00466CDC   \.  C2 1>retn 10
00466CDF       90   nop
00466CE0   /$  55   push ebp
00466CE1   |.  8BEC mov ebp,esp
00466CE3   |.  53   push ebx
00466CE4   |.  56   push esi
00466CE5   |.  57   push edi
00466CE6   |.  8BF9 mov edi,ecx
00466CE8   |.  8BF2 mov esi,edx
00466CEA   |.  8BD8 mov ebx,eax
00466CEC   |.  8B4D>mov ecx,dword ptr ss:[ebp+14]    ;  固定值表循环(以准备修改开始计算)的第4组

数据
00466CEF   |.  8BD7 mov edx,edi                      ;  固定值表循环(以准备修改开始计算)的第3组

数据
00466CF1   |.  8BC6 mov eax,esi                      ;  固定值表循环(以准备修改开始计算)的第2组

数据
00466CF3   |.  E8 7>call unpacked.00466C6C           ;  2,4组与运算,4取反的值与3与运算,两次结

果OR运算
00466CF8   |.  0345>add eax,dword ptr ss:[ebp+10]    ;  函数得到的结果加上机器码表的依次第几组数


00466CFB   |.  0345>add eax,dword ptr ss:[ebp+8]     ;  结果再加上压入的固定值数据
00466CFE   |.  0103 add dword ptr ds:[ebx],eax       ;  得到的结果储存的加上固定值表的此次参与运

算的数据
00466D00   |.  8BC3 mov eax,ebx                      ;  得到地址存储用
00466D02   |.  8A55>mov dl,byte ptr ss:[ebp+C]       ;  得到压入的固定值参数2位的
00466D05   |.  E8 8>call unpacked.00466C8C           ;  把修改的数据右移20-固定值位,再把修改的数

据左移固定值位,最后把两次移动结果进行OR运算直接储存
00466D0A   |.  0133 add dword ptr ds:[ebx],esi       ;  结果还要加上向下循环的第2组数据
00466D0C   |.  5F   pop edi
00466D0D   |.  5E   pop esi
00466D0E   |.  5B   pop ebx
00466D0F   |.  5D   pop ebp
00466D10   \.  C2 1>retn 10
00466D13       90   nop
00466D14   /$  55   push ebp
00466D15   |.  8BEC mov ebp,esp
00466D17   |.  53   push ebx
00466D18   |.  56   push esi
00466D19   |.  57   push edi
00466D1A   |.  8BF9 mov edi,ecx
00466D1C   |.  8BF2 mov esi,edx
00466D1E   |.  8BD8 mov ebx,eax
00466D20   |.  8B4D>mov ecx,dword ptr ss:[ebp+14]    ;  固定值表循环(以准备修改开始计算)的第4组

数据
00466D23   |.  8BD7 mov edx,edi                      ;  固定值表循环(以准备修改开始计算)的第3组

数据
00466D25   |.  8BC6 mov eax,esi                      ;  固定值表循环(以准备修改开始计算)的第2组

数据
00466D27   |.  E8 4>call unpacked.00466C78           ;  三个数据XOR 一下即可
00466D2C   |.  0345>add eax,dword ptr ss:[ebp+10]    ;  函数得到的结果加上机器码表的依次第几组数


00466D2F   |.  0345>add eax,dword ptr ss:[ebp+8]     ;  结果再加上压入的固定值数据
00466D32   |.  0103 add dword ptr ds:[ebx],eax       ;  得到的结果储存的加上固定值表的此次参与运

算的数据
00466D34   |.  8BC3 mov eax,ebx                      ;  得到地址存储用
00466D36   |.  8A55>mov dl,byte ptr ss:[ebp+C]       ;  得到压入的固定值参数2位的
00466D39   |.  E8 4>call unpacked.00466C8C           ;  把修改的数据右移20-固定值位,再把修改的数

据左移固定值位,最后把两次移动结果进行OR运算直接储存
00466D3E   |.  0133 add dword ptr ds:[ebx],esi       ;  结果还要加上向下循环的第2组数据
00466D40   |.  5F   pop edi
00466D41   |.  5E   pop esi
00466D42   |.  5B   pop ebx
00466D43   |.  5D   pop ebp
00466D44   \.  C2 1>retn 10
00466D47       90   nop
00466D48   /$  55   push ebp
00466D49   |.  8BEC mov ebp,esp
00466D4B   |.  53   push ebx
00466D4C   |.  56   push esi
00466D4D   |.  57   push edi
00466D4E   |.  8BF9 mov edi,ecx
00466D50   |.  8BF2 mov esi,edx
00466D52   |.  8BD8 mov ebx,eax
00466D54   |.  8B4D>mov ecx,dword ptr ss:[ebp+14]    ;  固定值表循环(以准备修改开始计算)的第4组

数据
00466D57   |.  8BD7 mov edx,edi                      ;  固定值表循环(以准备修改开始计算)的第3组

数据
00466D59   |.  8BC6 mov eax,esi                      ;  固定值表循环(以准备修改开始计算)的第2组

数据
00466D5B   |.  E8 2>call unpacked.00466C80           ;  第4位数据取反的结果和第2位数据OR运算的结

果和第3位XOR
00466D60   |.  0345>add eax,dword ptr ss:[ebp+10]    ;  函数得到的结果加上机器码表的依次第几组数


00466D63   |.  0345>add eax,dword ptr ss:[ebp+8]     ;  结果再加上压入的固定值数据
00466D66   |.  0103 add dword ptr ds:[ebx],eax       ;  得到的结果储存的加上固定值表的此次参与运

算的数据
00466D68   |.  8BC3 mov eax,ebx                      ;  得到地址存储用
00466D6A   |.  8A55>mov dl,byte ptr ss:[ebp+C]       ;  得到压入的固定值参数2位的
00466D6D   |.  E8 1>call unpacked.00466C8C           ;  把修改的数据右移20-固定值位,再把修改的数

据左移固定值位,最后把两次移动结果进行OR运算直接储存
00466D72   |.  0133 add dword ptr ds:[ebx],esi       ;  结果还要加上向下循环的第2组数据
00466D74   |.  5F   pop edi
00466D75   |.  5E   pop esi
00466D76   |.  5B   pop ebx
00466D77   |.  5D   pop ebp
00466D78   \.  C2 1>retn 10
…………………………………………………………………………………………………………………………
00466C60   /$  23D0 and edx,eax                      ;  第2,3与运算覆盖了第3组数据记为EDX
00466C62   |.  F7D0 not eax                          ;  第2组取反
00466C64   |.  23C8 and ecx,eax                      ;  第2组取反后的数据与第4组与运算记为ECX
00466C66   |.  0BD1 or edx,ecx                       ;  EAX与EDX  OR运算,得到结果
00466C68   |.  8BC2 mov eax,edx
00466C6A   \.  C3   retn
00466C6B       90   nop
00466C6C   /$  23C1 and eax,ecx                      ;  第2,4与运算覆盖了第2组数据记为EAX
00466C6E   |.  F7D1 not ecx                          ;  第4组取反
00466C70   |.  23D1 and edx,ecx                      ;  第4组取反后的数据与第3组与运算记为edx
00466C72   |.  0BC2 or eax,edx                       ;  EAX与EDX  OR运算,得到结果
00466C74   \.  C3   retn
00466C75       8D40>lea eax,dword ptr ds:[eax]
00466C78   /$  33C2 xor eax,edx                      ;  第2,3组数据XOR
00466C7A   |.  33C8 xor ecx,eax                      ;  第2,3组数据XOR的结果再和第4组数据XOR
00466C7C   |.  8BC1 mov eax,ecx
00466C7E   \.  C3   retn
00466C7F       90   nop
00466C80   /$  F7D1 not ecx                          ;  第4位数据取反
00466C82   |.  0BC1 or eax,ecx                       ;  第4位数据取反的结果和第2位数据OR运算
00466C84   |.  33D0 xor edx,eax                      ;  第4位数据取反的结果和第2位数据OR运算的结

果和第3位XOR
00466C86   |.  8BC2 mov eax,edx
00466C88   \.  C3   retn
………………………………………………………………………………………………………………………………
还有一个移动的函数不变00466D6D   |.  E8 1>call unpacked.00466C8C
………………………………………………………………………………………………………………………………
00466C8C   /$  53   push ebx
00466C8D   |.  33C9 xor ecx,ecx
00466C8F   |.  8ACA mov cl,dl                        ;  得到2位固定值
00466C91   |.  51   push ecx
00466C92   |.  B9 2>mov ecx,20
00466C97   |.  5B   pop ebx
00466C98   |.  2BCB sub ecx,ebx                      ;  用20减去2位固定值07
00466C9A   |.  8B18 mov ebx,dword ptr ds:[eax]       ;  取刚改变的固定值表中此次参与值
00466C9C   |.  D3EB shr ebx,cl                       ;  把修改的数据右移20-固定值位
00466C9E   |.  8BCA mov ecx,edx
00466CA0   |.  8B10 mov edx,dword ptr ds:[eax]       ;  又得到数据
00466CA2   |.  D3E2 shl edx,cl                       ;  把修改的数据左移固定值位
00466CA4   |.  0BDA or ebx,edx                       ;  把两次移动后的值进行OR运算
00466CA6   |.  8918 mov dword ptr ds:[eax],ebx       ;  结果直接存储了!!
00466CA8   |.  5B   pop ebx
00466CA9   \.  C3   retn
……………………………………………………………………………………………………………………
算法总结:
在固定值表1中有4组数据,分别A、B、C、D,若准备处理A,则用了其他的B、C、D3组数据,
先让他们处理(在函数00466E59   |.  E8 4>call unpacked.00466CAC           ; \unpacked.00466CAC等)

后的结果加上固定值2中的数据,再家上,机器码表中的某个(没有具体的规律)数据,得到的结果
再加上固定值表1中的A数据
再把固定值表1中的数据A右移(32-固定值表3中的值)次,再将固定值表1中的数据A左移固定值表3中的值次
两次移动的结果相OR,这个结果储存在A中,再把A加上固定值表1中的A的向下第2位B,
这样完成一次函数调用

下一次调用,固定值准备处理的输入变成了D了,第2位变成A,第3位变成B,第4位C,也就是转一次
其他,差不多
一共要有64次函数的调用,里面函数有4个。
得到的数据每2位颠倒,得到一个字符串,(比如一组数据:ABCDEFGH,颠倒之后变成BADCFEHG,也就是由堆栈

到内存的过程)
这样一共有4组数据每组8位,共32位,再它转化为字符串,最后把这个字符串整个颠倒过来)
……………………………………………………………………………………………………………………


注册机原代码:
shuchu(jieguo)
unsigned long int jieguo[];
{
static unsigned long int zuizong[4];
unsigned long int zhi=0x0000000f;
int i;
for(i=0;i<4;i++)
{
zuizong[i]=zuizong[i]+((jieguo[i]&(zhi<<(7*4)))>>4);
zuizong[i]=zuizong[i]+((jieguo[i]&(zhi<<(6*4)))<<4);
zuizong[i]=zuizong[i]+((jieguo[i]&(zhi<<(5*4)))>>4);
zuizong[i]=zuizong[i]+((jieguo[i]&(zhi<<(4*4)))<<4);
zuizong[i]=zuizong[i]+((jieguo[i]&(zhi<<(3*4)))>>4);
zuizong[i]=zuizong[i]+((jieguo[i]&(zhi<<(2*4)))<<4);
zuizong[i]=zuizong[i]+((jieguo[i]&(zhi<<(1*4)))>>4);
zuizong[i]=zuizong[i]+((jieguo[i]&(zhi<<(0*4)))<<4);
}
printf("%8lx%8lx%8lx%8lx\n",zuizong[3],zuizong[2],zuizong[1],zuizong[0]);
}



unsigned long int jisuan1(guding,yidong,beijia,jiqi)
unsigned long int guding[],yidong,beijia,jiqi;
{
unsigned long int a,b,c,d,e,f;
a=guding[1]&guding[2];
b=guding[3]&(~guding[1]);
c=a|b;

c=c+jiqi+beijia;
guding[0]=guding[0]+c;
d=guding[0]>>(0x20-yidong);
e=guding[0]<<yidong;
guding[0]=d|e;
guding[0]=guding[0]+guding[1];

f=guding[3];
guding[3]=guding[2];
guding[2]=guding[1];
guding[1]=guding[0];
guding[0]=f;
}

unsigned long int jisuan2(guding,yidong,beijia,jiqi)
unsigned long int guding[],yidong,beijia,jiqi;
{
unsigned long int a,b,c,d,e,f;
a=guding[1]&guding[3];
b=guding[2]&(~guding[3]);
c=a|b;

c=c+jiqi+beijia;
guding[0]=guding[0]+c;
d=guding[0]>>(0x20-yidong);
e=guding[0]<<yidong;
guding[0]=d|e;
guding[0]=guding[0]+guding[1];

f=guding[3];
guding[3]=guding[2];
guding[2]=guding[1];
guding[1]=guding[0];
guding[0]=f;
}

unsigned long int jisuan3(guding,yidong,beijia,jiqi)
unsigned long int guding[],yidong,beijia,jiqi;
{
unsigned long int a,b,c,d,e,f;
a=guding[1]^guding[2];
b=a^guding[3];
c=b;

c=c+jiqi+beijia;
guding[0]=guding[0]+c;
d=guding[0]>>(0x20-yidong);
e=guding[0]<<yidong;
guding[0]=d|e;
guding[0]=guding[0]+guding[1];

f=guding[3];
guding[3]=guding[2];
guding[2]=guding[1];
guding[1]=guding[0];
guding[0]=f;
}

unsigned long int jisuan4(guding,yidong,beijia,jiqi)
unsigned long int guding[],yidong,beijia,jiqi;
{
unsigned long int a,b,c,d,e,f;
a=~guding[3];
b=a|guding[1];
c=b^guding[2];

c=c+jiqi+beijia;
guding[0]=guding[0]+c;
d=guding[0]>>(0x20-yidong);
e=guding[0]<<yidong;
guding[0]=d|e;
guding[0]=guding[0]+guding[1];

f=guding[3];
guding[3]=guding[2];
guding[2]=guding[1];
guding[1]=guding[0];
guding[0]=f;
}

main( )
{
static unsigned long int guding[4]={0x67452301,0xefcdab89,0x98badcfe,0x10325476};
static unsigned long int jieguo[4]={0x67452301,0xefcdab89,0x98badcfe,0x10325476};
static unsigned long int canyu1[64]={
0x07,0x0C,0x11,0x16,0x07,0x0C,0x11,0x16,0x07,0x0C,0x11,0x16,0x07,0x0C,0x11,0x16,
0x5,0x9,0xe,0x14,0x5,0x9,0xe,0x14,0x5,0x9,0xe,0x14,0x5,0x9,0xe,0x14,
0x4,0xb,0x10,0x17,0x4,0xb,0x10,0x17,0x4,0xb,0x10,0x17,0x4,0xb,0x10,0x17,
0x6,0xa,0xf,0x15,0x6,0xa,0xf,0x15,0x6,0xa,0xf,0x15,0x6,0xa,0xf,0x15};

static unsigned long int canyu2[64]={
0xD76AA478,0xE8C7B756,0x242070DB,0xC1BDCEEE,0xF57C0FAF,0x4787C62A,0xA8304613,0xFD469501,0x698098D

8,0x8B44F7AF,0xFFFF5BB1,0x895CD7BE,0x6B901122,0xFD987193,0xA679438E,0x49B40821,
0xF61E2562,0xC040B340,0x265E5A51,0xE9B6C7AA,0xD62F105D,0x02441453,0xD8A1E681,0xE7D3FBC8,0x21E1CDE

6,0xC33707D6,0xF4D50D87,0x455A14ED,0xA9E3E905,0xFCEFA3F8,0x676F02D9,0x8D2A4C8A,
0xFFFA3942,0x8771F681,0x6D9D6122,0xFDE5380C,0xA4BEEA44,0x4BDECFA9,0xF6BB4B60,0xBEBFBC70,0x289B7EC

6,0xEAA127FA,0xD4EF3085,0x04881D05,0xD9D4D039,0xE6DB99E5,0x1FA27CF8,0xC4AC5665,
0xF4292244,0x432AFF97,0xAB9423A7,0xFC93A039,0x655B59C3,0x8F0CCC92,0xFFEFF47D,0x85845DD1,0x6FA87E4

F,0xFE2CE6E0,0xA3014314,0x4E0811A1,0xF7537E82,0xBD3AF235,0x2AD7D2BB,0xEB86D391
};

static unsigned long int jiqima[16]={
0xA8C8E6B0,0xD0D3F9CB,0xCAABBA3A,0xADBDF7,
0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x80000000,
0x00000000,0x00000000,0x00000178,0x00000000};
char jianpan[32];
unsigned long int zongjian,wei=1;
int i=0,xh;
scanf("%s",&jianpan);

zongjian=jianpan[0];
zongjian=zongjian<<24;
jiqima[3]=jiqima[3]+zongjian;

for(i=4;i<11;i++)
{
for(xh=0;xh<4;xh++)
{
zongjian=jianpan[wei];
zongjian=zongjian<<(8*xh);
jiqima[i]=jiqima[i]+zongjian;
wei++;
}
}

for(xh=0;xh<3;xh++)
{
zongjian=jianpan[wei];
zongjian=zongjian<<(8*xh);
jiqima[i]=jiqima[i]+zongjian;
wei++;
}

i=0;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;
jisuan1(guding,canyu1[i],canyu2[i],jiqima[i]);i++;


jisuan2(guding,canyu1[i],canyu2[i],jiqima[1]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[6]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[11]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[0]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[5]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[10]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[15]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[4]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[9]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[14]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[3]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[8]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[13]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[2]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[7]);i++;
jisuan2(guding,canyu1[i],canyu2[i],jiqima[12]);i++;

jisuan3(guding,canyu1[i],canyu2[i],jiqima[5]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[8]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[11]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[14]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[1]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[4]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[7]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[10]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[13]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[0]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[3]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[6]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[9]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[12]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[15]);i++;
jisuan3(guding,canyu1[i],canyu2[i],jiqima[2]);i++;

jisuan4(guding,canyu1[i],canyu2[i],jiqima[0]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[7]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[14]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[5]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[12]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[3]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[10]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[1]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[8]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[15]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[6]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[13]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[4]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[11]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[2]);i++;
jisuan4(guding,canyu1[i],canyu2[i],jiqima[9]);i++;

jieguo[0]=jieguo[0]+guding[0];
jieguo[1]=jieguo[1]+guding[1];
jieguo[2]=jieguo[2]+guding[2];
jieguo[3]=jieguo[3]+guding[3];

shuchu(jieguo);
}