Ik heb een functie gemaakt om de naam uit het geheugen te lezen, als ik er stap voor stap door heen ga vult hij alles correct, maar bij de laatste regel, Result:=... crasht hij. Ik zou niet weten waarom, zonder error. Gewoon een "freeze" van de PC
En voor mensen die dit misschien herkennen, dit is code om een spel CM te editten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| function StaffNaam(mempos: longint): string;
{ PRE : mempos is place in memory to load
POST : Return name
effect : load name from memory pos
}
var
p1, p2: pointer;
dummy, boolres: longint;
names1, names2, names3 : NamesStruct;
staff: StaffStruct;
s: string;
begin
p1 := addr(staff);
p2 := addr(dummy);
// load club memory into Record
boolres := readprocessmemory(cmphandle,mempos,p1,sizeof(StaffStruct),p2);
p1 := addr(names1);
p2 := addr(dummy);
// load club memory into Record
boolres := readprocessmemory(cmphandle,staff.FirstName,p1,sizeof(StaffStruct),p2);
if (staff.CommonName>0) then
begin
p1 := addr(names2);
p2 := addr(dummy);
// load club memory into Record
boolres := readprocessmemory(cmphandle,staff.CommonName,p1,sizeof(StaffStruct),p2);
end;
p1 := addr(names3);
p2 := addr(dummy);
// load club memory into Record
boolres := readprocessmemory(cmphandle,staff.SecondName,p1,sizeof(StaffStruct),p2);
Result:=names1.Name+' '+names2.Name+' '+names3.Name;
end; |
En voor mensen die dit misschien herkennen, dit is code om een spel CM te editten.
"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002