游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2194|回复: 1

问个问题,烦了一早上了,大虾们帮我看看!!

[复制链接]

8

主题

12

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2006-1-19 19:28:00 | 显示全部楼层 |阅读模式
问个问题,烦了一早上了,大虾们帮我看看!!

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
hw:HWND;
Pid:dword;
h:THandle;
tt:Cardinal;
temp1,temp2:dword;
const
ReffsetWORD=$004621C4;
Resource:DWORD=$21742174;
begin
hw:=FindWindow(nil,'test1');
if hw=0 then
      panel1.Caption:='未能发现test1窗口'
else
   begin
GetWindowThreadProcessId(hw,@Pid);
h:=OpenProcess(PROCESS_ALL_ACCESS,false,Pid);
      if h=0 then
         exit;
      panel1.Caption:='权限成功打开';

      ReadProcessMemory(h,pointer(Reffset),@temp1,4,tt);
      panel1.Caption:=panel1.Caption+inttohex(temp1,4);

      WriteProcessMemory(h,pointer(Reffset),@Resource,sizeof(Resource),tt);

      ReadProcessMemory(h,pointer(Reffset),@temp2,4,tt);
      panel1.Caption:=panel1.Caption+'第二次取值为:'+inttohex(temp2,4);
      CloseHandle(h);
   end;

end;

end.

问题:就是修改不了
      WriteProcessMemory(h,pointer(Reffset),@Resource,sizeof(Resource),tt);的值
     如果说哪里错误嘛,readprocessMemory读取那地址的值又正确(我用WINHEX检查的)

其中test1这窗口也是我自己做来测试的,我用WINHEX修改就行,用我自己做的(上面的程序)就修改不了!!
----------------------------------------------

9

主题

61

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2006-1-20 20:38:00 | 显示全部楼层

Re:问个问题,烦了一早上了,大虾们帮我看看!!

有些内存地址是不能写的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 06:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表