windows 高级程序指南InjectLib在Debug模式下执行出错的解决方法
来源:互联网 发布:淘宝访客量突然下降 编辑:程序博客网 时间:2024/06/05 17:58
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;
这样就可以在任何模式下编译通过了!
- windows 高级程序指南InjectLib在Debug模式下执行出错的解决方法
- VS2005 在UNICODE模式下debug生成的程序出错
- VC++ 2005编译出程序在XP下执行出错的解决方法
- VC++2005编译出程序在XP下执行出错的解决方法
- VC2005程序在XP下出错的解决方法
- 让你的程序在xp系统模式下运行(适用于更高级Windows系统版本)
- vs2010下debug模式下不能执行断点解决方法
- vs2013下debug模式下不能执行断点解决方法
- 继承CAdUiDockControlBar后在Debug模式下连接出错:error LNK2001: 无法解析的外部符号
- windows下写的shell脚本在linux执行出错的解决办法
- windows下写的shell脚本在linux执行出错的解决办法
- Linuxshell脚本在windows下编辑后执行出错
- vs2015在Debug模式下运行出现"应用程序无法正常启动(0x000007b)"的错误解决方法
- MFC中DUBUG模式没有出错,转换到Release下报Debug Assert Access Error 解决方法
- Linux下的.sh文件在windows下修改后无法执行的解决方法
- Qt程序在Debug模式下跟踪Q_ASSERT断言
- 让 IPhone 程序的调试信息只在 debug 模式下输出
- IPhone 程序的调试信息只在 debug 模式下输出
- Linux常用命令学习笔记
- java中jxl导出数据到excel的例子
- SQLServer中关于char,varchar的新发现
- WordNet介绍和使用
- symbian 线程详解
- windows 高级程序指南InjectLib在Debug模式下执行出错的解决方法
- 链表相关面试题(zz)
- 线性方程解的程序
- .bash_profile和.bashrc的什么区别
- jquery 随便学学.
- Python 中的 ‘=’,copy,deepcopy
- 一个简单的有分页采集功能的php采集程序--自制的哦
- soa实际应用简单介绍
- Native C applications for Android