CynicRus
2012-07-29 06:30:11
Hi all. Let me introduce for you read memory plugin for Simba.

The plugin is created for read a values ​​from a process memory. Search process is going by window title or exename. Writing into memory implemented.
See Dll in attachment, source aviable on a GIT:
https://github.com/CynicRus/memrw
Using example:

The plugin is created for read a values ​​from a process memory. Search process is going by window title or exename. Writing into memory implemented.
See Dll in attachment, source aviable on a GIT:
https://github.com/CynicRus/memrw
Using example:
Type TMapCoord = record
x,y,z: single;
end;
Type TEverQuest2Char = record
DynHp,Hp,DynMp,Mp: integer;
NickName: string;
Coord: TMapCoord;
end;
var
Everquest2: integer;
MyChar: TEverQuest2Char;
MyCoord: TMapCoord;
procedure ReadEverquest2;
begin
EverQuest2:=GetProcessIdByName('EverQuest2.exe');
if Everquest2 <> 0 then
begin
MyCoord.x:= ReadFloatFromPid(EverQuest2,$0225C714,4);
MyCoord.z:= ReadFloatFromPid(EverQuest2,$0225C718,4);
MyCoord.y:= ReadFloatFromPid(EverQuest2,$0225C71C,4);
MyChar.DynHp:= ReadFromMemoryFromPID(EverQuest2,$022417CC,4);
MyChar.Hp:= ReadFromMemoryFromPID(EverQuest2,$022417D0,4);
MyChar.DynMp:= ReadFromMemoryFromPID(EverQuest2,$022417D8,4);
MyChar.Mp:= ReadFromMemoryFromPID(EverQuest2,$022417DC,4);
MyChar.NickName:=ReadStringFromPID(EverQuest2,$0225740C,6);
MyChar.Coord:=MyCoord;
end;
end;
begin
ReadEverquest2;
WriteLn('Game PID = ' + #32 + toStr(Everquest2));
WriteLn(toStr('My name is:'+#32+MyChar.NickName));
WriteLn('My health:'+#32+toStr(MyChar.DynHp)+'/'+toStr(MyChar.Hp));
WriteLn('My mana:'+#32+toStr(MyChar.DynMp)+'/'+toStr(MyChar.Mp));
WriteLn('My world position now:'+#13#10+'x ='+FloatToStr(MyChar.Coord.x)+#13#10+'y ='+FloatToStr(MyChar.Coord.y)+#13#10+'z ='+FloatToStr(MyChar.Coord.z));
end.
PS: Now,I will return to development a form designer:)