-
-
[求助]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直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: