我想使用“函数”选项卡中的“参数”值在 IDA Pro 中高效地查找特定函数。但是,对于以下从 IDA 反编译中获得的代码示例:
__int64 __fastcall sub_49FB60(__int64 a1)
{
sub_484690(a1 + 208, 0LL);
sub_484690(a1 + 112, 0LL);
return sub_484690(a1 + 16, 0LL);
}
_QWORD *__fastcall sub_4A0050(_QWORD *a1, __int64 a2)
{
sub_4A3CB0(a1);
*a1 = off_979AD8;
a1[13] = a2;
return a1;
}
__int64 __fastcall sub_4D3D20(__int64 a1, __int64 a2, unsigned __int8 a3)
{
__int64 v5; // rcx
*(_QWORD *)a1 = a2;
v5 = *(_QWORD *)(*(int *)(*(_QWORD *)a2 + 4LL) + a2 + 72);
if ( v5 )
(*(void (__fastcall **)(__int64))(*(_QWORD *)v5 + 8LL))(v5);
*(_BYTE *)(a1 + 8) = sub_4D3BC0(*(_QWORD *)a1, a3);
return a1;
}
所有这些函数的“参数”值都是 00000010。最初,我认为它可能表示参数大小的总和,但计算结果不匹配。“参数”字段实际上代表什么?
此外,所提供的代码示例中的“参数”值代表什么?
__int64 __fastcall sub_52AFD0(unsigned int **a1, unsinged int a2, __int64 a3)
{
unsinged int v3;
unsinged int v4;
unsinged int v6;
unsinged __int i;
v6 =-1;
for ( i = a2 / 8ui64; i; --i)
{
v3 = **a1 ^ v6;
++*a1;
v4 = **a1;
v6 = *(_DWORD *)(a3 + 4i64 * (v4 >> 24)));
}
return v6;
}