为了账号安全,请及时绑定邮箱和手机立即绑定

求教关于“WriteProcessMemory”函数使用的操作方法!

求教关于“WriteProcessMemory”函数使用的操作方法!

呼如林 2021-08-05 07:26:29
procedure TForm1.Button1Click(Sender: TObject); var Form1: TForm1; handle:HWND; pid:dword; OpenHandle:THandle; lpNumberOfBytes:dword; begin handle := FindWindow('qtClass', 'Qt'); if handle= 0 then messagebox(handle,'请先打开QT','error',mb_ok); GetWindowThreadProcessId (handle, @pid); OpenHandle:=OpenProcess(PROCESS_ALL_ACCESS, false, pid); WriteProcessMemory (OpenHandle, Ptr($004BA111), PChar(Chr(235)) ,1, lpNumberOfBytes) ; CloseHandle (OpenHandle); end; 这段代码哪里有错误啊? 我想将程序内存地址004BA111值改为235 另外,为什么handle:HWND必须在过程中声明,设成全局变量会提示找不到 请给出WriteProcessMemory的具体使用,这个lpNumberOfBytes不声明dword变量,直接写成0怎么不行? 代码调试时,的确修改了程序内存(HIPS软件提示access memory),可是实际在程序中并没有体现出来 请诸位帮忙
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

测试了下这个代码``发现不能成功写入内存 WriteProcessMemory (OpenHandle, Ptr($004BA111), PChar(Chr(235)) ,1, lpNumberOfBytes) ; 的第三个参数应该是指针吧``改为 a:=chr(235); WriteProcessMemory (OpenHandle, Ptr($004BA111), @a ,1, lpNumberOfBytes) ; 好像就可以了 看下是不是这个问题吧 lpNumberOfBytes在这里是传地址``需要变量,用于返回成功写入了几个字节

查看完整回答
反对 回复 2021-08-09
  • 1 回答
  • 0 关注
  • 453 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信