我挂钩目标功能。因此,当应用程序调用目标函数时,它将跳转到我的钩子(黑客)函数。但我想回到(调用)原始目标函数。我有一个原始功能的地址,但我不知道有关原始功能的签名。所以我不能为此声明每个函数指针。 (因为我想要挂钩的目标函数太多了)所以,我想在没有声明函数指针的情况下完成我的钩子函数处理时调用原始目标函数(因为我不能知道参数& #39;计数和类型。我只知道目标函数的地址) 是否有任何方式像使用asm等...?
答案 0 :(得分:0)
您的问题非常不清楚。
你应该知道calling conventions。他们可能会定义传递processor registers一些参数(以及返回的结果)。理解与编译器,系统和处理器相关的ABI。 (例如,参见this for Linux / x86-64)
您至少需要在运行时知道被调用函数的签名。
在这种情况下,您可以使用libffi。你最好声明extern "C"
被调用的(C ++)函数(因为ABI通常用于C代码)。