草庐IT

MY_DLL_N

全部标签

windows - 我们可以 rebase kernel32.dll 吗?这样两个进程的加载地址是不同的

具体来说,我想知道同一session中的两个进程的kernel32.dll加载地址是否可以不同?我想使用createremote线程,所以只想知道在任何情况下,远程进程中的kernel32加载地址是否可以不同于注入(inject)进程? 最佳答案 Kernel32.dll在所有进程上具有相同的基址,以允许您执行您想要执行的操作。阅读:WhyarecertainDLLsrequiredtobeatthesamebaseaddresssystem-wide? 关于windows-我们可以re

c++ - 延迟加载 DLL : "Exception 0xC06D007E: Module not found" when application started multiple times

我的应用程序在使用延迟加载DLL时出现间歇性崩溃。我们在几个不同的调用堆栈中看到了崩溃,但在__delayLoadHelper2中引发0xC06D007E:Modulenotfound时它总是崩溃。连续(串联)多次调用流程时引发异常。这是一个示例调用堆栈:KERNELBASE.dll!RaiseException()+0x3dbytesMYDLL.dll!__delayLoadHelper2(constImgDelayDescr*pidd=0x000000000012f650,__int64(void)**ppfnIATEntry=0x000000000012f570)Line331C

windows - 使用 Nuget 包 ServerAppFabric.Client 时系统找不到 Microsoft.ApplicationServer.Caching.Core.resources.dll

我在应用程序中包含了ServerAppFabric.Client.1.0.2912以执行一些基本的缓存诊断。但是,当我尝试使用缓存API时,我得到了这个异常:Caughtunhandledexception:System.TypeInitializationException:Thetypeinitializerfor'Microsoft.ApplicationServer.Caching.ConfigManager'threwanexception.--->System.IO.FileNotFoundException:Couldnotloadfileorassembly'Micro

c++ - 注入(inject) DLL 时,Explorer.exe 在启动时死锁

我使用注册表“运行”键在用户每次登录Windows时自动执行我的程序(使用HKCU\Software\Microsoft\Windows\CurrentVersion\Run注册表路径)。我的应用程序首先使用CommandLineDLL-Injector将DLL注入(inject)到explorer.exe进程中.效果应该是:每次用户登录后(重启Windows后)——我的应用程序被执行,我的DLL被注入(inject)到explorer.exe在某些情况下它可以工作,但在少数情况下(时间问题,很少重现),注入(inject)器和explorer.exe进程都死锁并且没有响应。我不确定,

windows - 构建并覆盖一个简单的 Winelib DLL

我有一个加载库的Windows可执行文件,我想创建一个将覆盖WindowsDLL的WinelibDLL。我已经搜索并尝试了2天,但它不起作用!请帮助我!基本上,我创建mydll.c和mydll.spec以使用以下命令构建WinelibDLL:winegcc-m32-shared-omydll.dllmydll.cmydll.spec现在我有了mydll.dll.so并且我想覆盖mydll.dll(两者都在同一个地方)我应该怎么办?我尝试重命名mydll.dll但在调用该函数时出现页面错误!我还尝试使用winecfg配置覆盖或设置WINEDLLPATH等环境变量。我不明白如何继续。我如何

windows - WinDbg:尝试附加到进程时 dbghelp.dll 的版本不匹配

一年多以前,我已经使用WinDbg和DebugDiag来查找我们在Java中使用的JNInativeDLL中的内存泄漏。现在我正在寻找线程句柄泄漏。我使用ProcessExplorer创建了一个内存转储,并尝试在DebugDiag中对其进行分析,但我得到的只是脚本错误:我也尝试过WinDbg,但它无法再附加到进程。我总是收到错误消息“dbghelp.dll的版本与调试器不匹配”:(“UnbekannterFehler”的意思是“未知错误”)我卸载了DebugDiag和WindowsSDK,然后下载了最新版本并安装了WindowsSDK8和DebugDiag1.2(x86)。问题保持不变

windows - 关于将 dll 部分复制到内存

voidCopySections(constunsignedchar*data,PIMAGE_NT_HEADERSold_headers,PMEMORYMODULEmodule){inti,size;unsignedchar*codeBase=module->codeBase;unsignedchar*dest;PIMAGE_SECTION_HEADERsection=IMAGE_FIRST_SECTION(module->headers);for(i=0;iheaders->FileHeader.NumberOfSections;i++,section++){if(section->

windows - 为什么 64 位进程不能使用 32 位 dll?

在这篇文章中,我将讨论使用C++和Win32API创建的nativeWindows应用程序和DLL。来自帖子CanIloada32bitDLLintoa64bitprocessonWindows?我了解到64位进程不能直接使用32位DLL。解决此问题的一种方法是在32位进程中托管DLL并使用某种形式的IPC。既然如此,这背后的原因是什么?为什么64位进程不能使用32位DLL?难道是x86和x64指令集的区别? 最佳答案 如果传递给32位代码的地址有任何高于第32集的位,它将由于指针大小不匹配而丢失,并且很可能导致AV。

c++ - 哪个 DLL 有 PathCchAppend?

我正在尝试有条件地使用(如果可用)函数PathCchAppend.我从headerpathcch.h中获得了函数签名。但是,当我尝试从SHLWAPI.DLL获取函数地址时,它失败了:autopca=GetProcAddress(GetModuleHandle(L"shlwapi.dll"),"PathCchAppend");使用Depends,我看到这个函数在这个DLL中不存在(我在Windows10上)。不存在任何pathcch.dll,因此也无法加载它。这个函数放在哪个DLL中?编辑:感谢答案。在这里,我找到了以下答案中提到的DLL名称:https://learn.microsof

windows - MinGW - 加载 .dll 后,应用程序以异常方式终止(完成后)

在使用Cygwin的MinGW进行编译时,我在Windows上动态加载共享库时遇到问题。该应用程序由6个部分组成:2个静态库、3个共享库和1个使用静态库并在运行时加载共享库的可执行文件。我在Cygwin中使用i686-pc-mingw32-g++。所有源文件都使用-std=c++11标志进行编译,它们的链接如下:Staticlibraries:i686-pc-mingw32-arrcslibxxx.abin/*.oi686-pc-mingw32-arrcslibyyy.abin/*.oEachsharedlibrary:i686-pc-mingw32-g++-fPIC-shared-o