首页
社区
课程
招聘
[求助]WriteProcessMemory写内存时第一个字节改写不了?
发表于: 2012-2-25 13:41 3427

[求助]WriteProcessMemory写内存时第一个字节改写不了?

2012-2-25 13:41
3427
今天在修改API HOOK时发现用WriteProcessMemory写一些API的前几个字节时出现问题,第一个字节有时会改写不了,比如传递参数,要写10个字节,有时会第一个字节修改不成功,剩下的9个全部成功,同时返回的修改字节数也是10个,郁闷了,请各位指点下。
WriteApi proc Process:DWORD ,lpAPI:DWORD,lpMyCode:DWORD,Psize:DWORD
 local mbi:MEMORY_BASIC_INFORMATION
 local msize:DWORD
 local wsize:DWORD
 ;返回页面虚拟信息
 invoke VirtualQueryEx,Process, lpAPI,addr mbi,SIZEOF MEMORY_BASIC_INFORMATION
 ;修改为可读写模式
 invoke VirtualProtectEx,Process, mbi.BaseAddress,Psize,PAGE_EXECUTE_READWRITE ,addr mbi.Protect
 ;开始写内存
 invoke WriteProcessMemory,Process, lpAPI, lpMyCode,Psize,addr wsize
 PUSH eax
 ;改回只读模式
 invoke VirtualProtectEx,Process,mbi.BaseAddress,Psize,PAGE_EXECUTE_READ,addr mbi.Protect
 pop eax
 ret
WriteApi endp


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

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//