-
-
[求助]关于hexray逆出的代码的问题
-
发表于:
2010-7-15 00:50
4718
-
愁死了
int __usercall sub_401334<eax>(int a1<ebx>)
{
int result; // eax@2
int v2; // ecx@3
char v3; // al@4
int v4; // eax@6
int v5; // eax@7
if ( a1 )
{
v2 = a1;
if ( !(a1 & 3) )
goto LABEL_6;
do
{
v3 = *(_BYTE *)v2++;
if ( !v3 )
return v2 - 1 - a1;
}
while ( v2 & 3 );
while ( 1 )
{
do
{
LABEL_6:
v4 = (*(_DWORD *)v2 + 2130640639) ^ ~*(_DWORD *)v2;
v2 += 4;
}
while ( !(v4 & 0x81010100) );
v5 = *(_DWORD *)(v2 - 4);
if ( !(_BYTE)v5 )
break;
if ( !BYTE1(v5) )
return v2 - 3 - a1;
if ( !(v5 & 0xFF0000) )
return v2 - 2 - a1;
if ( !(v5 & 0xFF000000) )
return v2 - 1 - a1;
}
result = v2 - 4 - a1;
}
else
{
result = 0;
}
return result;
}
类似上面一段代码 函数头中的 <eax>(int a1<ebx>) 究竟是什么意思啊 怎样修改它们使得编译通过啊?
函数名后面的<eax> 和参数中的<ebx> 究竟是什么意思啊
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课