gpt4 book ai didi

即使是静态链接的 C++ 请求 MSVCP110D.dll

转载 作者:IT老高 更新时间:2023-10-28 22:59:21 26 4
gpt4 key购买 nike

我在我的机器上用 C++ 创建了一个 library 注入(inject)方法,当我尝试将特定的 dll 注入(inject)到进程中时效果很好。但是,当我在 friend 的计算机上运行程序时(未安装 Visual Studio 的可再发行组件),我被警告我需要 MSVCR 等...(可再发行产品)。

所以我在 release 模式下使用 Visual Studio 2012 中的以下设置进行编译:Runtime Library : Multi-threaded/MT。现在当我在我 friend 的电脑上运行它时机器我被警告我只需要库 MSVCP110D.dll (奇怪,要求调试版本)(没有防病毒,并且 UAC 被禁用)。我在发布路径中手动复制了请求的库,但仍然无法正常工作。

这是我做的注入(inject)代码:

int inject(string lpLibraryPath)
{
HANDLE hProc;
LPVOID paramAddr;
HINSTANCE hDll;

hDll = LoadLibrary(L"KERNEL32");

fpLoadLibrary LoadLibraryAddr = (fpLoadLibrary)GetProcAddress(hDll, "LoadLibraryA");

hProc = OpenProcess(PROCESS_ALL_ACCESS, false, id);

paramAddr = VirtualAllocEx(hProc, 0, strlen(lpLibraryPath.c_str()) + 1, MEM_COMMIT, PAGE_READWRITE);

if(WriteProcessMemory(hProc, paramAddr, lpLibraryPath.c_str(), strlen(lpLibraryPath.c_str()) + 1, NULL) == NULL)
{
return 0;
}

CreateRemoteThread(hProc, 0, 0, (LPTHREAD_START_ROUTINE)LoadLibraryAddr, paramAddr, 0, 0);

CloseHandle(hProc);

return 1;
}
};

我在 stackoverflow 上找到了一些引用资料,但没有任何帮助。喜欢 msvcp110.dll, how do I get around it?Fixing the "MSVCP110D.dll is missing from your computer" issue

最佳答案

weird , asking for the debug version

告诉你你做错了什么,你不小心复制了 DLL 的 Debug 版本而不是 Release 版本。由于您只更改了 Release 版本的设置,因此它仍然需要 msvcp110d.dll。为 all 配置和 all 平台更改这样的设置通常是明智的。乏味,所以经常被跳过。

I copied the requested library manually in the release path and still wont work

是的,因为您注入(inject)了 DLL,所以这无法正常工作。一个不同的过程。因此,当它被加载时,会在游戏的安装目录中搜索文件,而不是在安装实用程序的目录中。

关于即使是静态链接的 C++ 请求 MSVCP110D.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41471207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com