首页
社区
课程
招聘
[求助]ExTea算法汇编代码求得KEY数字
发表于: 2007-4-3 17:38 5552

[求助]ExTea算法汇编代码求得KEY数字

2007-4-3 17:38
5552
a = k[0], b = k[1], c = k[2], d = k[3],
就这四个数。如何在汇码代码中知道是哪一行去获取这四个数的值了。
我感觉有点像
0047785E 8B33         mov esi, dword ptr [ebx]
从连续内存中刚好取得四个数:
  ntkey[0] = 0x2F914650;
  ntkey[1] = 0x6A9F4695;
  ntkey[2] = 0x7ED316E2;
  ntkey[3] = 0x5483907A;

但是用这四个数做KEY,加密后和程序加密的结果还是不同!!!!!
麻烦哪位老大帮忙指点了。

搜到的C代码,不知道对不对:
void encipher( unsigned long * const v, const unsigned long * const k )
{
    register unsigned long y = v[0], z = v[1], sum = 0, delta = 0x9E3779B9,
        a = k[0], b = k[1], c = k[2], d = k[3], n = 32;
    while ( n-- > 0 )
    {
        sum += delta;
        y += ( z << 4 ) + a ^ z + sum ^ ( z >> 5 ) + b;
        z += ( y << 4 ) + c ^ y + sum ^ ( y >> 5 ) + d;
    }
    v[0] = y;
    v[1] = z;
}

* Referenced by a CALL at Addresses:
|:0040D2F4   , :0046A9C7   , :004C50F1   
|
:00477800 83EC08                  sub esp, 00000008
:00477803 53                      push ebx
:00477804 56                      push esi
:00477805 57                      push edi
:00477806 8B7C2424                mov edi, dword ptr [esp+24]
:0047780A 8BC7                    mov eax, edi
:0047780C 2507000080              and eax, 80000007
:00477811 7905                    jns 00477818
:00477813 48                      dec eax
:00477814 83C8F8                  or eax, FFFFFFF8
:00477817 40                      inc eax

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00477811(C)
|
:00477818 8B54241C                mov edx, dword ptr [esp+1C]
:0047781C 8BF7                    mov esi, edi
:0047781E 7421                    je 00477841
:00477820 2BF0                    sub esi, eax
:00477822 33C0                    xor eax, eax
:00477824 83C608                  add esi, 00000008
:00477827 8BCE                    mov ecx, esi
:00477829 89742410                mov dword ptr [esp+10], esi
:0047782D 2BCF                    sub ecx, edi
:0047782F 03FA                    add edi, edx
:00477831 8BD9                    mov ebx, ecx
:00477833 C1E902                  shr ecx, 02
:00477836 F3                      repz
:00477837 AB                      stosd
:00477838 8BCB                    mov ecx, ebx
:0047783A 83E103                  and ecx, 00000003
:0047783D F3                      repz
:0047783E AA                      stosb
:0047783F EB04                    jmp 00477845

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047781E(C)
|
:00477841 89742410                mov dword ptr [esp+10], esi

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047783F(U)
|
:00477845 8BC6                    mov eax, esi
:00477847 C1F803                  sar eax, 03
:0047784A 85C0                    test eax, eax
:0047784C 0F8E97060000            jle 00477EE9
:00477852 8B5C2420                mov ebx, dword ptr [esp+20]
:00477856 55                      push ebp
:00477857 89442410                mov dword ptr [esp+10], eax

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00477ED7(C)
|
:0047785B 8B4A04                  mov ecx, dword ptr [edx+04]
:0047785E 8B33                    mov esi, dword ptr [ebx]
:00477860 8BC1                    mov eax, ecx
:00477862 8BF9                    mov edi, ecx
:00477864 C1E805                  shr eax, 05
:00477867 C1E704                  shl edi, 04
:0047786A 33C7                    xor eax, edi
:0047786C 8B3A                    mov edi, dword ptr [edx]
:0047786E 03C1                    add eax, ecx
:00477870 8B530C                  mov edx, dword ptr [ebx+0C]
:00477873 33C6                    xor eax, esi
:00477875 81C2B979379E            add edx, 9E3779B9
:0047787B 03C7                    add eax, edi
:0047787D 8BF8                    mov edi, eax
:0047787F 8BE8                    mov ebp, eax
:00477881 C1EF05                  shr edi, 05
:00477884 C1E504                  shl ebp, 04
:00477887 33FD                    xor edi, ebp
:00477889 03F8                    add edi, eax
:0047788B 33FA                    xor edi, edx
:0047788D 8B5304                  mov edx, dword ptr [ebx+04]
:00477890 03CF                    add ecx, edi
:00477892 8BF9                    mov edi, ecx
:00477894 8BE9                    mov ebp, ecx
:00477896 C1EF05                  shr edi, 05
:00477899 C1E504                  shl ebp, 04
:0047789C 33FD                    xor edi, ebp
:0047789E 8DAAB979379E            lea ebp, dword ptr [edx+9E3779B9]
:004778A4 03F9                    add edi, ecx
:004778A6 33FD                    xor edi, ebp
:004778A8 03C7                    add eax, edi
:004778AA 8B7B08                  mov edi, dword ptr [ebx+08]
:004778AD 8BE8                    mov ebp, eax
:004778AF 8BD8                    mov ebx, eax
:004778B1 C1ED05                  shr ebp, 05
:004778B4 C1E304                  shl ebx, 04
:004778B7 33EB                    xor ebp, ebx
:004778B9 8D9F72F36E3C            lea ebx, dword ptr [edi+3C6EF372]
:004778BF 03E8                    add ebp, eax
:004778C1 33EB                    xor ebp, ebx
:004778C3 03CD                    add ecx, ebp
:004778C5 8BE9                    mov ebp, ecx
:004778C7 8BD9                    mov ebx, ecx
:004778C9 C1ED05                  shr ebp, 05
:004778CC C1E304                  shl ebx, 04
:004778CF 33EB                    xor ebp, ebx
:004778D1 8D9F72F36E3C            lea ebx, dword ptr [edi+3C6EF372]
:004778D7 03E9                    add ebp, ecx
:004778D9 33EB                    xor ebp, ebx
:004778DB 03C5                    add eax, ebp
:004778DD 8BD8                    mov ebx, eax
:004778DF 8BE8                    mov ebp, eax
:004778E1 C1EB05                  shr ebx, 05
:004778E4 C1E504                  shl ebp, 04
:004778E7 33DD                    xor ebx, ebp
:004778E9 8DAA2B6DA6DA            lea ebp, dword ptr [edx+DAA66D2B]
:004778EF 03D8                    add ebx, eax
:004778F1 33DD                    xor ebx, ebp
:004778F3 03CB                    add ecx, ebx
:004778F5 8BE9                    mov ebp, ecx
:004778F7 8BD9                    mov ebx, ecx
:004778F9 C1ED05                  shr ebp, 05
:004778FC C1E304                  shl ebx, 04
:004778FF 33EB                    xor ebp, ebx
:00477901 8B5C2424                mov ebx, dword ptr [esp+24]
:00477905 03E9                    add ebp, ecx
:00477907 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:0047790A 81C32B6DA6DA            add ebx, DAA66D2B
:00477910 33EB                    xor ebp, ebx
:00477912 03C5                    add eax, ebp
:00477914 8BE8                    mov ebp, eax
:00477916 8BD8                    mov ebx, eax
:00477918 C1ED05                  shr ebp, 05
:0047791B C1E304                  shl ebx, 04
:0047791E 33EB                    xor ebp, ebx
:00477920 8D9EE4E6DD78            lea ebx, dword ptr [esi+78DDE6E4]
:00477926 03E8                    add ebp, eax
:00477928 33EB                    xor ebp, ebx
:0047792A 03CD                    add ecx, ebp
:0047792C 8BE9                    mov ebp, ecx
:0047792E C1ED05                  shr ebp, 05
:00477931 8BD9                    mov ebx, ecx
:00477933 C1E304                  shl ebx, 04
:00477936 33EB                    xor ebp, ebx
:00477938 8D9EE4E6DD78            lea ebx, dword ptr [esi+78DDE6E4]
:0047793E 03E9                    add ebp, ecx
:00477940 33EB                    xor ebp, ebx
:00477942 03C5                    add eax, ebp
:00477944 8BD8                    mov ebx, eax
:00477946 8BE8                    mov ebp, eax
:00477948 C1EB05                  shr ebx, 05
:0047794B C1E504                  shl ebp, 04
:0047794E 33DD                    xor ebx, ebp
:00477950 8DAE9D601517            lea ebp, dword ptr [esi+1715609D]
:00477956 03D8                    add ebx, eax
:00477958 33DD                    xor ebx, ebp
:0047795A 03CB                    add ecx, ebx
:0047795C 8BD9                    mov ebx, ecx
:0047795E 8BE9                    mov ebp, ecx
:00477960 C1EB05                  shr ebx, 05
:00477963 C1E504                  shl ebp, 04
:00477966 33DD                    xor ebx, ebp
:00477968 8DAA9D601517            lea ebp, dword ptr [edx+1715609D]
:0047796E 03D9                    add ebx, ecx
:00477970 33DD                    xor ebx, ebp
:00477972 03C3                    add eax, ebx
:00477974 8BE8                    mov ebp, eax
:00477976 8BD8                    mov ebx, eax
:00477978 C1ED05                  shr ebp, 05
:0047797B C1E304                  shl ebx, 04
:0047797E 33EB                    xor ebp, ebx
:00477980 8B5C2424                mov ebx, dword ptr [esp+24]
:00477984 03E8                    add ebp, eax
:00477986 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477989 81C356DA4CB5            add ebx, B54CDA56
:0047798F 33EB                    xor ebp, ebx
:00477991 03CD                    add ecx, ebp
:00477993 8BD9                    mov ebx, ecx
:00477995 8BE9                    mov ebp, ecx
:00477997 C1EB05                  shr ebx, 05
:0047799A C1E504                  shl ebp, 04
:0047799D 33DD                    xor ebx, ebp
:0047799F 8DAF56DA4CB5            lea ebp, dword ptr [edi+B54CDA56]
:004779A5 03D9                    add ebx, ecx
:004779A7 33DD                    xor ebx, ebp
:004779A9 03C3                    add eax, ebx
:004779AB 8BD8                    mov ebx, eax
:004779AD 8BE8                    mov ebp, eax
:004779AF C1EB05                  shr ebx, 05
:004779B2 C1E504                  shl ebp, 04
:004779B5 33DD                    xor ebx, ebp
:004779B7 8DAF0F548453            lea ebp, dword ptr [edi+5384540F]
:004779BD 03D8                    add ebx, eax
:004779BF 33DD                    xor ebx, ebp
:004779C1 03CB                    add ecx, ebx
:004779C3 8BE9                    mov ebp, ecx
:004779C5 8BD9                    mov ebx, ecx
:004779C7 C1ED05                  shr ebp, 05
:004779CA C1E304                  shl ebx, 04
:004779CD 33EB                    xor ebp, ebx
:004779CF 8B5C2424                mov ebx, dword ptr [esp+24]
:004779D3 03E9                    add ebp, ecx
:004779D5 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:004779D8 81C30F548453            add ebx, 5384540F
:004779DE 33EB                    xor ebp, ebx
:004779E0 03C5                    add eax, ebp
:004779E2 8BD8                    mov ebx, eax
:004779E4 8BE8                    mov ebp, eax
:004779E6 C1EB05                  shr ebx, 05
:004779E9 C1E504                  shl ebp, 04
:004779EC 33DD                    xor ebx, ebp
:004779EE 8DAAC8CDBBF1            lea ebp, dword ptr [edx+F1BBCDC8]
:004779F4 03D8                    add ebx, eax
:004779F6 33DD                    xor ebx, ebp
:004779F8 03CB                    add ecx, ebx
:004779FA 8BD9                    mov ebx, ecx
:004779FC 8BE9                    mov ebp, ecx
:004779FE C1EB05                  shr ebx, 05
:00477A01 C1E504                  shl ebp, 04
:00477A04 33DD                    xor ebx, ebp
:00477A06 8DAEC8CDBBF1            lea ebp, dword ptr [esi+F1BBCDC8]
:00477A0C 03D9                    add ebx, ecx
:00477A0E 33DD                    xor ebx, ebp
:00477A10 03C3                    add eax, ebx
:00477A12 8BD8                    mov ebx, eax
:00477A14 8BE8                    mov ebp, eax
:00477A16 C1EB05                  shr ebx, 05
:00477A19 C1E504                  shl ebp, 04
:00477A1C 33DD                    xor ebx, ebp
:00477A1E 8DAE8147F38F            lea ebp, dword ptr [esi+8FF34781]
:00477A24 03D8                    add ebx, eax
:00477A26 33DD                    xor ebx, ebp
:00477A28 03CB                    add ecx, ebx
:00477A2A 8BD9                    mov ebx, ecx
:00477A2C 8BE9                    mov ebp, ecx
:00477A2E C1EB05                  shr ebx, 05
:00477A31 C1E504                  shl ebp, 04
:00477A34 33DD                    xor ebx, ebp
:00477A36 8DAA8147F38F            lea ebp, dword ptr [edx+8FF34781]
:00477A3C 03D9                    add ebx, ecx
:00477A3E 33DD                    xor ebx, ebp
:00477A40 03C3                    add eax, ebx
:00477A42 8BD8                    mov ebx, eax
:00477A44 8BE8                    mov ebp, eax
:00477A46 C1EB05                  shr ebx, 05
:00477A49 C1E504                  shl ebp, 04
:00477A4C 33DD                    xor ebx, ebp
:00477A4E 8DAE3AC12A2E            lea ebp, dword ptr [esi+2E2AC13A]
:00477A54 03D8                    add ebx, eax
:00477A56 33DD                    xor ebx, ebp
:00477A58 03CB                    add ecx, ebx
:00477A5A 8BD9                    mov ebx, ecx
:00477A5C 8BE9                    mov ebp, ecx
:00477A5E C1EB05                  shr ebx, 05
:00477A61 C1E504                  shl ebp, 04
:00477A64 33DD                    xor ebx, ebp
:00477A66 8DAF3AC12A2E            lea ebp, dword ptr [edi+2E2AC13A]
:00477A6C 03D9                    add ebx, ecx
:00477A6E 33DD                    xor ebx, ebp
:00477A70 03C3                    add eax, ebx
:00477A72 8B5C2424                mov ebx, dword ptr [esp+24]
:00477A76 8BE8                    mov ebp, eax
:00477A78 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477A7B 81C3F33A62CC            add ebx, CC623AF3
:00477A81 895C2428                mov dword ptr [esp+28], ebx
:00477A85 8BD8                    mov ebx, eax
:00477A87 C1EB05                  shr ebx, 05
:00477A8A C1E504                  shl ebp, 04
:00477A8D 33DD                    xor ebx, ebp
:00477A8F 8B6C2428                mov ebp, dword ptr [esp+28]
:00477A93 03D8                    add ebx, eax
:00477A95 33DD                    xor ebx, ebp
:00477A97 03CB                    add ecx, ebx
:00477A99 8BD9                    mov ebx, ecx
:00477A9B 8BE9                    mov ebp, ecx
:00477A9D C1EB05                  shr ebx, 05
:00477AA0 C1E504                  shl ebp, 04
:00477AA3 33DD                    xor ebx, ebp
:00477AA5 8B6C2428                mov ebp, dword ptr [esp+28]
:00477AA9 03D9                    add ebx, ecx
:00477AAB 33DD                    xor ebx, ebp
:00477AAD 03C3                    add eax, ebx
:00477AAF 8BD8                    mov ebx, eax
:00477AB1 8BE8                    mov ebp, eax
:00477AB3 C1EB05                  shr ebx, 05
:00477AB6 C1E504                  shl ebp, 04
:00477AB9 33DD                    xor ebx, ebp
:00477ABB 8DAFACB4996A            lea ebp, dword ptr [edi+6A99B4AC]
:00477AC1 03D8                    add ebx, eax
:00477AC3 33DD                    xor ebx, ebp
:00477AC5 03CB                    add ecx, ebx
:00477AC7 8BD9                    mov ebx, ecx
:00477AC9 8BE9                    mov ebp, ecx
:00477ACB C1EB05                  shr ebx, 05
:00477ACE C1E504                  shl ebp, 04
:00477AD1 33DD                    xor ebx, ebp
:00477AD3 8DAEACB4996A            lea ebp, dword ptr [esi+6A99B4AC]
:00477AD9 03D9                    add ebx, ecx
:00477ADB 33DD                    xor ebx, ebp
:00477ADD 03C3                    add eax, ebx
:00477ADF 8BE8                    mov ebp, eax
:00477AE1 8BD8                    mov ebx, eax
:00477AE3 C1ED05                  shr ebp, 05
:00477AE6 C1E304                  shl ebx, 04
:00477AE9 33EB                    xor ebp, ebx
:00477AEB 8D9A652ED108            lea ebx, dword ptr [edx+08D12E65]
:00477AF1 03E8                    add ebp, eax
:00477AF3 33EB                    xor ebp, ebx
:00477AF5 03CD                    add ecx, ebp
:00477AF7 8BE9                    mov ebp, ecx
:00477AF9 8BD9                    mov ebx, ecx
:00477AFB C1E304                  shl ebx, 04
:00477AFE C1ED05                  shr ebp, 05
:00477B01 33EB                    xor ebp, ebx
:00477B03 8D9A652ED108            lea ebx, dword ptr [edx+08D12E65]
:00477B09 03E9                    add ebp, ecx
:00477B0B 33EB                    xor ebp, ebx
:00477B0D 03C5                    add eax, ebp
:00477B0F 8BD8                    mov ebx, eax
:00477B11 8BE8                    mov ebp, eax
:00477B13 C1EB05                  shr ebx, 05
:00477B16 C1E504                  shl ebp, 04
:00477B19 33DD                    xor ebx, ebp
:00477B1B 8DAA1EA808A7            lea ebp, dword ptr [edx+A708A81E]
:00477B21 03D8                    add ebx, eax
:00477B23 33DD                    xor ebx, ebp
:00477B25 03CB                    add ecx, ebx
:00477B27 8BD9                    mov ebx, ecx
:00477B29 8BE9                    mov ebp, ecx
:00477B2B C1EB05                  shr ebx, 05
:00477B2E C1E504                  shl ebp, 04
:00477B31 33DD                    xor ebx, ebp
:00477B33 8DAF1EA808A7            lea ebp, dword ptr [edi+A708A81E]
:00477B39 03D9                    add ebx, ecx
:00477B3B 33DD                    xor ebx, ebp
:00477B3D 03C3                    add eax, ebx
:00477B3F 8BD8                    mov ebx, eax
:00477B41 8BE8                    mov ebp, eax
:00477B43 C1EB05                  shr ebx, 05
:00477B46 C1E504                  shl ebp, 04
:00477B49 33DD                    xor ebx, ebp
:00477B4B 8DAED7214045            lea ebp, dword ptr [esi+454021D7]
:00477B51 03D8                    add ebx, eax
:00477B53 33DD                    xor ebx, ebp
:00477B55 03CB                    add ecx, ebx
:00477B57 8BE9                    mov ebp, ecx
:00477B59 8BD9                    mov ebx, ecx
:00477B5B C1ED05                  shr ebp, 05
:00477B5E C1E304                  shl ebx, 04
:00477B61 33EB                    xor ebp, ebx
:00477B63 8B5C2424                mov ebx, dword ptr [esp+24]
:00477B67 03E9                    add ebp, ecx
:00477B69 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477B6C 81C3D7214045            add ebx, 454021D7
:00477B72 33EB                    xor ebp, ebx
:00477B74 03C5                    add eax, ebp
:00477B76 8BE8                    mov ebp, eax
:00477B78 8BD8                    mov ebx, eax
:00477B7A C1ED05                  shr ebp, 05
:00477B7D C1E304                  shl ebx, 04
:00477B80 33EB                    xor ebp, ebx
:00477B82 8B5C2424                mov ebx, dword ptr [esp+24]
:00477B86 03E8                    add ebp, eax
:00477B88 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477B8B 81C3909B77E3            add ebx, E3779B90
:00477B91 33EB                    xor ebp, ebx
:00477B93 03CD                    add ecx, ebp
:00477B95 8BD9                    mov ebx, ecx
:00477B97 8BE9                    mov ebp, ecx
:00477B99 C1EB05                  shr ebx, 05
:00477B9C C1E504                  shl ebp, 04
:00477B9F 33DD                    xor ebx, ebp
:00477BA1 8DAE909B77E3            lea ebp, dword ptr [esi+E3779B90]
:00477BA7 03D9                    add ebx, ecx
:00477BA9 33DD                    xor ebx, ebp
:00477BAB 03C3                    add eax, ebx
:00477BAD 8BD8                    mov ebx, eax
:00477BAF 8BE8                    mov ebp, eax
:00477BB1 C1EB05                  shr ebx, 05
:00477BB4 C1E504                  shl ebp, 04
:00477BB7 33DD                    xor ebx, ebp
:00477BB9 8DAF4915AF81            lea ebp, dword ptr [edi+81AF1549]
:00477BBF 03D8                    add ebx, eax
:00477BC1 33DD                    xor ebx, ebp
:00477BC3 03CB                    add ecx, ebx
:00477BC5 8BD9                    mov ebx, ecx
:00477BC7 8BE9                    mov ebp, ecx
:00477BC9 C1EB05                  shr ebx, 05
:00477BCC C1E504                  shl ebp, 04
:00477BCF 33DD                    xor ebx, ebp
:00477BD1 8DAA4915AF81            lea ebp, dword ptr [edx+81AF1549]
:00477BD7 03D9                    add ebx, ecx
:00477BD9 33DD                    xor ebx, ebp
:00477BDB 03C3                    add eax, ebx
:00477BDD 8BD8                    mov ebx, eax
:00477BDF 8BE8                    mov ebp, eax
:00477BE1 C1EB05                  shr ebx, 05
:00477BE4 C1E504                  shl ebp, 04
:00477BE7 33DD                    xor ebx, ebp
:00477BE9 8DAA028FE61F            lea ebp, dword ptr [edx+1FE68F02]
:00477BEF 03D8                    add ebx, eax
:00477BF1 33DD                    xor ebx, ebp
:00477BF3 03CB                    add ecx, ebx
:00477BF5 8BD9                    mov ebx, ecx
:00477BF7 8BE9                    mov ebp, ecx
:00477BF9 C1EB05                  shr ebx, 05
:00477BFC C1E504                  shl ebp, 04
:00477BFF 33DD                    xor ebx, ebp
:00477C01 8DAF028FE61F            lea ebp, dword ptr [edi+1FE68F02]
:00477C07 03D9                    add ebx, ecx
:00477C09 33DD                    xor ebx, ebp
:00477C0B 03C3                    add eax, ebx
:00477C0D 8BD8                    mov ebx, eax
:00477C0F 8BE8                    mov ebp, eax
:00477C11 C1EB05                  shr ebx, 05
:00477C14 C1E504                  shl ebp, 04
:00477C17 33DD                    xor ebx, ebp
:00477C19 8DAABB081EBE            lea ebp, dword ptr [edx+BE1E08BB]
:00477C1F 03D8                    add ebx, eax
:00477C21 33DD                    xor ebx, ebp
:00477C23 03CB                    add ecx, ebx
:00477C25 8BE9                    mov ebp, ecx
:00477C27 8BD9                    mov ebx, ecx
:00477C29 C1ED05                  shr ebp, 05
:00477C2C C1E304                  shl ebx, 04
:00477C2F 33EB                    xor ebp, ebx
:00477C31 8B5C2424                mov ebx, dword ptr [esp+24]
:00477C35 03E9                    add ebp, ecx
:00477C37 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477C3A 81C3BB081EBE            add ebx, BE1E08BB
:00477C40 33EB                    xor ebp, ebx
:00477C42 03C5                    add eax, ebp
:00477C44 8BE8                    mov ebp, eax
:00477C46 8BD8                    mov ebx, eax
:00477C48 C1ED05                  shr ebp, 05
:00477C4B C1E304                  shl ebx, 04
:00477C4E 33EB                    xor ebp, ebx
:00477C50 8D9E7482555C            lea ebx, dword ptr [esi+5C558274]
:00477C56 03E8                    add ebp, eax
:00477C58 33EB                    xor ebp, ebx
:00477C5A 03CD                    add ecx, ebp
:00477C5C 8BE9                    mov ebp, ecx
:00477C5E 8BD9                    mov ebx, ecx
:00477C60 C1ED05                  shr ebp, 05
:00477C63 C1E304                  shl ebx, 04
:00477C66 33EB                    xor ebp, ebx
:00477C68 8D9E7482555C            lea ebx, dword ptr [esi+5C558274]
:00477C6E 03E9                    add ebp, ecx
:00477C70 33EB                    xor ebp, ebx
:00477C72 03C5                    add eax, ebp
:00477C74 8BE8                    mov ebp, eax
:00477C76 8BD8                    mov ebx, eax
:00477C78 C1ED05                  shr ebp, 05
:00477C7B C1E304                  shl ebx, 04
:00477C7E 33EB                    xor ebp, ebx
:00477C80 8B5C2424                mov ebx, dword ptr [esp+24]
:00477C84 03E8                    add ebp, eax
:00477C86 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477C89 81C32DFC8CFA            add ebx, FA8CFC2D
:00477C8F 33EB                    xor ebp, ebx
:00477C91 03CD                    add ecx, ebp
:00477C93 8BD9                    mov ebx, ecx
:00477C95 8BE9                    mov ebp, ecx
:00477C97 C1EB05                  shr ebx, 05
:00477C9A C1E504                  shl ebp, 04
:00477C9D 33DD                    xor ebx, ebp
:00477C9F 8DAA2DFC8CFA            lea ebp, dword ptr [edx+FA8CFC2D]
:00477CA5 03D9                    add ebx, ecx
:00477CA7 33DD                    xor ebx, ebp
:00477CA9 03C3                    add eax, ebx
:00477CAB 8BE8                    mov ebp, eax
:00477CAD 8BD8                    mov ebx, eax
:00477CAF C1E304                  shl ebx, 04
:00477CB2 C1ED05                  shr ebp, 05
:00477CB5 33EB                    xor ebp, ebx
:00477CB7 8D9FE675C498            lea ebx, dword ptr [edi+98C475E6]
:00477CBD 03E8                    add ebp, eax
:00477CBF 33EB                    xor ebp, ebx
:00477CC1 03CD                    add ecx, ebp
:00477CC3 8BE9                    mov ebp, ecx
:00477CC5 8BD9                    mov ebx, ecx
:00477CC7 C1E304                  shl ebx, 04
:00477CCA C1ED05                  shr ebp, 05
:00477CCD 33EB                    xor ebp, ebx
:00477CCF 8D9FE675C498            lea ebx, dword ptr [edi+98C475E6]
:00477CD5 03E9                    add ebp, ecx
:00477CD7 33EB                    xor ebp, ebx
:00477CD9 03C5                    add eax, ebp
:00477CDB 8BD8                    mov ebx, eax
:00477CDD 8BE8                    mov ebp, eax
:00477CDF C1EB05                  shr ebx, 05
:00477CE2 C1E504                  shl ebp, 04
:00477CE5 33DD                    xor ebx, ebp
:00477CE7 8DAA9FEFFB36            lea ebp, dword ptr [edx+36FBEF9F]
:00477CED 03D8                    add ebx, eax
:00477CEF 33DD                    xor ebx, ebp
:00477CF1 03CB                    add ecx, ebx
:00477CF3 8BE9                    mov ebp, ecx
:00477CF5 8BD9                    mov ebx, ecx
:00477CF7 C1ED05                  shr ebp, 05
:00477CFA C1E304                  shl ebx, 04
:00477CFD 33EB                    xor ebp, ebx
:00477CFF 8B5C2424                mov ebx, dword ptr [esp+24]
:00477D03 03E9                    add ebp, ecx
:00477D05 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477D08 81C39FEFFB36            add ebx, 36FBEF9F
:00477D0E 33EB                    xor ebp, ebx
:00477D10 03C5                    add eax, ebp
:00477D12 8BD8                    mov ebx, eax
:00477D14 8BE8                    mov ebp, eax
:00477D16 C1EB05                  shr ebx, 05
:00477D19 C1E504                  shl ebp, 04
:00477D1C 33DD                    xor ebx, ebp
:00477D1E 8DAA586933D5            lea ebp, dword ptr [edx+D5336958]
:00477D24 03D8                    add ebx, eax
:00477D26 33DD                    xor ebx, ebp
:00477D28 03CB                    add ecx, ebx
:00477D2A 8BD9                    mov ebx, ecx
:00477D2C 8BE9                    mov ebp, ecx
:00477D2E C1EB05                  shr ebx, 05
:00477D31 C1E504                  shl ebp, 04
:00477D34 33DD                    xor ebx, ebp
:00477D36 8DAE586933D5            lea ebp, dword ptr [esi+D5336958]
:00477D3C 03D9                    add ebx, ecx
:00477D3E 33DD                    xor ebx, ebp
:00477D40 03C3                    add eax, ebx
:00477D42 8BD8                    mov ebx, eax
:00477D44 8BE8                    mov ebp, eax
:00477D46 C1EB05                  shr ebx, 05
:00477D49 C1E504                  shl ebp, 04
:00477D4C 33DD                    xor ebx, ebp
:00477D4E 8DAE11E36A73            lea ebp, dword ptr [esi+736AE311]
:00477D54 03D8                    add ebx, eax
:00477D56 33DD                    xor ebx, ebp
:00477D58 03CB                    add ecx, ebx
:00477D5A 8BD9                    mov ebx, ecx
:00477D5C 8BE9                    mov ebp, ecx
:00477D5E C1EB05                  shr ebx, 05
:00477D61 C1E504                  shl ebp, 04
:00477D64 33DD                    xor ebx, ebp
:00477D66 8DAA11E36A73            lea ebp, dword ptr [edx+736AE311]
:00477D6C 03D9                    add ebx, ecx
:00477D6E 33DD                    xor ebx, ebp
:00477D70 03C3                    add eax, ebx
:00477D72 8BE8                    mov ebp, eax
:00477D74 C1ED05                  shr ebp, 05
:00477D77 8BD8                    mov ebx, eax
:00477D79 81C2F5C948EC            add edx, EC48C9F5
:00477D7F C1E304                  shl ebx, 04
:00477D82 33EB                    xor ebp, ebx
:00477D84 8B5C2424                mov ebx, dword ptr [esp+24]
:00477D88 03E8                    add ebp, eax
:00477D8A 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477D8D 81C3CA5CA211            add ebx, 11A25CCA
:00477D93 33EB                    xor ebp, ebx
:00477D95 03CD                    add ecx, ebp
:00477D97 8BD9                    mov ebx, ecx
:00477D99 8BE9                    mov ebp, ecx
:00477D9B C1EB05                  shr ebx, 05
:00477D9E C1E504                  shl ebp, 04
:00477DA1 33DD                    xor ebx, ebp
:00477DA3 8DAFCA5CA211            lea ebp, dword ptr [edi+11A25CCA]
:00477DA9 03D9                    add ebx, ecx
:00477DAB 33DD                    xor ebx, ebp
:00477DAD 03C3                    add eax, ebx
:00477DAF 8BD8                    mov ebx, eax
:00477DB1 8BE8                    mov ebp, eax
:00477DB3 C1EB05                  shr ebx, 05
:00477DB6 C1E504                  shl ebp, 04
:00477DB9 33DD                    xor ebx, ebp
:00477DBB 8DAF83D6D9AF            lea ebp, dword ptr [edi+AFD9D683]
:00477DC1 03D8                    add ebx, eax
:00477DC3 33DD                    xor ebx, ebp
:00477DC5 03CB                    add ecx, ebx
:00477DC7 8BE9                    mov ebp, ecx
:00477DC9 8BD9                    mov ebx, ecx
:00477DCB C1ED05                  shr ebp, 05
:00477DCE C1E304                  shl ebx, 04
:00477DD1 33EB                    xor ebp, ebx
:00477DD3 8B5C2424                mov ebx, dword ptr [esp+24]
:00477DD7 03E9                    add ebp, ecx
:00477DD9 8B5B0C                  mov ebx, dword ptr [ebx+0C]
:00477DDC 81C383D6D9AF            add ebx, AFD9D683
:00477DE2 33EB                    xor ebp, ebx
:00477DE4 03C5                    add eax, ebp
:00477DE6 8BD8                    mov ebx, eax
:00477DE8 8BE8                    mov ebp, eax
:00477DEA C1EB05                  shr ebx, 05
:00477DED C1E504                  shl ebp, 04
:00477DF0 33DD                    xor ebx, ebp
:00477DF2 8DAF3C50114E            lea ebp, dword ptr [edi+4E11503C]
:00477DF8 03D8                    add ebx, eax
:00477DFA 33DD                    xor ebx, ebp
:00477DFC 03CB                    add ecx, ebx
:00477DFE 8BD9                    mov ebx, ecx
:00477E00 8BE9                    mov ebp, ecx
:00477E02 C1EB05                  shr ebx, 05
:00477E05 C1E504                  shl ebp, 04
:00477E08 33DD                    xor ebx, ebp
:00477E0A 8DAE3C50114E            lea ebp, dword ptr [esi+4E11503C]
:00477E10 03D9                    add ebx, ecx
:00477E12 81C6AE43808A            add esi, 8A8043AE
:00477E18 33DD                    xor ebx, ebp
:00477E1A 03C3                    add eax, ebx
:00477E1C 8BD8                    mov ebx, eax
:00477E1E 8BE8                    mov ebp, eax
:00477E20 C1EB05                  shr ebx, 05
:00477E23 C1E504                  shl ebp, 04
:00477E26 33DD                    xor ebx, ebp
:00477E28 03D8                    add ebx, eax
:00477E2A 33DA                    xor ebx, edx
:00477E2C 03CB                    add ecx, ebx
:00477E2E 8BD9                    mov ebx, ecx
:00477E30 8BE9                    mov ebp, ecx
:00477E32 C1EB05                  shr ebx, 05
:00477E35 C1E504                  shl ebp, 04
:00477E38 33DD                    xor ebx, ebp
:00477E3A 03D9                    add ebx, ecx
:00477E3C 33DA                    xor ebx, edx
:00477E3E 03C3                    add eax, ebx
:00477E40 8BD0                    mov edx, eax
:00477E42 8BD8                    mov ebx, eax
:00477E44 C1EA05                  shr edx, 05
:00477E47 C1E304                  shl ebx, 04
:00477E4A 33D3                    xor edx, ebx
:00477E4C 03D0                    add edx, eax
:00477E4E 33D6                    xor edx, esi
:00477E50 03CA                    add ecx, edx
:00477E52 8B5C2424                mov ebx, dword ptr [esp+24]
:00477E56 8BD1                    mov edx, ecx
:00477E58 8BF1                    mov esi, ecx
:00477E5A C1EA05                  shr edx, 05
:00477E5D C1E604                  shl esi, 04
:00477E60 33D6                    xor edx, esi
:00477E62 8DB7AE43808A            lea esi, dword ptr [edi+8A8043AE]
:00477E68 03D1                    add edx, ecx
:00477E6A 81C72037EFC6            add edi, C6EF3720
:00477E70 33D6                    xor edx, esi
:00477E72 03C2                    add eax, edx
:00477E74 8B530C                  mov edx, dword ptr [ebx+0C]
:00477E77 8BF0                    mov esi, eax
:00477E79 8BE8                    mov ebp, eax
:00477E7B C1EE05                  shr esi, 05
:00477E7E C1E504                  shl ebp, 04
:00477E81 33F5                    xor esi, ebp
:00477E83 81C267BDB728            add edx, 28B7BD67
:00477E89 03F0                    add esi, eax
:00477E8B 33F2                    xor esi, edx
:00477E8D 03CE                    add ecx, esi
:00477E8F 8BF1                    mov esi, ecx
:00477E91 8BE9                    mov ebp, ecx
:00477E93 C1EE05                  shr esi, 05
:00477E96 C1E504                  shl ebp, 04
:00477E99 33F5                    xor esi, ebp
:00477E9B 03F1                    add esi, ecx
:00477E9D 33F2                    xor esi, edx
:00477E9F 03C6                    add eax, esi
:00477EA1 8BD0                    mov edx, eax
:00477EA3 8BF0                    mov esi, eax
:00477EA5 C1EA05                  shr edx, 05
:00477EA8 C1E604                  shl esi, 04
:00477EAB 33D6                    xor edx, esi
:00477EAD 03D0                    add edx, eax
:00477EAF 33D7                    xor edx, edi
:00477EB1 03CA                    add ecx, edx
:00477EB3 8B54241C                mov edx, dword ptr [esp+1C]
:00477EB7 8902                    mov dword ptr [edx], eax
:00477EB9 8B442410                mov eax, dword ptr [esp+10]
:00477EBD 894A04                  mov dword ptr [edx+04], ecx
:00477EC0 83C208                  add edx, 00000008
:00477EC3 8954241C                mov dword ptr [esp+1C], edx
:00477EC7 8B542420                mov edx, dword ptr [esp+20]
:00477ECB 83C208                  add edx, 00000008
:00477ECE 48                      dec eax
:00477ECF 89542420                mov dword ptr [esp+20], edx
:00477ED3 89442410                mov dword ptr [esp+10], eax
:00477ED7 0F857EF9FFFF            jne 0047785B
:00477EDD 8B442414                mov eax, dword ptr [esp+14]
:00477EE1 5D                      pop ebp
:00477EE2 5F                      pop edi
:00477EE3 5E                      pop esi
:00477EE4 5B                      pop ebx
:00477EE5 83C408                  add esp, 00000008
:00477EE8 C3                      ret

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
2
你给出的那段源码是标准的TEA算法。
用Delphi表示就是:
procedure TEA_En(var PT:array of longword;const Key:array of longword);  //加密
   var
     xL,xR:longword;    //xL 代表int64的高32位,即左值,xR代表它的低32位,即右值
     sum:longword;
     a,b,c,d:longword;
     i:integer;
   begin
     sum:=0;
     a:=key[0];
     b:=Key[1];
     c:=Key[2];
     d:=key[3];
     xL:=Pt[0];   //高32位
     xR:=Pt[1];   //低32位
     for i:=0 to 31 do
     begin
       sum:=sum+Delta;
       xR:=xR+((xL shl 4+a) xor (xL+sum) xor(xL shr 5+b));
       xL:=xL+((xR shl 4+c) xor (xR+sum) xor(xR shr 5+d));
     end;
     Pt[0]:=xL;
     Pt[1]:=xR;
   end;

在OD中显示就是:

00463DFC  |.  33DB          xor     ebx, ebx
00463DFE  |.  8B01          mov     eax, dword ptr [ecx]   ;Key,由四个Longword组成
00463E00  |.  8945 F8       mov     dword ptr [ebp-8], eax
00463E03  |.  8B41 04       mov     eax, dword ptr [ecx+4]
00463E06  |.  8945 F4       mov     dword ptr [ebp-C], eax
00463E09  |.  8B41 08       mov     eax, dword ptr [ecx+8]
00463E0C  |.  8945 F0       mov     dword ptr [ebp-10], eax
00463E0F  |.  8B41 0C       mov     eax, dword ptr [ecx+C]
00463E12  |.  8945 EC       mov     dword ptr [ebp-14], eax
00463E15  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
00463E18  |.  8B12          mov     edx, dword ptr [edx]     ;要加密的数据的高32位
00463E1A  |.  8B4D FC       mov     ecx, dword ptr [ebp-4]
00463E1D  |.  8B49 04       mov     ecx, dword ptr [ecx+4]   ;要加密的数据的低32位
00463E20  |.  B8 20000000   mov     eax, 20                   ;32轮迭代
00463E25  |>  81C3 B979379E /add     ebx, 9E3779B9            ;黄金数,这是TEA的标志
00463E2B  |.  8BF2          |mov     esi, edx
00463E2D  |.  C1E6 04       |shl     esi, 4                   ;xL shl 4
00463E30  |.  0375 F8       |add     esi, dword ptr [ebp-8]   ;加上Key[0]
00463E33  |.  8D3C13        |lea     edi, dword ptr [ebx+edx] ;Sum+xL
00463E36  |.  33F7          |xor     esi, edi                 ;以下就不必看了。。。
00463E38  |.  8BFA          |mov     edi, edx
00463E3A  |.  C1EF 05       |shr     edi, 5
00463E3D  |.  037D F4       |add     edi, dword ptr [ebp-C]
00463E40  |.  33F7          |xor     esi, edi
00463E42  |.  03CE          |add     ecx, esi
00463E44  |.  8BF1          |mov     esi, ecx
00463E46  |.  C1E6 04       |shl     esi, 4
00463E49  |.  0375 F0       |add     esi, dword ptr [ebp-10]
00463E4C  |.  8D3C0B        |lea     edi, dword ptr [ebx+ecx]
00463E4F  |.  33F7          |xor     esi, edi
00463E51  |.  8BF9          |mov     edi, ecx
00463E53  |.  C1EF 05       |shr     edi, 5
00463E56  |.  037D EC       |add     edi, dword ptr [ebp-14]
00463E59  |.  33F7          |xor     esi, edi
00463E5B  |.  03D6          |add     edx, esi
00463E5D  |.  48            |dec     eax
00463E5E  |.^ 75 C5         \jnz     short 00463E25          ;循环32次
00463E60  |.  8B45 FC       mov     eax, dword ptr [ebp-4]   ;返回结果是两个Longword
00463E63  |.  8910          mov     dword ptr [eax], edx
00463E65  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00463E68  |.  8948 04       mov     dword ptr [eax+4], ecx   ;
00463E6B  |.  5F            pop     edi
00463E6C  |.  5E            pop     esi
00463E6D  |.  5B            pop     ebx
00463E6E  |.  8BE5          mov     esp, ebp
00463E70  |.  5D            pop     ebp
00463E71  \.  C2 0400       retn    4
TEA加密的数据是一个64位的数据,输出也是64位,人称高32位,低32位,也就是所谓的左值右值。
就这么简单。

看你贴出来的可比这复杂多了。看起来好像是循环使用了TEA,最好是贴个链接出来,也许有人帮你看,不过别指望我。
你还得仔细分析。
2007-4-3 19:40
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哪位朋友帮帮忙啦。。。。。
2007-4-4 13:21
0
游客
登录 | 注册 方可回帖
返回
//