正在从DLL获取函数PTR
本文关键字:函数 PTR 获取 DLL | 更新日期: 2023-09-27 18:26:15
我正试图将dll注入到我的当前进程中,以找到不同函数的偏移量。
我的dll中有一个简单的函数,看起来像这样:
void testfunction()
我正试图通过C#应用程序获取ptr函数。
public IntPtr GetFunctionPointer()
{
IntPtr hLoaded = LoadLibrary("C:''test''test.dll");
IntPtr functionPtr = GetProcAddress(hLoaded, "testfunction");
return functionPtr;
}
函数ptr每次都返回0,即使该函数存在于dll中。如有任何帮助,我们将不胜感激。
函数在DLL的导出表中没有命名为testfunction
,它已被类型信息破坏。所以GetProcAddress
找不到它。(P/invoke DllImportAttribute
尝试了一系列名称,这些名称可能找到……也可能找不到。但GetProcAddress
需要完全匹配。)
为了导出一个完全没有损坏的函数,您需要使用extern "C"
减少函数名称的损坏,然后使用模块定义文件进行链接。类似于:
LIBRARY test
EXPORTS
testfunction
有关完整信息,请参阅MSDN文档