草庐IT

getProcAddress

全部标签

1.15 自实现GetProcAddress

在正常情况下,要想使用GetProcAddress函数,需要首先调用LoadLibraryA函数获取到kernel32.dll动态链接库的内存地址,接着在调用GetProcAddress函数时传入模块基址以及模块中函数名即可动态获取到特定函数的内存地址,但在有时这个函数会被保护起来,导致我们无法直接调用该函数获取到特定函数的内存地址,此时就需要自己编写实现LoadLibrary以及GetProcAddress函数,该功能的实现需要依赖于PEB线程环境块,通过线程环境块可遍历出kernel32.dll模块的入口地址,接着就可以在该模块中寻找GetProcAddress函数入口地址,当找到该入口地

c++ - C++ 中的 GetProcAddress 函数

大家好:我已经在我的项目中加载了我的DLL,但是每当我使用GetProcAddress函数时。它返回NULL!我应该怎么办?我在“MYDLL.dll”中使用这个函数(doubleGetNumber(doublex))这是我使用的代码:typedefdouble(*LPGETNUMBER)(doubleNbr);HINSTANCEhDLL=NULL;LPGETNUMBERlpGetNumber;hDLL=LoadLibrary(L"MYDLL.DLL");lpGetNumber=(LPGETNUMBER)GetProcAddress((HMODULE)hDLL,"GetNumber");