C Dll注入失败
我正在尝试dll注入,我尝试了100种方法,但没有一种有效, 我现在使用Windows7 32位,以避免32/64冲突。 我使用了两个著名的dll注入器,分别是web上的AutoInject和Extreme注入器V2,以及一个手工制作的注入器。 我在试着让记事本里的记事本再简单不过了,对吧? 我还应该补充一点,我的windows在Vmware下运行。 这里是我的主要功能,用于使用代码块构建dllC Dll注入失败,c,windows,dll-injection,C,Windows,Dll Injection,我正在尝试dll注入,我尝试了100种方法,但没有一种有效, 我现在使用Windows7 32位,以避免32/64冲突。 我使用了两个著名的dll注入器,分别是web上的AutoInject和Extreme注入器V2,以及一个手工制作的注入器。 我在试着让记事本里的记事本再简单不过了,对吧? 我还应该补充一点,我的windows在Vmware下运行。 这里是我的主要功能,用于使用代码块构建dll #if BUILD_DLL #define DLLIMPORT __declspec (dllexp
#if BUILD_DLL
#define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
#define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
MessageBox (0, "Hello from injected DLL!\n", "Hi", MB_ICONINFORMATION);
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
我不知道现在该怎么做因为你不能在DLL内部调用MessageBox,因为你的能力受到严格限制。tenfour建议使用OutputDebugString之类的工具。我找到了解决问题的方法, 如果任何人有相同的问题:
只需使用Visual Sudio而不是代码块首先不要在DllMain中使用。这样一来,你帮不了我们多少忙。。。喷油器是否报告任何错误?您是否验证了DLL是否加载了类似ProcessExplorer的内容?旁注:看起来您是为ANSI/MBCS编译的,我很确定记事本是UNICODE。两者都表示注入成功,我将尝试ProcessExplorerNik在这两方面都是正确的。您需要更改诸如OutputDebugString之类的MessageBox调用,并且需要将DLL编译为Unicode。ANSI在十多年前就过时了。我尝试了这个链接上的主要发现:如果Messagebox是问题所在,我将尝试其他输出方式