通过已知地址调用函数?C++

Call function by known address? C++

本文关键字:函数 C++ 调用 地址      更新时间:2023-10-16

我在已知的内存地址(例如:0x11111111)有一个函数。该函数返回一个 int,并将uint32_t指针作为其唯一参数。

如何使用 c++ 调用此函数?我看过一些通过地址调用函数的例子,但我似乎找不到一个以指针作为参数的例子

编辑:I看到了。不解决如何调用将指针作为参数的函数

如果您确定那里有一个函数,则可以通过将地址强制转换为适当类型的函数指针来调用它,然后调用它。这是执行此操作的 C 代码:

typedef int (*FunctionType)(uint32_t*);
FunctionType function = (FunctionType)0x11111111;
function(arg);

可以轻松修改它以支持任意数量的函数参数和您想要的任何返回类型。只需调整 FunctionType typedef 的参数类型列表。

或者,在一行(大口大口):

(((int (*)(uint32_t *)) 0x11111111)(arg);