首页
社区
课程
招聘
[求助]WriteProcessMemory参数错误
发表于: 2009-4-3 00:58 6941

[求助]WriteProcessMemory参数错误

2009-4-3 00:58
6941
参考论坛精华写的一个Hook API的小程序,在用WriteProcessMemory把Hook代码写到远程进程的时候出错,GetLastError返回代码87(参数错误),求解决方法!
WriteProcessMemory(hTargetProcess, (LPVOID)dwFuncAddr, (LPCVOID)HookSend, 8192, NULL); 《=====就是这句错误
HANDLE hTargetProcess = OpenProcess(PROCESS_ALL_ACCESS, false, dwHookProcId);《=====打开进程
dwFuncAddr = (DWORD)VirtualAllocEx(hTargetProcess, NULL, 8192,
        MEM_COMMIT | MEM_RESERVE,PAGE_EXECUTE_READWRITE);
           《===========申请远程线程内存

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 184
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
你要写8192字节进去?
2009-4-3 01:03
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是啊,我想写一个函数进去,但这个函数可能以后要加内容,所以写大点,不过改小了也出错啊
2009-4-3 01:05
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你先写再申请????/

另外写一块函数的代码进去很难保证不出错吧,函数的代码一定连续?不懂
2009-4-3 01:11
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我先用VirtualAllocEx申请一块空间,再把那个函数写入的。参考的是“默数悲伤”的拦截网络数据的代码。命令行模式调试是成功了的,想加个界面,就失败了
2009-4-3 01:16
0
雪    币: 290
活跃值: (20)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
把代码稍微贴全点吧
才好知道你在哪出错了
2009-4-3 09:18
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
代码在附件里,谢谢了
上传的附件:
2009-4-3 09:44
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好心的帮帮忙啊..........
2009-4-4 11:50
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
问题解决,是WCHAR szFileName[24]太短,把dwFuncAddr的内容覆盖掉了

可是改了之后,又有新的错误,一附加到远程线程,远程线程调用send()的时候就报异常:
hookSocket.exe 中的 0x77d259d0 处未处理的异常: 0xC0000005: 写入位置 0x000003ea 时发生访问冲突
求助!
2009-4-5 14:27
0
游客
登录 | 注册 方可回帖
返回
//