[MessageBox注入后未从DllMain调用

问题描述 投票:0回答:1

目标

我正在尝试将inject an x64 DLL插入w3wp.exe进程(IIS工作进程),以便使用Visual Studio调试DLL。

我做了什么

我正在使用Extreme Injector V3执行此操作。从Extreme Injector的进程列表中选择我的DLL和w3wp.exe进程的调试版本之后,单击Inject,然后看到一个MessageBox,告诉我该注入已成功完成。

我期望

我应该从DllMain看到MessageBoxA(0, "injected", 0, 0)。但是,我看不到这样的东西!

DLL的代码

int __stdcall DllMain(HMODULE base, unsigned long reason, void* args)
{
    if (reason == DLL_PROCESS_ATTACH)
    {
        return 1;
    }
    return 0;
}
c winapi dll-injection w3wp
1个回答
0
投票
我期望我应该从DllMain看到一个MessageBoxA(0,“ injected”,0,0)。但是,我看不到这样的东西!
您的代码不调用MessageBox(),它仅在注入时返回1。

尽管不建议这样做,但是如果您只是出于实验目的而做,则代码应如下所示:

int __stdcall DllMain(HMODULE base, unsigned long reason, void* args) { if (reason == DLL_PROCESS_ATTACH) { MessageBoxA(0, "injected", 0, 0); } return 0; }

如果这不起作用,您需要尝试使用其他注射器,请确保您的注射器以管理员身份运行。

如果w3wp.exe以NT AUTHORITY \ SYSTEM的身份运行,则可能需要更高的权限
© www.soinside.com 2019 - 2024. All rights reserved.