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

[求助]WriteProcessMemory的问题

2004-5-1 01:31
8660
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)
请高手指点一下啊

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

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


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