我有这个dll(称为unknown.dll),从中我只知道Ghidra告诉我的内容。我正在使用LoadLibraryW进行加载,但是(在x86中)它引发了错误126。但是,在64x中,它给出了错误193,因此我认为问题不在于我的程序找不到我dll ...这是我的代码:
#include <iostream>
#include <Windows.h>
typedef int(__cdecl* FunctionIWant)();
int main()
{
HMODULE hmod = LoadLibraryW(L"C:\\unknown.dll");
if (hmod != NULL)
{
...
}
else
std::cout << GetLastError();
return 0;
}
我在做什么错?
126是ERROR_MOD_NOT_FOUND
。要么找不到您的DLL,要么更可能找不到它的依赖项。
193是ERROR_BAD_EXE_FORMAT
。这是因为您不能混合使用32位和64位DLL。
事实上,当您在64位以下运行时会得到ERROR_BAD_EXE_FORMAT
,这表明您已找到DLL。因此,我们可以得出结论,它的依赖性不存在。
请查阅文档以发现所需的依赖项。