首页
社区
课程
招聘
挑战大家的神经,询问算法如何得出,消失就在眼前
发表于: 2005-11-7 21:49 3802

挑战大家的神经,询问算法如何得出,消失就在眼前

2005-11-7 21:49
3802
终于要离开这座城市了
她的离我而去
让我不知该如何是好
原本像我这种菜虫
是无法做到看完这段汇编代码的
可是现在我却麻木了
把汇编翻了一遍
看到了算法却没有得出结果
如果你只是想知道结果
就不要再往下看了


Active WebCam
http://www.pysoft.com/
Filesize: 10.8MB


Active WebCam captures images up to 30 frames per second from any
video device including USB, analog cameras, TV-boards, camcorders,
and from network IP cameras.

查看程序about时就可以看到有这几种License可以选

006051EC  |. />ja      short WebCam.00605256
006051EE  |. |>jmp     near dword ptr ds:[eax*4+6051F5]
006051F5  |. |>dd      WebCam.00605256           ;  Switch table used at 006051EE
006051F9  |. |>dd      WebCam.0060520D
006051FD  |. |>dd      WebCam.0060521C
00605201  |. |>dd      WebCam.0060522B
00605205  |. |>dd      WebCam.0060523A
00605209  |. |>dd      WebCam.00605249
0060520D  |> |>lea     eax, dword ptr ss:[ebp-4] ;  Case 1 of switch 006051E9
00605210  |. |>mov     edx, WebCam.0060536C      ;  ASCII " [REGULAR Version]"
00605215  |. |>call    WebCam.00403F4C
0060521A  |. |>jmp     short WebCam.00605256
0060521C  |> |>lea     eax, dword ptr ss:[ebp-4] ;  Case 2 of switch 006051E9
0060521F  |. |>mov     edx, WebCam.00605388      ;  ASCII " [PRO Version]"
00605224  |. |>call    WebCam.00403F4C
00605229  |. |>jmp     short WebCam.00605256
0060522B  |> |>lea     eax, dword ptr ss:[ebp-4] ;  Case 3 of switch 006051E9
0060522E  |. |>mov     edx, WebCam.006053A0      ;  ASCII " [Deluxe Version]"
00605233  |. |>call    WebCam.00403F4C
00605238  |. |>jmp     short WebCam.00605256
0060523A  |> |>lea     eax, dword ptr ss:[ebp-4] ;  Case 4 of switch 006051E9
0060523D  |. |>mov     edx, WebCam.006053BC      ;  ASCII " [Site License]"
00605242  |. |>call    WebCam.00403F4C
00605247  |. |>jmp     short WebCam.00605256
00605249  |> |>lea     eax, dword ptr ss:[ebp-4] ;  Case 5 of switch 006051E9
0060524C  |. |>mov     edx, WebCam.006053D4      ;  ASCII " [World-Wide License]"
00605251  |. |>call    WebCam.00403F4C
00605256  |> \>mov     edx, dword ptr ds:[6666B8];  WebCam.0065D218; Default case
0060525C  |.  >mov     edx, dword ptr ds:[edx]

==== 检测的地方 ====================================

00586BB8    .  8>cmp     eax, 10                       ;  length - 16位
00586BBB    .  0>jnz     WebCam.00586DFB
00586BC1    .  B>mov     ebx, 1
00586BC6    .  8>lea     esi, dword ptr ss:[ebp-19]
00586BC9    >  8>lea     eax, dword ptr ss:[ebp-1B8]
00586BCF    .  8>mov     edi, ebx
00586BD1    .  0>add     edi, edi
00586BD3    .  8>mov     edx, dword ptr ss:[ebp-C]
00586BD6    .  8>mov     dl, byte ptr ds:[edx+edi-2]
00586BDA    .  8>mov     byte ptr ds:[eax+1], dl
00586BDD    .  C>mov     byte ptr ds:[eax], 1
00586BE0    .  8>lea     edx, dword ptr ss:[ebp-1B8]
00586BE6    .  8>lea     eax, dword ptr ss:[ebp-1BC]
00586BEC    .  E>call    WebCam.00402CDC
00586BF1    .  8>lea     eax, dword ptr ss:[ebp-1C0]
00586BF7    .  8>mov     edx, dword ptr ss:[ebp-C]
00586BFA    .  8>mov     dl, byte ptr ds:[edx+edi-1]
00586BFE    .  8>mov     byte ptr ds:[eax+1], dl
00586C01    .  C>mov     byte ptr ds:[eax], 1
00586C04    .  8>lea     edx, dword ptr ss:[ebp-1C0]
00586C0A    .  8>lea     eax, dword ptr ss:[ebp-1BC]
00586C10    .  B>mov     cl, 2
00586C12    .  E>call    WebCam.00402CAC
00586C17    .  8>lea     edx, dword ptr ss:[ebp-1BC]
00586C1D    .  8>lea     eax, dword ptr ss:[ebp-120]
00586C23    .  E>call    WebCam.00402CDC
00586C28    .  8>lea     eax, dword ptr ss:[ebp-120]
00586C2E    .  E>call    WebCam.00426A78
00586C33    .  8>mov     byte ptr ds:[esi], al
00586C35    .  4>inc     ebx
00586C36    .  4>inc     esi
00586C37    .  8>cmp     ebx, 9
00586C3A    .^ 7>jnz     short WebCam.00586BC9
00586C3C    .  8>mov     eax, dword ptr ss:[ebp-10]
00586C3F    .  E>call    WebCam.00404130
00586C44    .  5>push    eax
00586C45    .  8>lea     eax, dword ptr ss:[ebp-10]
00586C48    .  E>call    WebCam.00404300
00586C4D    .  5>pop     edx

00586C4E    .  E>call    WebCam.00428AF8 ==A==         ;  对用户名运算   ==A==
00586C53    .  8>mov     ebx, eax                      ;  
00586C55    .  B>mov     eax, WebCam.00586E30          ;  ASCII "Active WebCam"
00586C5A    .  E>call    WebCam.004042F4
00586C5F    .  B>mov     edx, 0D
00586C64    .  E>call    WebCam.00428AF8 ==A===        ;  对License类型运算
00586C69    .  8>mov     dword ptr ss:[ebp-20], eax    ;  
00586C6C    .  6>push    0                             ; /Arg1 = 00000000
00586C6E    .  8>lea     edx, dword ptr ss:[ebp-20]    ; |
00586C71    .  8>lea     eax, dword ptr ss:[ebp-1B4]   ; |
00586C77    .  B>mov     ecx, 4                        ; |不同的License,Map[]不同
00586C7C    .  E>call    WebCam.004D5208 ==B===        ; \WebCam.004D5208  ==B===
00586C81    .  8>lea     ecx, dword ptr ss:[ebp-8]
00586C84    .  8>lea     edx, dword ptr ss:[ebp-19]
00586C87    .  8>lea     eax, dword ptr ss:[ebp-1B4]
00586C8D    .  E>call    WebCam.004D60EC ==C===        ;  [WebCam.004D60EC]==C===
00586C92    .  3>cmp     ebx, dword ptr ss:[ebp-8]     ;  比对是否是有效值
00586C95    .  7>jnz     short WebCam.00586CAB         ;  以下都同上了

00586C97    .  C>mov     byte ptr ss:[ebp-11], 1
00586C9B    .  A>mov     eax, dword ptr ds:[666214]
00586CA0    .  C>mov     dword ptr ds:[eax], 1
00586CA6    .  E>jmp     WebCam.00586DFB
00586CAB    >  B>mov     eax, WebCam.00586E48          ;  ASCII "Active WebCam Pro"
00586CB0    .  E>call    WebCam.004042F4
00586CB5    .  B>mov     edx, 11
00586CBA    .  E>call    WebCam.00428AF8               ;  
00586CBF    .  8>mov     dword ptr ss:[ebp-20], eax
00586CC2    .  6>push    0                             ; /Arg1 = 00000000
00586CC4    .  8>lea     edx, dword ptr ss:[ebp-20]    ; |
00586CC7    .  8>lea     eax, dword ptr ss:[ebp-1B4]   ; |
00586CCD    .  B>mov     ecx, 4                        ; |
00586CD2    .  E>call    WebCam.004D5208               ; \WebCam.004D5208
00586CD7    .  8>lea     ecx, dword ptr ss:[ebp-8]
00586CDA    .  8>lea     edx, dword ptr ss:[ebp-19]
00586CDD    .  8>lea     eax, dword ptr ss:[ebp-1B4]
00586CE3    .  E>call    WebCam.004D60EC
00586CE8    .  3>cmp     ebx, dword ptr ss:[ebp-8]
00586CEB    .  7>jnz     short WebCam.00586D01
00586CED    .  C>mov     byte ptr ss:[ebp-11], 1
00586CF1    .  A>mov     eax, dword ptr ds:[666214]
00586CF6    .  C>mov     dword ptr ds:[eax], 2
00586CFC    .  E>jmp     WebCam.00586DFB
00586D01    >  B>mov     eax, WebCam.00586E64          ;  ASCII "Active WebCam Dx"
00586D06    .  E>call    WebCam.004042F4
00586D0B    .  B>mov     edx, 10
00586D10    .  E>call    WebCam.00428AF8
00586D15    .  8>mov     dword ptr ss:[ebp-20], eax
00586D18    .  6>push    0                             ; /Arg1 = 00000000
00586D1A    .  8>lea     edx, dword ptr ss:[ebp-20]    ; |
00586D1D    .  8>lea     eax, dword ptr ss:[ebp-1B4]   ; |
00586D23    .  B>mov     ecx, 4                        ; |
00586D28    .  E>call    WebCam.004D5208               ; \WebCam.004D5208
00586D2D    .  8>lea     ecx, dword ptr ss:[ebp-8]
00586D30    .  8>lea     edx, dword ptr ss:[ebp-19]
00586D33    .  8>lea     eax, dword ptr ss:[ebp-1B4]
00586D39    .  E>call    WebCam.004D60EC
00586D3E    .  3>cmp     ebx, dword ptr ss:[ebp-8]
00586D41    .  7>jnz     short WebCam.00586D57
00586D43    .  C>mov     byte ptr ss:[ebp-11], 1
00586D47    .  A>mov     eax, dword ptr ds:[666214]
00586D4C    .  C>mov     dword ptr ds:[eax], 3
00586D52    .  E>jmp     WebCam.00586DFB
00586D57    >  B>mov     eax, WebCam.00586E80          ;  ASCII "Active WebCam St"
00586D5C    .  E>call    WebCam.004042F4
00586D61    .  B>mov     edx, 10
00586D66    .  E>call    WebCam.00428AF8
00586D6B    .  8>mov     dword ptr ss:[ebp-20], eax
00586D6E    .  6>push    0                             ; /Arg1 = 00000000
00586D70    .  8>lea     edx, dword ptr ss:[ebp-20]    ; |
00586D73    .  8>lea     eax, dword ptr ss:[ebp-1B4]   ; |
00586D79    .  B>mov     ecx, 4                        ; |
00586D7E    .  E>call    WebCam.004D5208               ; \WebCam.004D5208
00586D83    .  8>lea     ecx, dword ptr ss:[ebp-8]
00586D86    .  8>lea     edx, dword ptr ss:[ebp-19]
00586D89    .  8>lea     eax, dword ptr ss:[ebp-1B4]
00586D8F    .  E>call    WebCam.004D60EC
00586D94    .  8>mov     ebx, dword ptr ss:[ebp-8]
00586D97    .  7>jnz     short WebCam.00586D99
00586D99    >  C>mov     byte ptr ss:[ebp-11], 1
00586D9D    .  A>mov     eax, dword ptr ds:[666214]
00586DA2    .  C>mov     dword ptr ds:[eax], 4
00586DA8    .  E>jmp     short WebCam.00586DFB
00586DAA    .  B>mov     eax, WebCam.00586E9C          ;  ASCII "Active WebCam Wr"
00586DAF    .  E>call    WebCam.004042F4
00586DB4    .  B>mov     edx, 10
00586DB9    .  E>call    WebCam.00428AF8
00586DBE    .  8>mov     dword ptr ss:[ebp-20], eax
00586DC1    .  6>push    0                             ; /Arg1 = 00000000
00586DC3    .  8>lea     edx, dword ptr ss:[ebp-20]    ; |
00586DC6    .  8>lea     eax, dword ptr ss:[ebp-1B4]   ; |
00586DCC    .  B>mov     ecx, 4                        ; |
00586DD1    .  E>call    WebCam.004D5208               ; \WebCam.004D5208
00586DD6    .  8>lea     ecx, dword ptr ss:[ebp-8]
00586DD9    .  8>lea     edx, dword ptr ss:[ebp-19]
00586DDC    .  8>lea     eax, dword ptr ss:[ebp-1B4]
00586DE2    .  E>call    WebCam.004D60EC
00586DE7    .  3>cmp     ebx, dword ptr ss:[ebp-8]
00586DEA    .  7>jnz     short WebCam.00586DFB
00586DEC    .  C>mov     byte ptr ss:[ebp-11], 1
00586DF0    .  A>mov     eax, dword ptr ds:[666214]
00586DF5    .  C>mov     dword ptr ds:[eax], 5
00586DFB    >  3>xor     eax, eax
00586DFD    .  5>pop     edx
00586DFE    .  5>pop     ecx
00586DFF    .  5>pop     ecx
00586E00    .  6>mov     dword ptr fs:[eax], edx
00586E03    .  6>push    WebCam.00586E1D
00586E08    >  8>lea     eax, dword ptr ss:[ebp-10]
00586E0B    .  B>mov     edx, 2
00586E10    .  E>call    WebCam.00403ED8
00586E15    .  C>ret
****************************************************************************
现在看看都有什么

================= WebCam.00428AF8 ==A== ==============================
00428AF8   /$  5>push    ebp
00428AF9   |.  8>mov     ebp, esp
00428AFB   |.  8>add     esp, -1C
00428AFE   |.  8>mov     dword ptr ss:[ebp-8], edx
00428B01   |.  8>mov     dword ptr ss:[ebp-4], eax
00428B04   |.  C>mov     dword ptr ss:[ebp-18], -1
00428B0B   |.  8>mov     eax, dword ptr ss:[ebp-4]
00428B0E   |.  8>mov     dword ptr ss:[ebp-10], eax
00428B11   |.  8>mov     eax, dword ptr ss:[ebp-8]
00428B14   |.  8>test    eax, eax
00428B16   |.  7>jle     short WebCam.00428B55
00428B18   |.  8>mov     dword ptr ss:[ebp-1C], eax
00428B1B   |.  C>mov     dword ptr ss:[ebp-14], 1
00428B22   |>  8>/mov     eax, dword ptr ss:[ebp-10]
00428B25   |.  8>|mov     edx, dword ptr ss:[ebp-14]
00428B28   |.  0>|movzx   eax, byte ptr ds:[eax+edx-1]
00428B2D   |.  3>|xor     eax, dword ptr ss:[ebp-18]
00428B30   |.  2>|and     eax, 0FF
00428B35   |.  8>|mov     eax, dword ptr ds:[eax*4+65C>
00428B3C   |.  8>|mov     edx, dword ptr ss:[ebp-18]
00428B3F   |.  C>|shr     edx, 8
00428B42   |.  8>|and     edx, 0FFFFFF
00428B48   |.  3>|xor     eax, edx
00428B4A   |.  8>|mov     dword ptr ss:[ebp-18], eax
00428B4D   |.  F>|inc     dword ptr ss:[ebp-14]
00428B50   |.  F>|dec     dword ptr ss:[ebp-1C]
00428B53   |.^ 7>\jnz     short WebCam.00428B22
00428B55   |>  8>mov     eax, dword ptr ss:[ebp-18]
00428B58   |.  8>xor     eax, FFFFFFFF
00428B5B   |.  8>mov     dword ptr ss:[ebp-C], eax
00428B5E   |.  8>mov     eax, dword ptr ss:[ebp-C]
00428B61   |.  8>mov     esp, ebp
00428B63   |.  5>pop     ebp
00428B64   \.  C>ret

    public int createKey(String s) {     
        char[] cs = s.toCharArray();
        int hs1;
        int hs = 0xFFFFFFFF;
        Mapdata map = new Mapdata();
        for (int i = 0; i < cs.length; i++) {
            int tag = 0;
            int k = 1;
            hs1 = ((cs[i] ^ hs) & 0xFF) * 4;
            for (int j = 0; j < 4; j++) {
                tag = tag + map.key[hs1 + j] * k;
                k *= 0x100;
            }
            hs = (format(hs) & 0xFFFFFF) ^ tag;
        }
        hs = hs ^ 0xFFFFFFFF;
        return hs;
    }

map.key[] 是从程序中找到的一段数据,当做字典用了
输入"HUNTER"  得到key1  = 0xE34B2FBA
输入"Active WebCam" 得到一个要进一步处理的key2 0x6BEA18E3

================= WebCam.004D5208 ==B== ==============================
004D5208   /$  5>push    ebp
004D5209   |.  8>mov     ebp, esp
004D520B   |.  8>add     esp, -34
004D520E   |.  5>push    ebx
004D520F   |.  5>push    esi
004D5210   |.  5>push    edi
004D5211   |.  8>mov     edi, ecx
004D5213   |.  8>mov     dword ptr ss:[ebp-4], edx
004D5216   |.  8>mov     ebx, eax
004D5218   |.  8>lea     esi, dword ptr ss:[ebp-14]
004D521B   |.  8>test    edi, edi
004D521D   |.  7>jle     short WebCam.004D5224
004D521F   |.  8>cmp     edi, 10
004D5222   |.  7>jle     short WebCam.004D5237
004D5224   |>  3>xor     ecx, ecx
004D5226   |.  B>mov     dl, 1
004D5228   |.  A>mov     eax, dword ptr ds:[4093FC]
004D522D   |.  E>call    WebCam.0040D970
004D5232   |.  E>call    WebCam.0040390C
004D5237   |>  8>cmp     dword ptr ss:[ebp+8], 0
004D523B   |.  7>jnz     short WebCam.004D525C
004D523D   |.  8>mov     eax, ebx
004D523F   |.  3>xor     ecx, ecx
004D5241   |.  B>mov     edx, 8
004D5246   |.  E>call    WebCam.00402E1C
004D524B   |.  8>lea     eax, dword ptr ds:[ebx+8]
004D524E   |.  3>xor     ecx, ecx
004D5250   |.  B>mov     edx, 8
004D5255   |.  E>call    WebCam.00402E1C
004D525A   |.  E>jmp     short WebCam.004D527B
004D525C   |>  8>mov     edx, ebx
004D525E   |.  8>mov     eax, dword ptr ss:[ebp+8]
004D5261   |.  B>mov     ecx, 8
004D5266   |.  E>call    WebCam.004029DC
004D526B   |.  8>lea     edx, dword ptr ds:[ebx+8]
004D526E   |.  8>mov     eax, dword ptr ss:[ebp+8]
004D5271   |.  B>mov     ecx, 8
004D5276   |.  E>call    WebCam.004029DC
004D527B   |>  8>cmp     edi, 0A
004D527E   |.  7>jg      short WebCam.004D528C
004D5280   |.  C>mov     dword ptr ds:[ebx+90], 0C
004D528A   |.  E>jmp     short WebCam.004D5296
004D528C   |>  C>mov     dword ptr ds:[ebx+90], 10
004D5296   |>  8>mov     eax, esi
004D5298   |.  3>xor     ecx, ecx
004D529A   |.  B>mov     edx, 10
004D529F   |.  E>call    WebCam.00402E1C
004D52A4   |.  8>mov     edx, esi
004D52A6   |.  8>mov     eax, dword ptr ss:[ebp-4]
004D52A9   |.  8>mov     ecx, edi
004D52AB   |.  E>call    WebCam.004029DC
004D52B0   |.  8>mov     eax, dword ptr ds:[esi]             ;  开始 加载通过License类型获得的 key2
004D52B2   |.  8>mov     edx, eax
004D52B4   |.  C>shr     edx, 18
004D52B7   |.  8>mov     ecx, eax
004D52B9   |.  C>shr     ecx, 8
004D52BC   |.  8>and     ecx, 0FF00
004D52C2   |.  0>or      edx, ecx
004D52C4   |.  8>mov     ecx, eax
004D52C6   |.  C>shl     ecx, 8
004D52C9   |.  8>and     ecx, 0FF0000
004D52CF   |.  0>or      edx, ecx
004D52D1   |.  C>shl     eax, 18
004D52D4   |.  0>or      edx, eax
004D52D6   |.  8>mov     dword ptr ds:[esi], edx             ;  倒序  6BEA18E3 -> E318EA6B
004D52D8   |.  8>mov     eax, dword ptr ds:[esi+4]           ;  后面相同,这次均为00000000
004D52DB   |.  8>mov     edx, eax
004D52DD   |.  C>shr     edx, 18
004D52E0   |.  8>mov     ecx, eax
004D52E2   |.  C>shr     ecx, 8
004D52E5   |.  8>and     ecx, 0FF00
004D52EB   |.  0>or      edx, ecx
004D52ED   |.  8>mov     ecx, eax
004D52EF   |.  C>shl     ecx, 8
004D52F2   |.  8>and     ecx, 0FF0000
004D52F8   |.  0>or      edx, ecx
004D52FA   |.  C>shl     eax, 18
004D52FD   |.  0>or      edx, eax
004D52FF   |.  8>mov     dword ptr ds:[esi+4], edx
004D5302   |.  8>mov     eax, dword ptr ds:[esi+8]
004D5305   |.  8>mov     edx, eax
004D5307   |.  C>shr     edx, 18
004D530A   |.  8>mov     ecx, eax
004D530C   |.  C>shr     ecx, 8
004D530F   |.  8>and     ecx, 0FF00
004D5315   |.  0>or      edx, ecx
004D5317   |.  8>mov     ecx, eax
004D5319   |.  C>shl     ecx, 8
004D531C   |.  8>and     ecx, 0FF0000
004D5322   |.  0>or      edx, ecx
004D5324   |.  C>shl     eax, 18
004D5327   |.  0>or      edx, eax
004D5329   |.  8>mov     dword ptr ds:[esi+8], edx
004D532C   |.  8>mov     eax, dword ptr ds:[esi+C]
004D532F   |.  8>mov     edx, eax
004D5331   |.  C>shr     edx, 18
004D5334   |.  8>mov     ecx, eax
004D5336   |.  C>shr     ecx, 8
004D5339   |.  8>and     ecx, 0FF00
004D533F   |.  0>or      edx, ecx
004D5341   |.  8>mov     ecx, eax
004D5343   |.  C>shl     ecx, 8
004D5346   |.  8>and     ecx, 0FF0000
004D534C   |.  0>or      edx, ecx
004D534E   |.  C>shl     eax, 18
004D5351   |.  0>or      edx, eax
004D5353   |.  8>mov     dword ptr ds:[esi+C], edx
004D5356   |.  3>xor     eax, eax
004D5358   |>  8>/mov     edx, eax
004D535A   |.  8>|and     edx, 4
004D535D   |.  8>|sub     edx, 1                             ;  Switch (cases 0..4)
004D5360   |.  7>|jb      short WebCam.004D5370
004D5362   |.  8>|sub     edx, 3
004D5365   |.  0>|je      WebCam.004D54F0
004D536B   |.  E>|jmp     WebCam.004D5666
004D5370   |>  8>|mov     edx, dword ptr ds:[esi+C]          ;  Case 0 of switch 004D535D
004D5373   |.  8>|mov     ecx, edx
004D5375   |.  C>|shr     ecx, 10                            ;  第2段
004D5378   |.  8>|and     ecx, 0FF
004D537E   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D5385   |.  3>|xor     ecx, dword ptr ds:[esi]
004D5387   |.  8>|mov     edi, edx
004D5389   |.  8>|and     edi, 0FF                           ;  第4段
004D538F   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D5396   |.  8>|mov     edi, edx
004D5398   |.  C>|shr     edi, 18                            ;  第1段
004D539B   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D53A2   |.  C>|shr     edx, 8                             ;  第3段
004D53A5   |.  8>|and     edx, 0FF
004D53AB   |.  3>|xor     ecx, dword ptr ds:[edx*4+660C84]
004D53B2   |.  8>|mov     edx, dword ptr ds:[esi+8]
004D53B5   |.  C>|shr     edx, 18                            ;  第1段
004D53B8   |.  3>|xor     ecx, dword ptr ds:[edx*4+660884]
004D53BF   |.  8>|mov     dword ptr ss:[ebp-34], ecx         ;  [ebp-34] 赋值
004D53C2   |.  8>|mov     edx, dword ptr ss:[ebp-34]
004D53C5   |.  8>|mov     dword ptr ss:[ebp-24], edx         ;  [ebp-24] 赋值
004D53C8   |.  8>|mov     edx, dword ptr ss:[ebp-34]
004D53CB   |.  C>|shr     edx, 18                            ;  1
004D53CE   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D53D5   |.  3>|xor     edx, dword ptr ds:[esi+8]
004D53D8   |.  8>|mov     ecx, dword ptr ss:[ebp-34]
004D53DB   |.  C>|shr     ecx, 8                             ;  3
004D53DE   |.  8>|and     ecx, 0FF
004D53E4   |.  3>|xor     edx, dword ptr ds:[ecx*4+660484]
004D53EB   |.  8>|mov     ecx, dword ptr ss:[ebp-34]
004D53EE   |.  C>|shr     ecx, 10                            ;  2
004D53F1   |.  8>|and     ecx, 0FF
004D53F7   |.  3>|xor     edx, dword ptr ds:[ecx*4+660884]
004D53FE   |.  8>|mov     ecx, dword ptr ss:[ebp-34]
004D5401   |.  8>|and     ecx, 0FF                           ;  4
004D5407   |.  3>|xor     edx, dword ptr ds:[ecx*4+660C84]
004D540E   |.  8>|mov     ecx, dword ptr ds:[esi+8]
004D5411   |.  C>|shr     ecx, 8
004D5414   |.  8>|and     ecx, 0FF
004D541A   |.  3>|xor     edx, dword ptr ds:[ecx*4+660C84]
004D5421   |.  8>|mov     dword ptr ss:[ebp-30], edx         ;  [ebp-30] 赋值
004D5424   |.  8>|mov     edx, dword ptr ss:[ebp-30]
004D5427   |.  8>|mov     dword ptr ss:[ebp-20], edx         ;  [ebp-20] 赋值
004D542A   |.  8>|mov     edx, dword ptr ss:[ebp-30]
004D542D   |.  8>|and     edx, 0FF                           ;  4
004D5433   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D543A   |.  3>|xor     edx, dword ptr ds:[esi+C]
004D543D   |.  8>|mov     ecx, dword ptr ss:[ebp-30]
004D5440   |.  C>|shr     ecx, 8                             ;  3
004D5443   |.  8>|and     ecx, 0FF
004D5449   |.  3>|xor     edx, dword ptr ds:[ecx*4+660484]
004D5450   |.  8>|mov     ecx, dword ptr ss:[ebp-30]
004D5453   |.  C>|shr     ecx, 10                            ;  2
004D5456   |.  8>|and     ecx, 0FF
004D545C   |.  3>|xor     edx, dword ptr ds:[ecx*4+660884]
004D5463   |.  8>|mov     ecx, dword ptr ss:[ebp-30]
004D5466   |.  C>|shr     ecx, 18                            ;  1
004D5469   |.  3>|xor     edx, dword ptr ds:[ecx*4+660C84]
004D5470   |.  8>|mov     ecx, dword ptr ds:[esi+8]
004D5473   |.  C>|shr     ecx, 10
004D5476   |.  8>|and     ecx, 0FF
004D547C   |.  3>|xor     edx, dword ptr ds:[ecx*4+661084]
004D5483   |.  8>|mov     dword ptr ss:[ebp-2C], edx         ;  [ebp-2C] 赋值
004D5486   |.  8>|mov     edx, dword ptr ss:[ebp-2C]
004D5489   |.  8>|mov     dword ptr ss:[ebp-1C], edx         ;  [ebp-1C] 赋值
004D548C   |.  8>|mov     edx, dword ptr ss:[ebp-2C]
004D548F   |.  C>|shr     edx, 8                             ;  3
004D5492   |.  8>|and     edx, 0FF
004D5498   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D549F   |.  3>|xor     edx, dword ptr ds:[esi+4]
004D54A2   |.  8>|mov     ecx, dword ptr ss:[ebp-2C]
004D54A5   |.  C>|shr     ecx, 10                            ;  2
004D54A8   |.  8>|and     ecx, 0FF
004D54AE   |.  3>|xor     edx, dword ptr ds:[ecx*4+660484]
004D54B5   |.  8>|mov     ecx, dword ptr ss:[ebp-2C]
004D54B8   |.  8>|and     ecx, 0FF                           ;  4
004D54BE   |.  3>|xor     edx, dword ptr ds:[ecx*4+660884]
004D54C5   |.  8>|mov     ecx, dword ptr ss:[ebp-2C]
004D54C8   |.  C>|shr     ecx, 18                            ;  1
004D54CB   |.  3>|xor     edx, dword ptr ds:[ecx*4+660C84]
004D54D2   |.  8>|mov     ecx, dword ptr ds:[esi+8]
004D54D5   |.  8>|and     ecx, 0FF
004D54DB   |.  3>|xor     edx, dword ptr ds:[ecx*4+660484]
004D54E2   |.  8>|mov     dword ptr ss:[ebp-28], edx         ;  [ebp-28] 赋值
004D54E5   |.  8>|mov     edx, dword ptr ss:[ebp-28]
004D54E8   |.  8>|mov     dword ptr ss:[ebp-18], edx         ;  [ebp-18] 赋值
004D54EB   |.  E>|jmp     WebCam.004D5666
004D54F0   |>  8>|mov     edx, dword ptr ss:[ebp-30]         ;  Case 4 of switch 004D535D
004D54F3   |.  8>|mov     ecx, edx
004D54F5   |.  C>|shr     ecx, 10                            ;  2
004D54F8   |.  8>|and     ecx, 0FF
004D54FE   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D5505   |.  3>|xor     ecx, dword ptr ss:[ebp-2C]
004D5508   |.  8>|mov     edi, edx
004D550A   |.  8>|and     edi, 0FF                           ;  4
004D5510   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D5517   |.  8>|mov     edi, edx
004D5519   |.  C>|shr     edi, 18                            ;  1
004D551C   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D5523   |.  C>|shr     edx, 8                             ;  3
004D5526   |.  8>|and     edx, 0FF
004D552C   |.  3>|xor     ecx, dword ptr ds:[edx*4+660C84]
004D5533   |.  8>|mov     edx, dword ptr ss:[ebp-34]
004D5536   |.  C>|shr     edx, 18
004D5539   |.  3>|xor     ecx, dword ptr ds:[edx*4+660884]
004D5540   |.  8>|mov     dword ptr ds:[esi], ecx            ;  [ESI] 赋值
004D5542   |.  8>|mov     edx, dword ptr ds:[esi]
004D5544   |.  8>|mov     dword ptr ss:[ebp-24], edx         ;  [ebp-24] 赋值
004D5547   |.  8>|mov     edx, dword ptr ds:[esi]
004D5549   |.  C>|shr     edx, 18                            ;  1
004D554C   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D5553   |.  3>|xor     edx, dword ptr ss:[ebp-34]
004D5556   |.  8>|mov     ecx, dword ptr ds:[esi]
004D5558   |.  C>|shr     ecx, 8                             ;  3
004D555B   |.  8>|and     ecx, 0FF
004D5561   |.  3>|xor     edx, dword ptr ds:[ecx*4+660484]
004D5568   |.  8>|mov     ecx, dword ptr ds:[esi]
004D556A   |.  C>|shr     ecx, 10                            ;  2
004D556D   |.  8>|and     ecx, 0FF
004D5573   |.  3>|xor     edx, dword ptr ds:[ecx*4+660884]
004D557A   |.  8>|mov     ecx, dword ptr ds:[esi]
004D557C   |.  8>|and     ecx, 0FF                           ;  4
004D5582   |.  3>|xor     edx, dword ptr ds:[ecx*4+660C84]
004D5589   |.  8>|mov     ecx, dword ptr ss:[ebp-34]
004D558C   |.  C>|shr     ecx, 8
004D558F   |.  8>|and     ecx, 0FF
004D5595   |.  3>|xor     edx, dword ptr ds:[ecx*4+660C84]
004D559C   |.  8>|mov     dword ptr ds:[esi+4], edx          ;  [ESI+4] 赋值
004D559F   |.  8>|mov     edx, dword ptr ds:[esi+4]
004D55A2   |.  8>|mov     dword ptr ss:[ebp-20], edx         ;  [ebp-20] 赋值
004D55A5   |.  8>|mov     edx, dword ptr ds:[esi+4]
004D55A8   |.  8>|and     edx, 0FF
004D55AE   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D55B5   |.  3>|xor     edx, dword ptr ss:[ebp-30]
004D55B8   |.  8>|mov     ecx, dword ptr ds:[esi+4]
004D55BB   |.  C>|shr     ecx, 8
004D55BE   |.  8>|and     ecx, 0FF
004D55C4   |.  3>|xor     edx, dword ptr ds:[ecx*4+660484]
004D55CB   |.  8>|mov     ecx, dword ptr ds:[esi+4]
004D55CE   |.  C>|shr     ecx, 10
004D55D1   |.  8>|and     ecx, 0FF
004D55D7   |.  3>|xor     edx, dword ptr ds:[ecx*4+660884]
004D55DE   |.  8>|mov     ecx, dword ptr ds:[esi+4]
004D55E1   |.  C>|shr     ecx, 18
004D55E4   |.  3>|xor     edx, dword ptr ds:[ecx*4+660C84]
004D55EB   |.  8>|mov     ecx, dword ptr ss:[ebp-34]
004D55EE   |.  C>|shr     ecx, 10
004D55F1   |.  8>|and     ecx, 0FF
004D55F7   |.  3>|xor     edx, dword ptr ds:[ecx*4+661084]
004D55FE   |.  8>|mov     dword ptr ds:[esi+8], edx          ;  [ESI+8] 赋值
004D5601   |.  8>|mov     edx, dword ptr ds:[esi+8]
004D5604   |.  8>|mov     dword ptr ss:[ebp-1C], edx         ;  [ebp-1C] 赋值
004D5607   |.  8>|mov     edx, dword ptr ds:[esi+8]
004D560A   |.  C>|shr     edx, 8
004D560D   |.  8>|and     edx, 0FF
004D5613   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D561A   |.  3>|xor     edx, dword ptr ss:[ebp-28]
004D561D   |.  8>|mov     ecx, dword ptr ds:[esi+8]
004D5620   |.  C>|shr     ecx, 10
004D5623   |.  8>|and     ecx, 0FF
004D5629   |.  3>|xor     edx, dword ptr ds:[ecx*4+660484]
004D5630   |.  8>|mov     ecx, dword ptr ds:[esi+8]
004D5633   |.  8>|and     ecx, 0FF
004D5639   |.  3>|xor     edx, dword ptr ds:[ecx*4+660884]
004D5640   |.  8>|mov     ecx, dword ptr ds:[esi+8]
004D5643   |.  C>|shr     ecx, 18
004D5646   |.  3>|xor     edx, dword ptr ds:[ecx*4+660C84]
004D564D   |.  8>|mov     ecx, dword ptr ss:[ebp-34]
004D5650   |.  8>|and     ecx, 0FF
004D5656   |.  3>|xor     edx, dword ptr ds:[ecx*4+660484]
004D565D   |.  8>|mov     dword ptr ds:[esi+C], edx          ;  [ESI+C] 赋值
004D5660   |.  8>|mov     edx, dword ptr ds:[esi+C]
004D5663   |.  8>|mov     dword ptr ss:[ebp-18], edx         ;  [ebp-18] 赋值
004D5666   |>  8>|mov     edx, eax                           ;  Default case of switch 004D535D
004D5668   |.  8>|and     edx, 0C
004D566B   |.  8>|mov     ecx, edx
004D566D   |.  8>|sub     ecx, 1                             ;  Switch (cases 0..C)
004D5670   |.  7>|jb      short WebCam.004D568D
004D5672   |.  8>|sub     ecx, 3
004D5675   |.  0>|je      WebCam.004D57AE
004D567B   |.  8>|sub     ecx, 4
004D567E   |.  0>|je      WebCam.004D57AE
004D5684   |.  8>|sub     ecx, 4
004D5687   |.  0>|jnz     WebCam.004D58CA
004D568D   |>  8>|mov     ecx, dword ptr ss:[ebp-1C]         ;  Cases 0,C of switch 004D566D
004D5690   |.  C>|shr     ecx, 18                            ;  1
004D5693   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D569A   |.  8>|mov     edi, dword ptr ss:[ebp-1C]
004D569D   |.  C>|shr     edi, 10                            ;  2
004D56A0   |.  8>|and     edi, 0FF
004D56A6   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D56AD   |.  8>|mov     edi, dword ptr ss:[ebp-20]
004D56B0   |.  8>|and     edi, 0FF                           ;  4
004D56B6   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D56BD   |.  8>|mov     edi, dword ptr ss:[ebp-20]
004D56C0   |.  C>|shr     edi, 8                             ;  3
004D56C3   |.  8>|and     edi, 0FF
004D56C9   |.  3>|xor     ecx, dword ptr ds:[edi*4+660C84]
004D56D0   |.  8>|mov     dword ptr ds:[ebx+eax*4+10], ecx
004D56D4   |.  8>|mov     ecx, dword ptr ss:[ebp-1C]
004D56D7   |.  C>|shr     ecx, 8                             ;  3
004D56DA   |.  8>|and     ecx, 0FF
004D56E0   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D56E7   |.  8>|mov     edi, dword ptr ss:[ebp-1C]
004D56EA   |.  8>|and     edi, 0FF                           ;  4
004D56F0   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D56F7   |.  8>|mov     edi, dword ptr ss:[ebp-20]
004D56FA   |.  C>|shr     edi, 10                            ;  2
004D56FD   |.  8>|and     edi, 0FF
004D5703   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D570A   |.  8>|mov     edi, dword ptr ss:[ebp-20]
004D570D   |.  C>|shr     edi, 18                            ;  1
004D5710   |.  3>|xor     ecx, dword ptr ds:[edi*4+660C84]
004D5717   |.  8>|mov     dword ptr ds:[ebx+eax*4+14], ecx
004D571B   |.  8>|mov     ecx, dword ptr ss:[ebp-18]
004D571E   |.  C>|shr     ecx, 18                            ;  1
004D5721   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D5728   |.  8>|mov     edi, dword ptr ss:[ebp-18]
004D572B   |.  C>|shr     edi, 10                            ;  2
004D572E   |.  8>|and     edi, 0FF
004D5734   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D573B   |.  8>|mov     edi, dword ptr ss:[ebp-24]
004D573E   |.  8>|and     edi, 0FF                           ;  4
004D5744   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D574B   |.  8>|mov     edi, dword ptr ss:[ebp-24]
004D574E   |.  C>|shr     edi, 8                             ;  3
004D5751   |.  8>|and     edi, 0FF
004D5757   |.  3>|xor     ecx, dword ptr ds:[edi*4+660C84]
004D575E   |.  8>|mov     dword ptr ds:[ebx+eax*4+18], ecx
004D5762   |.  8>|mov     ecx, dword ptr ss:[ebp-18]
004D5765   |.  C>|shr     ecx, 8                             ;  3
004D5768   |.  8>|and     ecx, 0FF
004D576E   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D5775   |.  8>|mov     edi, dword ptr ss:[ebp-18]
004D5778   |.  8>|and     edi, 0FF                           ;  4
004D577E   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D5785   |.  8>|mov     edi, dword ptr ss:[ebp-24]
004D5788   |.  C>|shr     edi, 10                            ;  2
004D578B   |.  8>|and     edi, 0FF
004D5791   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D5798   |.  8>|mov     edi, dword ptr ss:[ebp-24]
004D579B   |.  C>|shr     edi, 18                            ;  1
004D579E   |.  3>|xor     ecx, dword ptr ds:[edi*4+660C84]
004D57A5   |.  8>|mov     dword ptr ds:[ebx+eax*4+1C], ecx
004D57A9   |.  E>|jmp     WebCam.004D58CA
004D57AE   |>  8>|mov     ecx, dword ptr ss:[ebp-24]         ;  Cases 4,8 of switch 004D566D
004D57B1   |.  8>|and     ecx, 0FF                           ;  4
004D57B7   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D57BE   |.  8>|mov     edi, dword ptr ss:[ebp-24]
004D57C1   |.  C>|shr     edi, 8                             ;  3
004D57C4   |.  8>|and     edi, 0FF
004D57CA   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D57D1   |.  8>|mov     edi, dword ptr ss:[ebp-18]
004D57D4   |.  C>|shr     edi, 18                            ;  1
004D57D7   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D57DE   |.  8>|mov     edi, dword ptr ss:[ebp-18]
004D57E1   |.  C>|shr     edi, 10                            ;  2
004D57E4   |.  8>|and     edi, 0FF
004D57EA   |.  3>|xor     ecx, dword ptr ds:[edi*4+660C84]
004D57F1   |.  8>|mov     dword ptr ds:[ebx+eax*4+10], ecx
004D57F5   |.  8>|mov     ecx, dword ptr ss:[ebp-24]
004D57F8   |.  C>|shr     ecx, 10                            ;  2
004D57FB   |.  8>|and     ecx, 0FF
004D5801   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D5808   |.  8>|mov     edi, dword ptr ss:[ebp-24]
004D580B   |.  C>|shr     edi, 18                            ;  1
004D580E   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D5815   |.  8>|mov     edi, dword ptr ss:[ebp-18]
004D5818   |.  C>|shr     edi, 8                             ;  3
004D581B   |.  8>|and     edi, 0FF
004D5821   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D5828   |.  8>|mov     edi, dword ptr ss:[ebp-18]
004D582B   |.  8>|and     edi, 0FF                           ;  4
004D5831   |.  3>|xor     ecx, dword ptr ds:[edi*4+660C84]
004D5838   |.  8>|mov     dword ptr ds:[ebx+eax*4+14], ecx
004D583C   |.  8>|mov     ecx, dword ptr ss:[ebp-20]
004D583F   |.  8>|and     ecx, 0FF                           ;  4
004D5845   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D584C   |.  8>|mov     edi, dword ptr ss:[ebp-20]
004D584F   |.  C>|shr     edi, 8                             ;  3
004D5852   |.  8>|and     edi, 0FF
004D5858   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D585F   |.  8>|mov     edi, dword ptr ss:[ebp-1C]
004D5862   |.  C>|shr     edi, 18                            ;  1
004D5865   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D586C   |.  8>|mov     edi, dword ptr ss:[ebp-1C]
004D586F   |.  C>|shr     edi, 10                            ;  2
004D5872   |.  8>|and     edi, 0FF
004D5878   |.  3>|xor     ecx, dword ptr ds:[edi*4+660C84]
004D587F   |.  8>|mov     dword ptr ds:[ebx+eax*4+18], ecx
004D5883   |.  8>|mov     ecx, dword ptr ss:[ebp-20]
004D5886   |.  C>|shr     ecx, 10                            ;  2
004D5889   |.  8>|and     ecx, 0FF
004D588F   |.  8>|mov     ecx, dword ptr ds:[ecx*4+661084]
004D5896   |.  8>|mov     edi, dword ptr ss:[ebp-20]
004D5899   |.  C>|shr     edi, 18                            ;  1
004D589C   |.  3>|xor     ecx, dword ptr ds:[edi*4+660484]
004D58A3   |.  8>|mov     edi, dword ptr ss:[ebp-1C]
004D58A6   |.  C>|shr     edi, 8                             ;  3
004D58A9   |.  8>|and     edi, 0FF
004D58AF   |.  3>|xor     ecx, dword ptr ds:[edi*4+660884]
004D58B6   |.  8>|mov     edi, dword ptr ss:[ebp-1C]
004D58B9   |.  8>|and     edi, 0FF                           ;  4
004D58BF   |.  3>|xor     ecx, dword ptr ds:[edi*4+660C84]
004D58C6   |.  8>|mov     dword ptr ds:[ebx+eax*4+1C], ecx
004D58CA   |>  8>|sub     edx, 1                             ;  Switch (cases 0..C)
004D58CD   |.  7>|jb      short WebCam.004D58EB
004D58CF   |.  8>|sub     edx, 3
004D58D2   |.  7>|je      short WebCam.004D5946
004D58D4   |.  8>|sub     edx, 4
004D58D7   |.  0>|je      WebCam.004D599A
004D58DD   |.  8>|sub     edx, 4
004D58E0   |.  0>|je      WebCam.004D59F2
004D58E6   |.  E>|jmp     WebCam.004D5A41
004D58EB   |>  8>|mov     edx, dword ptr ss:[ebp-34]         ;  Case 0 of switch 004D58CA
004D58EE   |.  C>|shr     edx, 8                             ;  3
004D58F1   |.  8>|and     edx, 0FF
004D58F7   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D58FE   |.  3>|xor     dword ptr ds:[ebx+eax*4+10], edx
004D5902   |.  8>|mov     edx, dword ptr ss:[ebp-30]
004D5905   |.  C>|shr     edx, 8                             ;  3
004D5908   |.  8>|and     edx, 0FF
004D590E   |.  8>|mov     edx, dword ptr ds:[edx*4+660484]
004D5915   |.  3>|xor     dword ptr ds:[ebx+eax*4+14], edx
004D5919   |.  8>|mov     edx, dword ptr ss:[ebp-2C]
004D591C   |.  C>|shr     edx, 10                            ;  2
004D591F   |.  8>|and     edx, 0FF
004D5925   |.  8>|mov     edx, dword ptr ds:[edx*4+660884]
004D592C   |.  3>|xor     dword ptr ds:[ebx+eax*4+18], edx
004D5930   |.  8>|mov     edx, dword ptr ss:[ebp-28]
004D5933   |.  C>|shr     edx, 18                            ;  1
004D5936   |.  8>|mov     edx, dword ptr ds:[edx*4+660C84]
004D593D   |.  3>|xor     dword ptr ds:[ebx+eax*4+1C], edx
004D5941   |.  E>|jmp     WebCam.004D5A41
004D5946   |>  8>|mov     edx, dword ptr ds:[esi+8]          ;  Case 4 of switch 004D58CA
004D5949   |.  C>|shr     edx, 18                            ;  1
004D594C   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D5953   |.  3>|xor     dword ptr ds:[ebx+eax*4+10], edx
004D5957   |.  8>|mov     edx, dword ptr ds:[esi+C]
004D595A   |.  C>|shr     edx, 10                            ;  2
004D595D   |.  8>|and     edx, 0FF
004D5963   |.  8>|mov     edx, dword ptr ds:[edx*4+660484]
004D596A   |.  3>|xor     dword ptr ds:[ebx+eax*4+14], edx
004D596E   |.  8>|mov     edx, dword ptr ds:[esi]
004D5970   |.  8>|and     edx, 0FF                           ;  4
004D5976   |.  8>|mov     edx, dword ptr ds:[edx*4+660884]
004D597D   |.  3>|xor     dword ptr ds:[ebx+eax*4+18], edx
004D5981   |.  8>|mov     edx, dword ptr ds:[esi+4]
004D5984   |.  8>|and     edx, 0FF                           ;  4
004D598A   |.  8>|mov     edx, dword ptr ds:[edx*4+660C84]
004D5991   |.  3>|xor     dword ptr ds:[ebx+eax*4+1C], edx
004D5995   |.  E>|jmp     WebCam.004D5A41
004D599A   |>  8>|mov     edx, dword ptr ss:[ebp-2C]         ;  Case 8 of switch 004D58CA
004D599D   |.  C>|shr     edx, 10                            ;  2
004D59A0   |.  8>|and     edx, 0FF
004D59A6   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D59AD   |.  3>|xor     dword ptr ds:[ebx+eax*4+10], edx
004D59B1   |.  8>|mov     edx, dword ptr ss:[ebp-28]
004D59B4   |.  C>|shr     edx, 18                            ;  1
004D59B7   |.  8>|mov     edx, dword ptr ds:[edx*4+660484]
004D59BE   |.  3>|xor     dword ptr ds:[ebx+eax*4+14], edx
004D59C2   |.  8>|mov     edx, dword ptr ss:[ebp-34]
004D59C5   |.  C>|shr     edx, 8                             ;  3
004D59C8   |.  8>|and     edx, 0FF
004D59CE   |.  8>|mov     edx, dword ptr ds:[edx*4+660884]
004D59D5   |.  3>|xor     dword ptr ds:[ebx+eax*4+18], edx
004D59D9   |.  8>|mov     edx, dword ptr ss:[ebp-30]
004D59DC   |.  C>|shr     edx, 8                             ;  3
004D59DF   |.  8>|and     edx, 0FF
004D59E5   |.  8>|mov     edx, dword ptr ds:[edx*4+660C84]
004D59EC   |.  3>|xor     dword ptr ds:[ebx+eax*4+1C], edx
004D59F0   |.  E>|jmp     short WebCam.004D5A41
004D59F2   |>  8>|mov     edx, dword ptr ds:[esi]            ;  Case C of switch 004D58CA
004D59F4   |.  8>|and     edx, 0FF                           ;  4
004D59FA   |.  8>|mov     edx, dword ptr ds:[edx*4+661084]
004D5A01   |.  3>|xor     dword ptr ds:[ebx+eax*4+10], edx
004D5A05   |.  8>|mov     edx, dword ptr ds:[esi+4]
004D5A08   |.  8>|and     edx, 0FF                           ;  4
004D5A0E   |.  8>|mov     edx, dword ptr ds:[edx*4+660484]
004D5A15   |.  3>|xor     dword ptr ds:[ebx+eax*4+14], edx
004D5A19   |.  8>|mov     edx, dword ptr ds:[esi+8]
004D5A1C   |.  C>|shr     edx, 18                            ;  1
004D5A1F   |.  8>|mov     edx, dword ptr ds:[edx*4+660884]
004D5A26   |.  3>|xor     dword ptr ds:[ebx+eax*4+18], edx
004D5A2A   |.  8>|mov     edx, dword ptr ds:[esi+C]
004D5A2D   |.  C>|shr     edx, 10                            ;  2
004D5A30   |.  8>|and     edx, 0FF
004D5A36   |.  8>|mov     edx, dword ptr ds:[edx*4+660C84]
004D5A3D   |.  3>|xor     dword ptr ds:[ebx+eax*4+1C], edx
004D5A41   |>  8>|cmp     eax, 10                            ;  Default case of switch 004D58CA
004D5A44   |.  7>|jl      short WebCam.004D5A5A
004D5A46   |.  8>|and     dword ptr ds:[ebx+eax*4+10], 1F
004D5A4B   |.  8>|and     dword ptr ds:[ebx+eax*4+14], 1F
004D5A50   |.  8>|and     dword ptr ds:[ebx+eax*4+18], 1F
004D5A55   |.  8>|and     dword ptr ds:[ebx+eax*4+1C], 1F
004D5A5A   |>  8>|add     eax, 4
004D5A5D   |.  8>|cmp     eax, 20
004D5A60   |.^ 0>\jl      WebCam.004D5358
004D5A66   |.  5>pop     edi
004D5A67   |.  5>pop     esi
004D5A68   |.  5>pop     ebx
004D5A69   |.  8>mov     esp, ebp
004D5A6B   |.  5>pop     ebp
004D5A6C   \.  C>ret     4

    private int getInt(int s, int x, int p) {
        Mapdata map = new Mapdata();
        MapdataOther mapOther = new MapdataOther();
        int tag = 0;
        int k = 1;
        int format = format2(x, p) * 4;
        for (int j = 0; j < 4; j++) {
            switch (s) {
            case 1:
                tag = tag + map.key_0[format + j] * k;
                break;
            case 2:
                tag = tag + map.key_1[format + j] * k;
                break;
            case 3:
                tag = tag + map.key_2[format + j] * k;
                break;
            case 4:
                tag = tag + map.key_3[format + j] * k;
                break;        
            }
            k *= 0x100;
        }
        return tag;
    }

map.key_0[]
map.key_1[]
map.key_2[]
map.key_3[]
这四个map是从程序中找到的一段数据,当做字典用了

    public int[] math(String into) {
        
        int[] result = new int[32];////32个运算值
        Create create = new Create();
        int esi = create.update(create.createKey(into)); <==== 这个esi就是key2
        int esi_4 = 0, esi_8 = 0, esi_c = 0;
        int eax = 0, edx = 0, ecx = 0, edi;
        int ebp_34 = 0, ebp_24 = 0, ebp_30 = 0, ebp_20 = 0, ebp_2c = 0, ebp_1c = 0, ebp_28 = 0, ebp_18 = 0;
        for (int i = 0; i < 8; i++) {
            ///第一段
            if ((eax & 4) == 0) {
               
                ecx = esi ^ getInt(4, esi_c, 2) ^ getInt(1, esi_c, 4) ^ getInt(2, esi_c, 1) ^ getInt(3, esi_c, 3)
                        ^ getInt(2, esi_8, 1);
                ebp_34 = ecx;
                ebp_24 = ecx;
               
                edx = esi_8 ^ getInt(4, ebp_34, 1) ^ getInt(1, ebp_34, 3) ^ getInt(2, ebp_34, 2) ^ getInt(3, ebp_34, 4)
                        ^ getInt(3, esi_8, 3);
                ebp_30 = edx;
                ebp_20 = edx;
               
                edx = esi_c ^ getInt(4, ebp_30, 4) ^ getInt(1, ebp_30, 3) ^ getInt(2, ebp_30, 2) ^ getInt(3, ebp_30, 1)
                        ^ getInt(4, esi_8, 2);
                ebp_2c = edx;
                ebp_1c = edx;
               
                edx = esi_4 ^ getInt(4, ebp_2c, 3) ^ getInt(1, ebp_2c, 2) ^ getInt(2, ebp_2c, 4) ^ getInt(3, ebp_2c, 1)
                        ^ getInt(1, esi_8, 4);
                ebp_28 = edx;
                ebp_18 = edx;
               
            }
            if ((eax & 4) == 4) {
                ecx = ebp_2c ^ getInt(4, ebp_30, 2) ^ getInt(1, ebp_30, 4) ^ getInt(2, ebp_30, 1) ^ getInt(3, ebp_30, 3)
                        ^ getInt(2, ebp_34, 1);
                esi = ecx;
                ebp_24 = ecx;
               
                edx = ebp_34 ^ getInt(4, esi, 1) ^ getInt(1, esi, 3) ^ getInt(2, esi, 2) ^ getInt(3, esi, 4)
                        ^ getInt(3, ebp_34, 3);
                esi_4 = edx;
                ebp_20 = edx;
               
                edx = ebp_30 ^ getInt(4, esi_4, 4) ^ getInt(1, esi_4, 3) ^ getInt(2, esi_4, 2) ^ getInt(3, esi_4, 1)
                        ^ getInt(4, ebp_34, 2);
                esi_8 = edx;
                ebp_1c = edx;
               
                edx = ebp_28 ^ getInt(4, esi_8, 3) ^ getInt(1, esi_8, 2) ^ getInt(2, esi_8, 4) ^ getInt(3, esi_8, 1)
                        ^ getInt(1, ebp_34, 4);
                esi_c = edx;
                ebp_18 = edx;
               
               
            }
            // me , one small pig :(
            edx = eax & 0xC;
            //第二段
            if (edx == 0x0 || edx == 0xC) {
                result[eax + 0] = getInt(4, ebp_1c, 1) ^ getInt(1, ebp_1c, 2) ^ getInt(2, ebp_20, 4) ^ getInt(3, ebp_20, 3);
                result[eax + 1] = getInt(4, ebp_1c, 3) ^ getInt(1, ebp_1c, 4) ^ getInt(2, ebp_20, 2) ^ getInt(3, ebp_20, 1);
                result[eax + 2] = getInt(4, ebp_18, 1) ^ getInt(1, ebp_18, 2) ^ getInt(2, ebp_24, 4) ^ getInt(3, ebp_24, 3);
                result[eax + 3] = getInt(4, ebp_18, 3) ^ getInt(1, ebp_18, 4) ^ getInt(2, ebp_24, 2) ^ getInt(3, ebp_24, 1);
            }
            if (edx == 4 || edx == 8) {
                result[eax + 0] = getInt(4, ebp_24, 4) ^ getInt(1, ebp_24, 3) ^ getInt(2, ebp_18, 1) ^ getInt(3, ebp_18, 2);
                result[eax + 1] = getInt(4, ebp_24, 2) ^ getInt(1, ebp_24, 1) ^ getInt(2, ebp_18, 3) ^ getInt(3, ebp_18, 4);
                result[eax + 2] = getInt(4, ebp_20, 4) ^ getInt(1, ebp_20, 3) ^ getInt(2, ebp_1c, 1) ^ getInt(3, ebp_1c, 2);
                result[eax + 3] = getInt(4, ebp_20, 2) ^ getInt(1, ebp_20, 1) ^ getInt(2, ebp_1c, 3) ^ getInt(3, ebp_1c, 4);
            }
            //第三段
            if (edx == 0) {
                result[eax + 0] ^= getInt(4, ebp_34, 3);
                result[eax + 1] ^= getInt(1, ebp_30, 3);
                result[eax + 2] ^= getInt(2, ebp_2c, 2);
                result[eax + 3] ^= getInt(3, ebp_28, 1);
            } else if (edx == 0x4) {
                result[eax + 0] ^= getInt(4, esi_8, 1);
                result[eax + 1] ^= getInt(1, esi_c, 2);
                result[eax + 2] ^= getInt(2, esi, 4);
                result[eax + 3] ^= getInt(3, esi_4, 4);
            } else if (edx == 0x8) {
                result[eax + 0] ^= getInt(4, ebp_2c, 2);
                result[eax + 1] ^= getInt(1, ebp_28, 1);
                result[eax + 2] ^= getInt(2, ebp_34, 3);
                result[eax + 3] ^= getInt(3, ebp_30, 3);
            } else if (edx == 0xC) {
                result[eax + 0] ^= getInt(4, esi, 4);
                result[eax + 1] ^= getInt(1, esi_4, 4);
                result[eax + 2] ^= getInt(2, esi_8, 1);
                result[eax + 3] ^= getInt(3, esi_c, 2);
            }
           
            if (eax >= 0x10) {
                for (int k = 0; k < 4; k++) {
                    result[eax + k] &= 0x1F;
                }
            }
            
            eax += 4;
           
        }
      
        return result;
    }

  这个运算过后,就可以得到一个Map[32];

================= WebCam.004D60EC ==C== ===============================

004D60EC   /$  5>push    ebx
004D60ED   |.  5>push    esi
004D60EE   |.  5>push    edi
004D60EF   |.  5>push    ebp
004D60F0   |.  8>add     esp, -0C
004D60F3   |.  8>mov     dword ptr ss:[esp], ecx
004D60F6   |.  8>mov     ebp, edx
004D60F8   |.  8>mov     ebx, eax
004D60FA   |.  8>mov     esi, dword ptr ds:[6669D0]      ;  WebCam.0065FC84
004D6100   |.  8>mov     edi, dword ptr ds:[666A84]      ;  WebCam.0065F484
004D6106   |.  8>lea     edx, dword ptr ss:[esp+8]
004D610A   |.  8>mov     eax, ebp
004D610C   |.  B>mov     ecx, 4
004D6111   |.  E>call    WebCam.004029DC
004D6116   |.  8>lea     edx, dword ptr ss:[esp+4]
004D611A   |.  8>mov     eax, ebp
004D611C   |.  8>add     eax, 4
004D611F   |.  B>mov     ecx, 4
004D6124   |.  E>call    WebCam.004029DC
004D6129   |.  8>mov     eax, dword ptr ss:[esp+4]
004D612D   |.  C>shr     eax, 18
004D6130   |.  8>mov     edx, dword ptr ss:[esp+4]
004D6134   |.  C>shr     edx, 8
004D6137   |.  8>and     edx, 0FF00
004D613D   |.  0>or      eax, edx
004D613F   |.  8>mov     edx, dword ptr ss:[esp+4]
004D6143   |.  C>shl     edx, 8
004D6146   |.  8>and     edx, 0FF0000
004D614C   |.  0>or      eax, edx
004D614E   |.  8>mov     edx, dword ptr ss:[esp+4]
004D6152   |.  C>shl     edx, 18
004D6155   |.  0>or      eax, edx                        ;  试炼码在1-F之间直观
004D6157   |.  8>mov     dword ptr ss:[esp+4], eax       ;  [esp+4]试炼码前8位
004D615B   |.  8>mov     eax, dword ptr ss:[esp+8]
004D615F   |.  C>shr     eax, 18
004D6162   |.  8>mov     edx, dword ptr ss:[esp+8]
004D6166   |.  C>shr     edx, 8
004D6169   |.  8>and     edx, 0FF00
004D616F   |.  0>or      eax, edx
004D6171   |.  8>mov     edx, dword ptr ss:[esp+8]
004D6175   |.  C>shl     edx, 8
004D6178   |.  8>and     edx, 0FF0000
004D617E   |.  0>or      eax, edx
004D6180   |.  8>mov     edx, dword ptr ss:[esp+8]
004D6184   |.  C>shl     edx, 18
004D6187   |.  0>or      eax, edx
004D6189   |.  8>mov     dword ptr ss:[esp+8], eax       ;  [esp+4]试炼码后8位
004D618D   |.  8>cmp     dword ptr ds:[ebx+90], 0C
004D6194   |.  0>jle     WebCam.004D62D6
004D619A   |.  8>mov     edx, dword ptr ds:[ebx+8C]      ;  没进来过?
004D61A0   |.  8>mov     eax, dword ptr ds:[ebx+4C]
004D61A3   |.  0>add     eax, dword ptr ss:[esp+4]
004D61A7   |.  E>call    WebCam.004D3DC8
004D61AC   |.  8>mov     edx, eax
004D61AE   |.  C>shr     edx, 18
004D61B1   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D61B4   |.  8>mov     ecx, eax
004D61B6   |.  C>shr     ecx, 10
004D61B9   |.  8>and     ecx, 0FF
004D61BF   |.  3>xor     edx, dword ptr ds:[edi+ecx*4]
004D61C2   |.  8>mov     ecx, eax
004D61C4   |.  C>shr     ecx, 8
004D61C7   |.  8>and     ecx, 0FF
004D61CD   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D61D3   |.  2>sub     edx, dword ptr ss:[ebp+ecx*4]
004D61D7   |.  2>and     eax, 0FF
004D61DC   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D61E2   |.  0>add     edx, dword ptr ds:[ecx+eax*4]
004D61E5   |.  3>xor     dword ptr ss:[esp+8], edx
004D61E9   |.  8>mov     edx, dword ptr ds:[ebx+88]
004D61EF   |.  8>mov     eax, dword ptr ds:[ebx+48]
004D61F2   |.  2>sub     eax, dword ptr ss:[esp+8]
004D61F6   |.  E>call    WebCam.004D3DC8
004D61FB   |.  8>mov     edx, eax
004D61FD   |.  C>shr     edx, 18
004D6200   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D6203   |.  8>mov     ecx, eax
004D6205   |.  C>shr     ecx, 10
004D6208   |.  8>and     ecx, 0FF
004D620E   |.  0>add     edx, dword ptr ds:[edi+ecx*4]
004D6211   |.  8>mov     ecx, eax
004D6213   |.  C>shr     ecx, 8
004D6216   |.  8>and     ecx, 0FF
004D621C   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D6222   |.  3>xor     edx, dword ptr ss:[ebp+ecx*4]
004D6226   |.  2>and     eax, 0FF
004D622B   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D6231   |.  2>sub     edx, dword ptr ds:[ecx+eax*4]
004D6234   |.  3>xor     dword ptr ss:[esp+4], edx
004D6238   |.  8>mov     edx, dword ptr ds:[ebx+84]
004D623E   |.  8>mov     eax, dword ptr ds:[ebx+44]
004D6241   |.  3>xor     eax, dword ptr ss:[esp+4]
004D6245   |.  E>call    WebCam.004D3DC8
004D624A   |.  8>mov     edx, eax
004D624C   |.  C>shr     edx, 18
004D624F   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D6252   |.  8>mov     ecx, eax
004D6254   |.  C>shr     ecx, 10
004D6257   |.  8>and     ecx, 0FF
004D625D   |.  2>sub     edx, dword ptr ds:[edi+ecx*4]
004D6260   |.  8>mov     ecx, eax
004D6262   |.  C>shr     ecx, 8
004D6265   |.  8>and     ecx, 0FF
004D626B   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D6271   |.  0>add     edx, dword ptr ss:[ebp+ecx*4]
004D6275   |.  2>and     eax, 0FF
004D627A   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D6280   |.  3>xor     edx, dword ptr ds:[ecx+eax*4]
004D6283   |.  3>xor     dword ptr ss:[esp+8], edx
004D6287   |.  8>mov     edx, dword ptr ds:[ebx+80]
004D628D   |.  8>mov     eax, dword ptr ds:[ebx+40]
004D6290   |.  0>add     eax, dword ptr ss:[esp+8]
004D6294   |.  E>call    WebCam.004D3DC8
004D6299   |.  8>mov     edx, eax
004D629B   |.  C>shr     edx, 18
004D629E   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D62A1   |.  8>mov     ecx, eax
004D62A3   |.  C>shr     ecx, 10
004D62A6   |.  8>and     ecx, 0FF
004D62AC   |.  3>xor     edx, dword ptr ds:[edi+ecx*4]
004D62AF   |.  8>mov     ecx, eax
004D62B1   |.  C>shr     ecx, 8
004D62B4   |.  8>and     ecx, 0FF
004D62BA   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D62C0   |.  2>sub     edx, dword ptr ss:[ebp+ecx*4]
004D62C4   |.  2>and     eax, 0FF
004D62C9   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D62CF   |.  0>add     edx, dword ptr ds:[ecx+eax*4]
004D62D2   |.  3>xor     dword ptr ss:[esp+4], edx
004D62D6   |>  8>mov     edx, dword ptr ds:[ebx+7C]
004D62D9   |.  8>mov     eax, dword ptr ds:[ebx+3C]
004D62DC   |.  2>sub     eax, dword ptr ss:[esp+4]       ;  user2
004D62E0   |.  E>call    WebCam.004D3DC8
004D62E5   |.  8>mov     edx, eax
004D62E7   |.  C>shr     edx, 18                         ;  1
004D62EA   |.  8>mov     edx, dword ptr ds:[esi+edx*4]   ;  7
004D62ED   |.  8>mov     ecx, eax
004D62EF   |.  C>shr     ecx, 10                         ;  2
004D62F2   |.  8>and     ecx, 0FF
004D62F8   |.  0>add     edx, dword ptr ds:[edi+ecx*4]   ;  5
004D62FB   |.  8>mov     ecx, eax
004D62FD   |.  C>shr     ecx, 8                          ;  3
004D6300   |.  8>and     ecx, 0FF
004D6306   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D630C   |.  3>xor     edx, dword ptr ss:[ebp+ecx*4]   ;  6
004D6310   |.  2>and     eax, 0FF                        ;  4
004D6315   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D631B   |.  2>sub     edx, dword ptr ds:[ecx+eax*4]   ;  8
004D631E   |.  3>xor     dword ptr ss:[esp+8], edx
004D6322   |.  8>mov     edx, dword ptr ds:[ebx+78]
004D6325   |.  8>mov     eax, dword ptr ds:[ebx+38]
004D6328   |.  3>xor     eax, dword ptr ss:[esp+8]       ;  user1
004D632C   |.  E>call    WebCam.004D3DC8
004D6331   |.  8>mov     edx, eax
004D6333   |.  C>shr     edx, 18
004D6336   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D6339   |.  8>mov     ecx, eax
004D633B   |.  C>shr     ecx, 10
004D633E   |.  8>and     ecx, 0FF
004D6344   |.  2>sub     edx, dword ptr ds:[edi+ecx*4]
004D6347   |.  8>mov     ecx, eax
004D6349   |.  C>shr     ecx, 8
004D634C   |.  8>and     ecx, 0FF
004D6352   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D6358   |.  0>add     edx, dword ptr ss:[ebp+ecx*4]
004D635C   |.  2>and     eax, 0FF
004D6361   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D6367   |.  3>xor     edx, dword ptr ds:[ecx+eax*4]
004D636A   |.  3>xor     dword ptr ss:[esp+4], edx
004D636E   |.  8>mov     edx, dword ptr ds:[ebx+74]
004D6371   |.  8>mov     eax, dword ptr ds:[ebx+34]
004D6374   |.  0>add     eax, dword ptr ss:[esp+4]
004D6378   |.  E>call    WebCam.004D3DC8
004D637D   |.  8>mov     edx, eax
004D637F   |.  C>shr     edx, 18
004D6382   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D6385   |.  8>mov     ecx, eax
004D6387   |.  C>shr     ecx, 10
004D638A   |.  8>and     ecx, 0FF
004D6390   |.  3>xor     edx, dword ptr ds:[edi+ecx*4]
004D6393   |.  8>mov     ecx, eax
004D6395   |.  C>shr     ecx, 8
004D6398   |.  8>and     ecx, 0FF
004D639E   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D63A4   |.  2>sub     edx, dword ptr ss:[ebp+ecx*4]
004D63A8   |.  2>and     eax, 0FF
004D63AD   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D63B3   |.  0>add     edx, dword ptr ds:[ecx+eax*4]
004D63B6   |.  3>xor     dword ptr ss:[esp+8], edx
004D63BA   |.  8>mov     edx, dword ptr ds:[ebx+70]
004D63BD   |.  8>mov     eax, dword ptr ds:[ebx+30]
004D63C0   |.  2>sub     eax, dword ptr ss:[esp+8]
004D63C4   |.  E>call    WebCam.004D3DC8
004D63C9   |.  8>mov     edx, eax
004D63CB   |.  C>shr     edx, 18
004D63CE   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D63D1   |.  8>mov     ecx, eax
004D63D3   |.  C>shr     ecx, 10
004D63D6   |.  8>and     ecx, 0FF
004D63DC   |.  0>add     edx, dword ptr ds:[edi+ecx*4]
004D63DF   |.  8>mov     ecx, eax
004D63E1   |.  C>shr     ecx, 8
004D63E4   |.  8>and     ecx, 0FF
004D63EA   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D63F0   |.  3>xor     edx, dword ptr ss:[ebp+ecx*4]
004D63F4   |.  2>and     eax, 0FF
004D63F9   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D63FF   |.  2>sub     edx, dword ptr ds:[ecx+eax*4]
004D6402   |.  3>xor     dword ptr ss:[esp+4], edx
004D6406   |.  8>mov     edx, dword ptr ds:[ebx+6C]
004D6409   |.  8>mov     eax, dword ptr ds:[ebx+2C]
004D640C   |.  3>xor     eax, dword ptr ss:[esp+4]
004D6410   |.  E>call    WebCam.004D3DC8
004D6415   |.  8>mov     edx, eax
004D6417   |.  C>shr     edx, 18
004D641A   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D641D   |.  8>mov     ecx, eax
004D641F   |.  C>shr     ecx, 10
004D6422   |.  8>and     ecx, 0FF
004D6428   |.  2>sub     edx, dword ptr ds:[edi+ecx*4]
004D642B   |.  8>mov     ecx, eax
004D642D   |.  C>shr     ecx, 8
004D6430   |.  8>and     ecx, 0FF
004D6436   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D643C   |.  0>add     edx, dword ptr ss:[ebp+ecx*4]
004D6440   |.  2>and     eax, 0FF
004D6445   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D644B   |.  3>xor     edx, dword ptr ds:[ecx+eax*4]
004D644E   |.  3>xor     dword ptr ss:[esp+8], edx
004D6452   |.  8>mov     edx, dword ptr ds:[ebx+68]
004D6455   |.  8>mov     eax, dword ptr ds:[ebx+28]
004D6458   |.  0>add     eax, dword ptr ss:[esp+8]
004D645C   |.  E>call    WebCam.004D3DC8
004D6461   |.  8>mov     edx, eax
004D6463   |.  C>shr     edx, 18
004D6466   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D6469   |.  8>mov     ecx, eax
004D646B   |.  C>shr     ecx, 10
004D646E   |.  8>and     ecx, 0FF
004D6474   |.  3>xor     edx, dword ptr ds:[edi+ecx*4]
004D6477   |.  8>mov     ecx, eax
004D6479   |.  C>shr     ecx, 8
004D647C   |.  8>and     ecx, 0FF
004D6482   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D6488   |.  2>sub     edx, dword ptr ss:[ebp+ecx*4]
004D648C   |.  2>and     eax, 0FF
004D6491   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D6497   |.  0>add     edx, dword ptr ds:[ecx+eax*4]
004D649A   |.  3>xor     dword ptr ss:[esp+4], edx
004D649E   |.  8>mov     edx, dword ptr ds:[ebx+64]
004D64A1   |.  8>mov     eax, dword ptr ds:[ebx+24]
004D64A4   |.  2>sub     eax, dword ptr ss:[esp+4]
004D64A8   |.  E>call    WebCam.004D3DC8
004D64AD   |.  8>mov     edx, eax
004D64AF   |.  C>shr     edx, 18
004D64B2   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D64B5   |.  8>mov     ecx, eax
004D64B7   |.  C>shr     ecx, 10
004D64BA   |.  8>and     ecx, 0FF
004D64C0   |.  0>add     edx, dword ptr ds:[edi+ecx*4]
004D64C3   |.  8>mov     ecx, eax
004D64C5   |.  C>shr     ecx, 8
004D64C8   |.  8>and     ecx, 0FF
004D64CE   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D64D4   |.  3>xor     edx, dword ptr ss:[ebp+ecx*4]
004D64D8   |.  2>and     eax, 0FF
004D64DD   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D64E3   |.  2>sub     edx, dword ptr ds:[ecx+eax*4]
004D64E6   |.  3>xor     dword ptr ss:[esp+8], edx
004D64EA   |.  8>mov     edx, dword ptr ds:[ebx+60]
004D64ED   |.  8>mov     eax, dword ptr ds:[ebx+20]
004D64F0   |.  3>xor     eax, dword ptr ss:[esp+8]
004D64F4   |.  E>call    WebCam.004D3DC8
004D64F9   |.  8>mov     edx, eax
004D64FB   |.  C>shr     edx, 18
004D64FE   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D6501   |.  8>mov     ecx, eax
004D6503   |.  C>shr     ecx, 10
004D6506   |.  8>and     ecx, 0FF
004D650C   |.  2>sub     edx, dword ptr ds:[edi+ecx*4]
004D650F   |.  8>mov     ecx, eax
004D6511   |.  C>shr     ecx, 8
004D6514   |.  8>and     ecx, 0FF
004D651A   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D6520   |.  0>add     edx, dword ptr ss:[ebp+ecx*4]
004D6524   |.  2>and     eax, 0FF
004D6529   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D652F   |.  3>xor     edx, dword ptr ds:[ecx+eax*4]
004D6532   |.  3>xor     dword ptr ss:[esp+4], edx
004D6536   |.  8>mov     edx, dword ptr ds:[ebx+5C]
004D6539   |.  8>mov     eax, dword ptr ds:[ebx+1C]
004D653C   |.  0>add     eax, dword ptr ss:[esp+4]
004D6540   |.  E>call    WebCam.004D3DC8
004D6545   |.  8>mov     edx, eax
004D6547   |.  C>shr     edx, 18
004D654A   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D654D   |.  8>mov     ecx, eax
004D654F   |.  C>shr     ecx, 10
004D6552   |.  8>and     ecx, 0FF
004D6558   |.  3>xor     edx, dword ptr ds:[edi+ecx*4]
004D655B   |.  8>mov     ecx, eax
004D655D   |.  C>shr     ecx, 8
004D6560   |.  8>and     ecx, 0FF
004D6566   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D656C   |.  2>sub     edx, dword ptr ss:[ebp+ecx*4]
004D6570   |.  2>and     eax, 0FF
004D6575   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D657B   |.  0>add     edx, dword ptr ds:[ecx+eax*4]
004D657E   |.  3>xor     dword ptr ss:[esp+8], edx
004D6582   |.  8>mov     edx, dword ptr ds:[ebx+58]
004D6585   |.  8>mov     eax, dword ptr ds:[ebx+18]
004D6588   |.  2>sub     eax, dword ptr ss:[esp+8]
004D658C   |.  E>call    WebCam.004D3DC8
004D6591   |.  8>mov     edx, eax
004D6593   |.  C>shr     edx, 18
004D6596   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D6599   |.  8>mov     ecx, eax
004D659B   |.  C>shr     ecx, 10
004D659E   |.  8>and     ecx, 0FF
004D65A4   |.  0>add     edx, dword ptr ds:[edi+ecx*4]
004D65A7   |.  8>mov     ecx, eax
004D65A9   |.  C>shr     ecx, 8
004D65AC   |.  8>and     ecx, 0FF
004D65B2   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D65B8   |.  3>xor     edx, dword ptr ss:[ebp+ecx*4]
004D65BC   |.  2>and     eax, 0FF
004D65C1   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D65C7   |.  2>sub     edx, dword ptr ds:[ecx+eax*4]
004D65CA   |.  3>xor     dword ptr ss:[esp+4], edx
004D65CE   |.  8>mov     edx, dword ptr ds:[ebx+54]
004D65D1   |.  8>mov     eax, dword ptr ds:[ebx+14]
004D65D4   |.  3>xor     eax, dword ptr ss:[esp+4]
004D65D8   |.  E>call    WebCam.004D3DC8
004D65DD   |.  8>mov     edx, eax
004D65DF   |.  C>shr     edx, 18
004D65E2   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D65E5   |.  8>mov     ecx, eax
004D65E7   |.  C>shr     ecx, 10
004D65EA   |.  8>and     ecx, 0FF
004D65F0   |.  2>sub     edx, dword ptr ds:[edi+ecx*4]
004D65F3   |.  8>mov     ecx, eax
004D65F5   |.  C>shr     ecx, 8
004D65F8   |.  8>and     ecx, 0FF
004D65FE   |.  8>mov     ebp, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D6604   |.  0>add     edx, dword ptr ss:[ebp+ecx*4]
004D6608   |.  2>and     eax, 0FF
004D660D   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D6613   |.  3>xor     edx, dword ptr ds:[ecx+eax*4]
004D6616   |.  3>xor     dword ptr ss:[esp+8], edx
004D661A   |.  8>mov     edx, dword ptr ds:[ebx+50]
004D661D   |.  8>mov     eax, dword ptr ds:[ebx+10]
004D6620   |.  0>add     eax, dword ptr ss:[esp+8]
004D6624   |.  E>call    WebCam.004D3DC8
004D6629   |.  8>mov     edx, eax
004D662B   |.  C>shr     edx, 18
004D662E   |.  8>mov     edx, dword ptr ds:[esi+edx*4]
004D6631   |.  8>mov     ecx, eax
004D6633   |.  C>shr     ecx, 10
004D6636   |.  8>and     ecx, 0FF
004D663C   |.  3>xor     edx, dword ptr ds:[edi+ecx*4]
004D663F   |.  8>mov     ecx, eax
004D6641   |.  C>shr     ecx, 8
004D6644   |.  8>and     ecx, 0FF
004D664A   |.  8>mov     ebx, dword ptr ds:[6664F8]      ;  WebCam.0065F884
004D6650   |.  2>sub     edx, dword ptr ds:[ebx+ecx*4]
004D6653   |.  2>and     eax, 0FF
004D6658   |.  8>mov     ecx, dword ptr ds:[6660C8]      ;  WebCam.00660084
004D665E   |.  0>add     edx, dword ptr ds:[ecx+eax*4]
004D6661   |.  3>xor     dword ptr ss:[esp+4], edx       ;  运算完毕
004D6665   |.  8>mov     eax, dword ptr ss:[esp+4]
004D6669   |.  C>shr     eax, 18
004D666C   |.  8>mov     edx, dword ptr ss:[esp+4]
004D6670   |.  C>shr     edx, 8
004D6673   |.  8>and     edx, 0FF00
004D6679   |.  0>or      eax, edx
004D667B   |.  8>mov     edx, dword ptr ss:[esp+4]
004D667F   |.  C>shl     edx, 8
004D6682   |.  8>and     edx, 0FF0000
004D6688   |.  0>or      eax, edx
004D668A   |.  8>mov     edx, dword ptr ss:[esp+4]
004D668E   |.  C>shl     edx, 18
004D6691   |.  0>or      eax, edx
004D6693   |.  8>mov     dword ptr ss:[esp+4], eax
004D6697   |.  8>mov     eax, dword ptr ss:[esp+8]
004D669B   |.  C>shr     eax, 18
004D669E   |.  8>mov     edx, dword ptr ss:[esp+8]
004D66A2   |.  C>shr     edx, 8
004D66A5   |.  8>and     edx, 0FF00
004D66AB   |.  0>or      eax, edx
004D66AD   |.  8>mov     edx, dword ptr ss:[esp+8]
004D66B1   |.  C>shl     edx, 8
004D66B4   |.  8>and     edx, 0FF0000
004D66BA   |.  0>or      eax, edx
004D66BC   |.  8>mov     edx, dword ptr ss:[esp+8]
004D66C0   |.  C>shl     edx, 18
004D66C3   |.  0>or      eax, edx
004D66C5   |.  8>mov     dword ptr ss:[esp+8], eax
004D66C9   |.  8>mov     edx, dword ptr ss:[esp]         ;  翻转一下
004D66CC   |.  8>lea     eax, dword ptr ss:[esp+4]
004D66D0   |.  B>mov     ecx, 4
004D66D5   |.  E>call    WebCam.004029DC
004D66DA   |.  8>mov     edx, dword ptr ss:[esp]
004D66DD   |.  8>add     edx, 4
004D66E0   |.  8>lea     eax, dword ptr ss:[esp+8]
004D66E4   |.  B>mov     ecx, 4
004D66E9   |.  E>call    WebCam.004029DC
004D66EE   |.  8>add     esp, 0C
004D66F1   |.  5>pop     ebp
004D66F2   |.  5>pop     edi
004D66F3   |.  5>pop     esi
004D66F4   |.  5>pop     ebx
004D66F5   \.  C>ret

    static private int getInt(int s, int x, int p) {
        int tag = 0;
        int k = 1;
        int format = format2(x, p) * 4;
        for (int j = 0; j < 4; j++) {
            switch (s) {
            case 5:
                tag = tag + mapOther.key_edi[format + j] * k;
                break;
            case 6:
                tag = tag + mapOther.key_ebp[format + j] * k;
                break;
            case 7:
                tag = tag + mapOther.key_esi[format + j] * k;
                break;
            case 8:
                tag = tag + mapOther.key_ecx[format + j] * k;
                break;
            }
            k *= 0x100;
        }
        return tag;
    }

mapOther.key_edi[]
mapOther.key_ebp[]
mapOther.key_esi[]
mapOther.key_ecx[]
这四个map是从程序中找到的一段数据,当做字典用了

    static public int math_end(int[] into, int user1, int user2) { <===== 注册码的两段,每段8位,
        
        int[] result = into; <===== 这就是先前得到的 Map[32] ;
        int edx, eax;
        int k = 0;
        for (int i = 0; i < 4; i++) {
            eax = rol(result[11 - k] - user2, result[27 - k]);
            user1 ^= ((getInt(7, eax, 1) + getInt(5, eax, 2)) ^ getInt(6, eax, 3)) - getInt(8, eax, 4);
            
            eax = rol(result[10 - k] ^ user1, result[26 - k]);
            user2 ^= ((getInt(7, eax, 1) - getInt(5, eax, 2)) + getInt(6, eax, 3)) ^ getInt(8, eax, 4);
            
            eax = rol(result[9 - k] + user2, result[25 - k]);
            user1 ^= ((getInt(7, eax, 1) ^ getInt(5, eax, 2)) - getInt(6, eax, 3)) + getInt(8, eax, 4);
           
            k += 3;
            int tmp;
            tmp = user1;
            user1 = user2;
            user2 = tmp;
        }
     
        return user2;  <===== 我们将得到一个 keyV,如果keyV = key1 则认证通过 ,key1 是最前面用户名得到的
    }

也就是说 如果 key1=math_end(Map[32],ser1,ser2) 则认证通过,key1和Map[32]是已经知道的,现在要获得ser1和ser2

所以我无法得到注册码,有兴趣大家帮我看看如何算出注册码吧,密码学? 爆破就不谈了

附件:maps.rar ===============================================================

结束了,到这里终于意识到有些事真的是无法挽回的,我需要重新开始新的生活

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
其实把算法放服务端,我还是比较推荐的。
2005-11-7 22:49
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
3
看标题肯定不少人怀疑是变相求破解的.其实仔细一看原来是失恋了.再仔细一看竟然是个不错的破文.再仔细一看竟然太长不愿看.....

兄弟好好生活吧....
2005-11-8 00:50
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
2005-11-8 02:53
0
雪    币: 313
活跃值: (250)
能力值: ( LV9,RANK:650 )
在线值:
发帖
回帖
粉丝
5
注重算法分析,分析的精要也支持
2005-11-8 08:53
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
像AES
2005-11-8 09:11
0
游客
登录 | 注册 方可回帖
返回
//