delphi Код:
program Project2;
{$APPTYPE CONSOLE}
type
TMyClass = class
public
X: integer;
Y: integer;
Procedure ApplicationProcedure;
end;
{ TMyClass }
procedure TMyClass.ApplicationProcedure;
begin
Writeln(x,' ',y);
end;
var
MyObj : TMyClass;
Stored, OffsetX, OffsetY : Pointer;
PIntX, PIntY : ^integer;
begin
//приложение
MyObj := TMyClass.Create;
MyObj.X := 100;
MyObj.Y := 200;
MyObj.ApplicationProcedure;
//а это типо у нас
Stored := MyObj; //прочитать значение с off_40A798
OffsetX := @TMyClass(nil).x; //т.к. я в этом же приложении то могу сделать воттак.
OffsetY := @TMyClass(nil).y; //на самом деле у нас константы - смещения
PintX := pointer(integer(Stored) + integer(OffsetX)); //базовый адрес + смещение = адрес того где читать\менять
PintY := pointer(integer(Stored) + integer(OffsetY));
PintX^ := 111; //меняем
PintY^ := 222;
//опять приложение
MyObj.ApplicationProcedure;
readln;
end.