游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2048|回复: 0

Delphi ?????????????

[复制链接]

2

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2011-10-3 18:15:00 | 显示全部楼层 |阅读模式
???????WriteProcessMemory????????????????????????????????????????????????????
???????????????????????????????????????????????????????b8 25 95 00??????????????????????????
function WriteMemory(address:Integer;Bname:array of byte):Boolean;
var
  i:Integer;
  pData:array of ^Integer;
  dwOldProtect: DWORD;
  mbi_thunk:TMemoryBasicInformation;
begin
  SetLength(pData,SizeOf(Bname));//????????????????????????????????
  for i:=0 to SizeOf(Bname)do
  begin
  pData:=Pointer(address+i);//?????????
  // VirtualQuery(pdata, mbi_thunk, sizeof(MEMORY_BASIC_INFORMATION));
  end;
  //?????????????????????????mbi_thunk.baseaddress???pdata?????????????????????
  VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize,PAGE_READWRITE, mbi_thunk.Protect);
  for i:=0 to SizeOf(Bname)-1 do
  begin
  PByte(pdata)^:=bname; //???????????????

  end;
  VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize,mbi_thunk.Protect, dwOldProtect);
  Result :=True;
end;

???????
procedure TForm1.Button2Click(Sender: TObject);
  const
  temp : array[0..1] of byte = ($34,$35);
  temp1 : array[0..1] of byte = ($34,$35);
begin
WriteMemory($00450cf8,killb);
WriteMemory($00450cfe,killc); //??????writememort????????????????00450d04????????b8 25 95 00 ????????
end;
??????????????????????????????
????????
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, bsSkinCtrls, bsSkinData, BusinessSkinForm, StdCtrls;

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

function WriteMemory(address:Integer;Bname:array of byte):Boolean;
var
  i:Integer;
  pData:array of ^Integer;
  dwOldProtect: DWORD;
  mbi_thunk:TMemoryBasicInformation;
begin
  SetLength(pData,SizeOf(Bname));
  for i:=0 to SizeOf(Bname)do
  begin
  pData:=Pointer(address+i);
  // VirtualQuery(pdata, mbi_thunk, sizeof(MEMORY_BASIC_INFORMATION));
  end;
  //??????????
  VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize,PAGE_READWRITE, mbi_thunk.Protect);
  //VirtualProtect(pdata, mbi_thunk.RegionSize,PAGE_READWRITE, mbi_thunk.AllocationBase);
  for i:=0 to SizeOf(Bname)-1 do
  begin
  PByte(pdata)^:=bname; //???????XX
  end;
  VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize,mbi_thunk.Protect, dwOldProtect);
  Result :=True;
end;


procedure TForm1.Button1Click(Sender: TObject);

begin

end;
procedure TForm1.Button2Click(Sender: TObject);
  const
  temp : array[0..1] of byte = ($34,$35);
  temp1 : array[0..1] of byte = ($34,$35);
begin
WriteMemory($00450cf8,temp);
WriteMemory($00450cfe,temp1);
end;

end.
?????????????????????????????????????
????????uses???sharemem???????????????????????PRG??????sharemem????????????????????????????????????????????????????????????
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-22 13:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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