通过创建包装DLL来挂钩/绕过DLL函数

时间:2018-02-23 06:39:57

标签: c++ dll

我目前陷入尝试为另一个DLL创建包装DLL的过程,我想要替换它,然后包含在我自己创建的DLL中。

当dll被主程序附加时,我将加载原始DLL,然后设置一个钩子函数,让我决定我想要发送到原始DLL函数。

我已经有了导入dll的基本结构,但我的问题是我真的不知道最好的方法是什么,因为我只想挂钩一个功能而其他功能仍应正常工作没有我做任何事情。

是否有比定义每个函数更简单的解决方案,只是将其重定向到原始DLL?而且我怎么能让我的DLL函数与原始函数完全相同?我有一个基本的原型,但我不知道我是否需要其他任何东西:

typedef int(__cdecl *PROC_cef_parse_url)(
    const cef_string_t* url,
    cef_urlparts_t* parts
);

我可以称之为:

PROC_cef_parse_url _cef_parse_url = (PROC_cef_parse_url) GetProcAddress(hModule, "cef_parse_url");

但是因为我实际上不知道这是否有效,并且没有DLL创建和类似的东西的经验,我想问我是否需要别的东西,或者如果有人可以给我一个简单的例子。

0 个答案:

没有答案
相关问题