永发信息网

[Delphi]求教“WriteProcessMemory”函数使用

答案:2  悬赏:0  手机版
解决时间 2021-02-03 16:25
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),可是实际在程序中并没有体现出来 请诸位帮忙,必要时追分 THX
最佳答案
测试了下这个代码``发现不能成功写入内存 WriteProcessMemory (OpenHandle, Ptr($004BA111), PChar(Chr(235)) ,1, lpNumberOfBytes) ; 的第三个参数应该是指针吧``改为 a:=chr(235); WriteProcessMemory (OpenHandle, Ptr($004BA111), @a ,1, lpNumberOfBytes) ; 好像就可以了 看下是不是这个问题吧 lpNumberOfBytes在这里是传地址``需要变量,用于返回成功写入了几个字节
全部回答
procedure tform1.formcreate(sender: tobject); begin timer1.enabled :=false; end; procedure tform1.button1click(sender: tobject); begin timer1.enabled :=true; end; procedure tform1.timer1timer(sender: tobject); var a,b,c:integer; begin a:=random(255); b:=random(255); c:=random(255); label1.font.color :=rgb(a,b,c); end;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1栋2单元1-2-02-05是什么意思啊
鑫储物流公司地址在什么地方,想过去办事
将一个小球挂在树上,使它左右摇摆,在运动到
阳春物流中心地址有知道的么?有点事想过去
佛教有哪些重大的节日
上河面馆地址在哪,我要去那里办事
c++,要求用switch语句
顺丰收发点地址有知道的么?有点事想过去
丅型路口直行车撞上左转弯车右下门责任
结合必读书《鲁宾逊漂流记》请你为鲁滨逊写一
昂达a320v怎么更新bios
为什么小米手机打开flightradar24时永远会显
德邦物流(快递)地址有知道的么?有点事想过去
浙江省温州市邮编
五家围地址有知道的么?有点事想过去
推荐资讯
五一长假,小明高兴地实现了到元谋人遗址去参
明知道男友是渣男,分手他也没那么难受,当我
对我女朋友又爱又恨,有小公主脾气,有时候特
湖北中首投资控股有限公司待遇怎么样 公司环
根据车船税法的规定,下列表述错误的是(  
19世纪末民族资产阶级作为新的政治力量开始登
上海大众志俊开起来两只后胎噪音太大是什么原
分期付款的房子 房产证老婆的名字在银行压着
if后可以接什么,除了句子
老王烧麦杂碎馆我想知道这个在什么地方
女人手腕骨折了夫妻之间多长时间能同房
帮我求数学题(X-650)-(Y-168)=54
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?