【问题标题】:Linking an unknown dll链接未知的dll
【发布时间】:2023-03-11 01:48:01
【问题描述】:

我有这个 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;
}

我做错了什么?

【问题讨论】:

    标签: dll dllimport loadlibrary


    【解决方案1】:

    126 是ERROR_MOD_NOT_FOUND。要么找不到您的 DLL,或者如果找不到它的依赖项,则更有可能是一个。

    193 是ERROR_BAD_EXE_FORMAT。这是因为您不能混合使用 32 位和 64 位 DLL。

    当您在 64 位下运行时得到 ERROR_BAD_EXE_FORMAT 的事实告诉您找到了您的 DLL。因此,我们可以得出结论,它的依赖关系不存在。

    查阅文档以了解需要哪些依赖项。

    【讨论】:

    • DLL 本身抛出了这个错误。我使用“SetDllDirectory”指向它的原始位置并且它有效!谢谢
    猜你喜欢
    • 2011-02-25
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多