尝试捕获反射性加载的DLL
try catch on reflective loaded dll
i正在测试此注入技术(反射dll注射),并发现代码上的任何尝试/捕获都会升起无手窗口错误(kernelbase.dll,code Error e06d7363)和主机进程死亡。
i正在注入基本功能的测试DLL。工作流程是:打印"启动..."然后死亡。
我的dll。
bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved)
{
bool bReturnValue = TRUE;
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
function();
break;
}
return bReturnValue;
}
void function()
{
cout << "starting..." << std::endl;
try
{
throw std::exception();
}
catch (...)
{
cout << " exception... " << std::endl;
}
}
有任何技术解释?
这很可能是因为当您进行注射时,异常处理未正确设置。请参阅https://hackmag.com/uncategorized/exceptions-for-hardcore-users/。
您正在使用哪个库进行注射?它支持SEH吗?还是如果您自己做的话,您是否正确注册了处理程序?
我怀疑,但是这个问题更为复杂,因为我在标准内存dll加载的标准内存dll加载(简单的peloader)中都支持我的标准测试用例中的SEH。
相关文章:
- Python ctypes:不会按预期加载 dll
- 在 Linux 平台的 C++ 中动态加载 DLL
- 为什么 LoadLibrary 失败,而 LoadLibraryA 成功加载 DLL?
- 为什么有些延迟加载 DLL 会立即使用 FFMPEG 卸载?
- 了解加载库无法加载 DLL 的原因
- 应用程序仅在qt调试器中加载dll,而不是独立加载
- dll 生成成功,但在加载 dll 时执行错误
- QT 加载.dll不调用解析
- 通过重新加载DLL,避免使用DLL预加载漏洞,任何更好的方法
- 问题在具有依赖性时从其他路径上加载DLL的DLL
- C++插件不能延迟加载dll时
- Java加载DLL,该DLL从JNI中的另一个DLL导出方法
- C++ 动态加载 DLL 错误
- GHCi 无法在 Windows 上加载.dll lib(C++ lib)
- 使用C++应用程序加载 DLL
- System.DllNotFoundException:无法使用 dotnet core 加载 DLL
- 当应用程序在不同系统上运行时,无法加载DLL异常
- 如何停止二级IMPLICITLY加载DLL的DLL劫持
- 无法加载dll libglorycolx2010.dll.该应用程序未能启动,因为其并排配置不正确.Hresult:0x
- 如何在Acrobat JavaScript中加载DLL文件