procedure TForm1.Button1Click(Sender: TObject);
var
MS : TMemoryStream;
P0 : PByte;
P1 : PByte;
begin
MS := TMemoryStream.Create;
try
MS.LoadFromFile( 'A.exe' );
P0 := PByte( MS.Memory );
P1 := P0; { 以下仅仅是个示例,实际上需要修改为准确的偏移地址 UE中一行16个字节,第100行左右的地址就是100*16左右 欲得精确值,可观看UE二进制编辑模式的左侧,找到3333的地址 }
Inc( P1, 100 * 16 );
P1^ := $30;
Inc( P1 );
P1^ := $30;
Inc( P1 );
P1^ := $30;
Inc( P1 );
P1^ := $30; { 上述几行修改4个连续字节的动作,可以简化为一句 PCardinal( P1 )^ := $30303030; } // 修改第1000行左右的方法类似如上
MS.SaveToFile( 'A.exe' );
finally
MS.Free;
end;
end;