首页
社区
课程
招聘
[求助]WriteProcessMemory的问题
发表于: 2004-5-1 01:31 8948

[求助]WriteProcessMemory的问题

2004-5-1 01:31
8948
stitle db "FTE",0
hProcId dd 0
code1 dd 90909090h

invoke FindWindow,NULL,ADDR stitle
invoke GetWindowThreadProcessId,eax,ADDR hProcId
invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,hProcId
mov hProcess,eax
invoke VirtualProtectEx,hProcess,00400000h,9,PAGE_READWRITE,NULL
invoke WriteProcessMemory,hProcess,00400000h,ADDR code1,4,NULL
==========================
用 OpenProcess,PROCESS_ALL_ACCESS得到了hProcess,然后应该就可以直接
WriteProcessMemory,hProcess,00400000h,ADDR code1,4,NULL
应该没错吧?
我调试的时候出错,返回的是ERROR_NOACCESS (000003E6)
WriteProcessMemory(
HANDLE hProcess, // handle to process
LPVOID lpBaseAddress, // base of memory area
LPCVOID lpBuffer, // data buffer
SIZE_T nSize, // count of bytes to write
SIZE_T * lpNumberOfBytesWritten // count of bytes written 这个不知道有什么用?
)
听人说要先用VirtualProtectEx改变section为可写属性。。。。 ???
VirtualProtectEx(
HANDLE hProcess, // handle to process
LPVOID lpAddress, // region of committed pages
SIZE_T dwSize, // size of region 这个大小是什么大小?我不知道,我乱写了个9
DWORD flNewProtect, // desired access protection
PDWORD lpflOldProtect // old protection 这个也不知道改什么弄?
)
VirtualProtectEx,hProcess,00400000h,9,PAGE_READWRITE,NULL
我调试的时候还是出错,返回的也是ERROR_NOACCESS (000003E6)
请高手指点一下啊

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (5)
雪    币: 371
活跃值: (790)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
2
用VirtualProtectEx前先用VirtualQueryEx。
VirtualQueryEx会生成一个MemoryBaseInfo的结构,VirtualProtectEx的OldProtect指向这个结构就行。
2004-5-1 09:02
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
3
virtualprotectex最后一个参数指向一个足够的buffer就可以了。
2004-5-1 09:08
0
雪    币: 371
活跃值: (790)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
4
最初由 forgot 发布
virtualprotectex最后一个参数指向一个足够的buffer就可以了。


这么懒 :D
2004-5-1 10:20
0
雪    币: 253
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
非常感谢
2004-5-1 17:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我觉得用VC编写此类的程序更方便
2004-5-1 19:12
0
游客
登录 | 注册 方可回帖
返回
//