windows 高级程序指南InjectLib在Debug模式下执行出错的解决方法
2009-03-20 17:48
573 查看
InjectLib在Debug模式下运行时,出错的原因是由于
static DWORD WINAPI ThreadFunc(PINJLIBINFO pInjLibInfo)
函数引起的。在Debug调试模式下,编译器会自动加入一些用于调试的代码,当copy到其它进程中执行的时,就会出现错误。解决方法如下:
BYTE ThreadFunc[33] = {0x56, 0x57, 0x8b, 0x7c, 0x24, 0x0c, 0x8b, 0x0f, 0x8d, 0x47, 0x08, 0x50, 0xff, 0xd1, 0x8b, 0xf0, 0x85, 0xf6, 0x74, 0x08, 0x8b, 0x57, 0x04, 0x56, 0xff, 0xd2, 0x8b, 0xc6, 0x5f, 0x5e, 0xc2, 0x04, 0x00};
对应以下代码:
static DWORD WINAPI ThreadFunc(PINJLIBINFO pInjLibInfo){
HMODULE hinstDll = pInjLibInfo->fnLoadLibrary(pInjLibInfo->pbLibFile);
if( hinstDll != NULL ){
pInjLibInfo->fnFreeLibrary(hinstDll);
}
return ((DWORD)hinstDll);
}
const int cbCodeSize = 33;
这样就可以在任何模式下编译通过了!
static DWORD WINAPI ThreadFunc(PINJLIBINFO pInjLibInfo)
函数引起的。在Debug调试模式下,编译器会自动加入一些用于调试的代码,当copy到其它进程中执行的时,就会出现错误。解决方法如下:
BYTE ThreadFunc[33] = {0x56, 0x57, 0x8b, 0x7c, 0x24, 0x0c, 0x8b, 0x0f, 0x8d, 0x47, 0x08, 0x50, 0xff, 0xd1, 0x8b, 0xf0, 0x85, 0xf6, 0x74, 0x08, 0x8b, 0x57, 0x04, 0x56, 0xff, 0xd2, 0x8b, 0xc6, 0x5f, 0x5e, 0xc2, 0x04, 0x00};
对应以下代码:
static DWORD WINAPI ThreadFunc(PINJLIBINFO pInjLibInfo){
HMODULE hinstDll = pInjLibInfo->fnLoadLibrary(pInjLibInfo->pbLibFile);
if( hinstDll != NULL ){
pInjLibInfo->fnFreeLibrary(hinstDll);
}
return ((DWORD)hinstDll);
}
const int cbCodeSize = 33;
这样就可以在任何模式下编译通过了!
相关文章推荐
- vs2013下debug模式下不能执行断点解决方法
- VC++ 2005编译出程序在XP下执行出错的解决方法
- window 7 运行asp.net程序出错-IIS7.0 检测到在集成的托管管道模式下不适用的ASP.NET设置 的解决方法
- Myeclipse写servlet程序启动tomcat后无法进入debug模式的解决方法
- windows10下安装Microsoft Visual Studio 2013.4 Community enu中文语言包出错,提示“”程序兼容模式已打开.请将其关闭”的解决方法
- vs2010下debug模式下不能执行断点解决方法
- 解决部分在Debug模式下程序没问题但是Release模式下出现问题的方法
- Windows 2008 r2任务计划程序执行批处理失败问题解决方法
- VC++2005编译出程序在XP下执行出错的解决方法
- 执行此安装程序之前,必须安装 32 位 Windows 映像处理组件(WIC)解决的方法
- vs2012编译的程序不能在XP和2003下执行问题的解决方法
- 您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序。--解决方法
- 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程
- JAVA应用程序打包成windows下的可执行程序的方法
- maven执行打包命令(mvn package)是出现Java heap space错误的解决方法(windows环境)
- thinkphp关闭调试模式(APP_DEBUG => false),导致程序出错
- 分离数据库时出错:无法对数据库'XXX' 执行删除,因为它正用于复制"的解决方法
- react native项目介入萤石云SDK,DEBUG模式或者模拟器编译错误的解决方法
- "在安装SQL2005时出现: 执行安装向导期间出错" 解决方法