我有以下生成的伪代码IDA Pro decompiler:
__int64 *__usercall sub_155B5@<X0>(__int64 *a1@<X0>, unsigned int a2@<W1>, char **a3@<X8>)
{
...
result = sub_222E0((__int64 *)a3, 2 * a2, 0x20u);
return result;
}
使用frida-trace,我可以验证sub_155B5为每个 API 请求调用。这是我使用的命令:
$ frida-trace -U com.app.name -a 'libname.so!0x155b5'
因此,我认为我可以安全地假设 也sub_222E0被执行了,因为它包含在sub_155B5其中显然是被执行的。然而,事实证明我错了。frida-trace无法sub_222E0使用上述相同的命令进行跟踪。
造成这种结果的可能原因是什么?
谢谢你。
编辑
这是声明sub_222E0:
__int64 __fastcall sub_222E0(__int64 a1, __int64 a2, __int64 a3)
{
return sub_4D2EC(*(_QWORD **)(a1 + 64), a2, a3);
}
并且每次执行时都会进行frida-trace跟踪,但不会。sub_4D2ECsub_155B5sub_222E0