这是某种铸造功能吗?如果是的话,为什么是这个电话



我正在对一个程序进行逆向工程,发现了一个成员方法,如下所示:

int __thiscall sub_40A490(void *this)
{
return *(_DWORD *)this;
}

IDA生成了这段代码,原始程序集如下所示:

sub_      proc near              
mov     eax, [ecx]
retn
sub_      endp

这是什么?如果它是一个简单的演员阵容,为什么它是__thiscall

对这些函数有很多交叉引用。例如,我们这里有一个称之为:

char __cdecl sub_4011B0(int a1, int a2)
{
char v2; // bl
int v3; // esi
_DWORD *v4; // eax
int v5; // eax

if ( !a1 || !a2 )
return 0;
v2 = byte_593B70[4 * *(_DWORD *)(a1 + 504) + *(_DWORD *)(a2 + 504)];
if ( !v2 )
{
v3 = 0;
if ( sub_40A490((void *)(a1 + 1196)) > 0 )
{
while ( 1 )
{
v4 = (_DWORD *)sub_40A480(v3);
v5 = sub_40A0E0(*v4);
if ( v5 )
{
if ( *(_DWORD *)(v5 + 44) == *(_DWORD *)(a2 + 44) )
return 1;
}
else
{
sub_4CE390(v3);
}
if ( ++v3 >= sub_40A490((void *)(a1 + 1196)) )
return 0;
}
}
}
return v2;
}

可能是解决方案:来自评论

"在我看来,sub_40A490是某个类的成员函数,它返回一个_DWORD成员,这是该类的第一个成员">

–François Andrieux

相关内容

  • 没有找到相关文章