如题,我想向某个进程注入DLL,注入成功了,但是一恢复主线程的运行,程序马上就出错?
错误提示是:“"0x005fc31f"指令引用的"0x422be6c8"内存。该内存不能为"read"”。
而据我观察,杀毒软件等程序向那进程注入DLL之后,没有任何错误发生。我先用 ::CreateProcess(m_PathEdit,m_CommandLineEdit.GetBuffer(m_CommandLineEdit.GetLength()),NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,m_PathEdit.Left(index),&si,&piProcess); 启动一个主线程被挂起的进程(m_PathEdit、m_CommandLineEdit都是CString类型的)。
然后使用CreateRemoteThread远程启动线程"LoadLibraryW"来注入DLL。
最后恢复主线程的运行::ResumeThread(piProcess.hThread);在有些程序上很成功,但是在有些上就成功不了。这是为什么呢?
错误提示是:“"0x005fc31f"指令引用的"0x422be6c8"内存。该内存不能为"read"”。
而据我观察,杀毒软件等程序向那进程注入DLL之后,没有任何错误发生。我先用 ::CreateProcess(m_PathEdit,m_CommandLineEdit.GetBuffer(m_CommandLineEdit.GetLength()),NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,m_PathEdit.Left(index),&si,&piProcess); 启动一个主线程被挂起的进程(m_PathEdit、m_CommandLineEdit都是CString类型的)。
然后使用CreateRemoteThread远程启动线程"LoadLibraryW"来注入DLL。
最后恢复主线程的运行::ResumeThread(piProcess.hThread);在有些程序上很成功,但是在有些上就成功不了。这是为什么呢?
解决方案 »
- VC保存PLT格式的图
- 关于子窗口的疑难问题
- 如何修改VC6编辑控件editbox中的Read-only属性
- 导入outlook联系人
- 初级问题:在LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)中的wParam和lParam是做什么用的??获得的
- 请大家指点一下,这个错误信息如何解决?
- ?VC做的三维建模软件?
- 如何设置google开源日志GLog,让它不要输出到控制台,而是只写入文件
- 谁能给我讲一下listbox和listctrl的区别亚,想用一个列表,不知道用什么好
- 到底还应不应该继续学VC
- MFC消息处理机制问题---SPIN控件的UDN_DELTAPOS消息是点击一下小三角箭头就发送的吗?
- 谁有《vc数据库编程三步教学》的源代码阿?
你把CreateRemoteThread也指定CREATE_SUSPENDED,然后先恢复主线程试试。
有个应用程序不能多开,我想分析下,看看能不能弄成多开的。
是新创建的进程出错。那个进程,不论是先注入什么DLL,都出错。如果主线程运行之后,再注入DLL,那是没有问题的。