版块
论坛
喜欢
话题
应用
搜索
登录
注册
Odyssey的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=96313
调用CreateRemoteThread的问题
为什么用CreateRemoteThread注册的ThreadProc执行完一个函数调用后总是得到一个access violation的异常呢?那位大虾有成功运行ThreadProc的完整的例子?
回复
(
8
)
2005-03-01 13:55
来自版块 -
ABC初学者
◆
◆
表情
告诉我的粉丝
提 交
Odyssey
:
多谢各位,送分了。
(2005-03-03 10:49)
回复
wowocock
:
没测试过,你测试有用吗???
(2005-03-02 23:28)
回复
fslife
:
To wowocock: #pragma check_stack (off) 的作用不就是关闭这个堆栈检测的吗,为什么会没有作用?
(2005-03-02 11:54)
回复
fslife
:
wowocock说的没错,就是Debug版本的时候,cbSize的结果是错的 cbSize=LPBYTE)RemoteThreadEnd-(LPBYTE)RemoteThread; 我跟踪了一下,Debug下有时候会出现 RemoteThreadEnd < Remote...
(2005-03-02 10:21)
回复
wowocock
:
呵呵,和我遇到同样的问题,你把程序编译为RELEASE版本就没问题了. 因为在DEBUG版本下,系统会默认在每个函数后面调用一个堆栈检测函数,而你远线程了以后,该堆栈检测函数还是你本地的地址,当然就不对拉. 或者在DEBUG下把编译选项中的 /Od /D \"WI...
(2005-03-02 09:57)
回复
Odyssey
:
就是这样,简化了一下,比如只是弹出一个MsgBox,但是只要点确定后就会出错。 #include <Windows.h> #define GetFunc(hModule, FuncName, pFuncAddress) \\ *(FARPROC *...
(2005-03-02 00:46)
回复
fslife
:
线程的参数必须得在Remote Process分配空间的。 你用CreateRemoteThread要实现什么功能,是注入DLL吗,代码贴出来看看。 [编辑 - 3/1/05 by fslife]
(2005-03-01 17:52)
回复
bmyyyud
:
hProcess Identifies the process in which the thread is to be created. Windows NT: The handle must have PROCESS_CREATE_THREAD access. 这...
(2005-03-01 15:45)
回复
Odyssey
加关注
写私信
0
关注
0
粉丝
160
帖子
返回顶部