我正在创建一个小DLL用于DLL-INJECTION POC(概念验证).我正在使用codeblocks的c ++ ide.
我的dll的主要(dllmain)看起来像这样:
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
MessageBox(0, "myfirstdll loaded", "SUCCESS STATUS", MB_OK);
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
// attach to process
// return FALSE to fail DLL load
break;
case DLL_PROCESS_DETACH:
// detach from process
break;
case DLL_THREAD_ATTACH:
// attach to thread
break;
case DLL_THREAD_DETACH:
// detach from thread
break;
}
return TRUE; // succesful
}
Run Code Online (Sandbox Code Playgroud)
现在,当我从客户端程序加载dll(使用LoadLibrary)时(希望它加载!),我的消息框不会弹出.这是令人沮丧的,因为我正在做一个poc.我知道当我们在dllmain中执行kernel32.dll等密集型业务时普遍存在的安全问题,但是,我的问题不在于安全问题.我只需要在dllmain中弹出一个消息框.
那么,如何在加载dll时弹出我的消息框?
请参阅此问题以了解有关的大量限制DllMain.这不仅仅是安全问题.user32导出的任何内容都属于此类别.
换句话说,你不能使用MessageBox在DllMain.使用类似的东西OutputDebugString,这在kernel32中并且不显示任何UI.
| 归档时间: |
|
| 查看次数: |
4340 次 |
| 最近记录: |