gpt4 book ai didi

c++ - 如何覆盖外部函数?

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:29 25 4
gpt4 key购买 nike

我正在做一些练习,但遇到了一个问题。我有 DLL 文件,它将被注入(inject)到 exe 文件中。我必须通过 DLL 文件中的函数覆盖该 exe 中的一个函数。我不能干涉 exe 文件,但在 DLL 中我可以。我得到了我必须替换的函数地址(通过 GetProcAddress() 函数得到它),现在我必须将这个地址重定向到我的函数。我想要实现的是当 exe 调用函数时,他不会调用他的内部函数,而是调用 dll 中的我的 func。我希望我说清楚了。这就是函数负责人的样子:

int ( func )( float, int );

我试过这样做:

typedef int ( *func_ptr )( float, int );
func_ptr myFunction;
myFunction = (*func_ptr)GetProcAddress(hModule, func_name);
*myFunction = newFunction;

最佳答案

你可能想看看弯路:http://research.microsoft.com/en-us/projects/detours/或者通过跳转至您的替代品来手动修补目标函数。

关于c++ - 如何覆盖外部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com