-
-
[求助]求助,这个应该是什么算法?[解决 ]
-
发表于:
2009-12-23 18:25
5796
-
看着熟,但是哪个都不像,rc5,tea什么的,都不像
仔细分析,是tea
请高手指点
int __cdecl sub_4338C0(int a1, int a2, int a3)
{
signed int v3; // eax@1
signed int v4; // edx@1
signed int v5; // ecx@1
signed int i; // eax@5
int result; // eax@7
v4 = *(_DWORD *)a2;
v3 = 0;
v5 = *(_DWORD *)(a2 + 4);
if ( a3 <= 0 )
{
for ( i = 0x61C88647 * a3; i; v4 -= *(_DWORD *)(a1 + 4 * (i & 3)) + (v5 ^ i) + ((v5 >> 5) ^ 16 * v5) )
{
v5 -= *(_DWORD *)(a1 + 4 * ((i >> 11) & 3)) + (v4 ^ i) + ((v4 >> 5) ^ 16 * v4);
i += 0x61C88647u;
}
}
else
{
if ( 0 != 0x9E3779B9 * a3 )
{
do
{
v4 += *(_DWORD *)(a1 + 4 * (v3 & 3)) + (v5 ^ v3) + ((v5 >> 5) ^ 16 * v5);
v3 -= 0x61C88647u;
v5 += *(_DWORD *)(a1 + 4 * ((v3 >> 11) & 3)) + (v4 ^ v3) + ((v4 >> 5) ^ 16 * v4);
}
while ( v3 != 0x9E3779B9 * a3 );
}
}
result = a2;
*(_DWORD *)a2 = v4;
*(_DWORD *)(a2 + 4) = v5;
return result;
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课