Jok3r666
20.01.2012, 22:04
Думаю кому нибудь пригодится
jmpptr = ba+1c+34+CAC+С+[(0-31(40))*4]
itemtype = ba+1c+34+CAC+С+[(0-31(40))*4]+4
Возвращает название в string
сама функция
function ItemName(hprocess,jumpptr:dword;itemType:integer): string;
var
buf32: array [0 .. 32] of WideChar;
bytescount,ipbuf:dword;
begin
case itemType of
//34 книги одевать
26: begin //яйца
ReadProcessMemory(hProcess, ptr(jumpptr+item1_26_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_26_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
0, 3: begin //0-шмот 3-бижа
ReadProcessMemory(hProcess, ptr(jumpptr+item1_0_3_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_0_3_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
2: begin //strella
ReadProcessMemory(hProcess, ptr(jumpptr+item1_2_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_2_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
4: begin //4-соски
ReadProcessMemory(hProcess, ptr(jumpptr+item1_4_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_4_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
34: begin //34-книги
ReadProcessMemory(hProcess, ptr(jumpptr+item1_34_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_34_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
5, 10, 13, 16, 19, 20, 27, 31, 32, 38, 40, 46: //31-apteka 32-shar drakona 27-korm 40-краситель 5-батарейки 19-алый,сундук(ПКМ) 20-призы, почти весь шоп,хх,сведения, кровь, осколок(миража), вино, гипы, горн,бао,феня, молоток
begin
ReadProcessMemory(hProcess, ptr(jumpptr+item1_5_46_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_5_46_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
6: begin //стиль
ReadProcessMemory(hProcess, ptr(jumpptr+item1_6_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_6_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
7: begin
ReadProcessMemory(hProcess, ptr(jumpptr+item1_7_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_7_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
8, 9, 22, 23: begin //9- хлеб, банки 8-дк, ресы, трава, формы, рупор, главы
ReadProcessMemory(hProcess, ptr(jumpptr+item1_8_23_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_8_23_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
15: begin //оружее
ReadProcessMemory(hProcess, ptr(jumpptr+item1_15_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_15_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
17,11: begin //17-камни 11-скилы
ReadProcessMemory(hProcess, ptr(jumpptr+item1_17_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_17_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
18: begin
ReadProcessMemory(hProcess, ptr(jumpptr+item1_18_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_18_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
36: begin
ReadProcessMemory(hProcess, ptr(jumpptr+item1_36_37_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_36_37_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
37: begin //хиры
ReadProcessMemory(hProcess, ptr(jumpptr+item1_37_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_37_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
43: begin //гпб
ReadProcessMemory(hProcess, ptr(jumpptr+item1_43_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_43_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
41: begin //джины
ReadProcessMemory(hProcess, ptr(jumpptr+item1_41_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_41_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
else
result:='N\A';
end;
end;
офсеты для функции
item1_26_ofs=$a0
item2_26_ofs=$4
item1_41_ofs=$10c
item2_41_ofs=$4
item1_0_3_ofs=$E0
item2_0_3_ofs=$C
item1_2_ofs=$C8
item2_2_ofs=$4
item1_4_ofs=$B4
item2_4_ofs=$8
item1_34_ofs=$B4
item2_34_ofs=$4
item1_5_46_ofs=$4C
item2_5_46_ofs=$4
item1_6_ofs=$D0
item2_6_ofs=$C
item1_7_ofs=$D0
item2_7_ofs=$4
item1_8_23_ofs=$54
item2_8_23_ofs=$C
item1_15_ofs=$E8
item2_15_ofs=$C
item1_17_ofs= $4C
item2_17_ofs=$8
item1_18_ofs=$C4
item2_18_ofs=$4
item1_36_37_ofs=$B8
item2_36_37_ofs=$4
item1_43_ofs=$54
item2_43_ofs=$4
item1_37_ofs=$BC
item2_37_ofs=$4
Если помог, не откажусь от спасибки.
jmpptr = ba+1c+34+CAC+С+[(0-31(40))*4]
itemtype = ba+1c+34+CAC+С+[(0-31(40))*4]+4
Возвращает название в string
сама функция
function ItemName(hprocess,jumpptr:dword;itemType:integer): string;
var
buf32: array [0 .. 32] of WideChar;
bytescount,ipbuf:dword;
begin
case itemType of
//34 книги одевать
26: begin //яйца
ReadProcessMemory(hProcess, ptr(jumpptr+item1_26_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_26_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
0, 3: begin //0-шмот 3-бижа
ReadProcessMemory(hProcess, ptr(jumpptr+item1_0_3_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_0_3_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
2: begin //strella
ReadProcessMemory(hProcess, ptr(jumpptr+item1_2_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_2_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
4: begin //4-соски
ReadProcessMemory(hProcess, ptr(jumpptr+item1_4_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_4_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
34: begin //34-книги
ReadProcessMemory(hProcess, ptr(jumpptr+item1_34_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_34_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
5, 10, 13, 16, 19, 20, 27, 31, 32, 38, 40, 46: //31-apteka 32-shar drakona 27-korm 40-краситель 5-батарейки 19-алый,сундук(ПКМ) 20-призы, почти весь шоп,хх,сведения, кровь, осколок(миража), вино, гипы, горн,бао,феня, молоток
begin
ReadProcessMemory(hProcess, ptr(jumpptr+item1_5_46_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_5_46_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
6: begin //стиль
ReadProcessMemory(hProcess, ptr(jumpptr+item1_6_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_6_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
7: begin
ReadProcessMemory(hProcess, ptr(jumpptr+item1_7_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_7_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
8, 9, 22, 23: begin //9- хлеб, банки 8-дк, ресы, трава, формы, рупор, главы
ReadProcessMemory(hProcess, ptr(jumpptr+item1_8_23_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_8_23_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
15: begin //оружее
ReadProcessMemory(hProcess, ptr(jumpptr+item1_15_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_15_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
17,11: begin //17-камни 11-скилы
ReadProcessMemory(hProcess, ptr(jumpptr+item1_17_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_17_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
18: begin
ReadProcessMemory(hProcess, ptr(jumpptr+item1_18_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_18_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
36: begin
ReadProcessMemory(hProcess, ptr(jumpptr+item1_36_37_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_36_37_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
37: begin //хиры
ReadProcessMemory(hProcess, ptr(jumpptr+item1_37_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_37_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
43: begin //гпб
ReadProcessMemory(hProcess, ptr(jumpptr+item1_43_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_43_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
41: begin //джины
ReadProcessMemory(hProcess, ptr(jumpptr+item1_41_ofs), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+item2_41_ofs), @buf32, sizeof(buf32), BytesCount);
Result:=buf32;
end;
else
result:='N\A';
end;
end;
офсеты для функции
item1_26_ofs=$a0
item2_26_ofs=$4
item1_41_ofs=$10c
item2_41_ofs=$4
item1_0_3_ofs=$E0
item2_0_3_ofs=$C
item1_2_ofs=$C8
item2_2_ofs=$4
item1_4_ofs=$B4
item2_4_ofs=$8
item1_34_ofs=$B4
item2_34_ofs=$4
item1_5_46_ofs=$4C
item2_5_46_ofs=$4
item1_6_ofs=$D0
item2_6_ofs=$C
item1_7_ofs=$D0
item2_7_ofs=$4
item1_8_23_ofs=$54
item2_8_23_ofs=$C
item1_15_ofs=$E8
item2_15_ofs=$C
item1_17_ofs= $4C
item2_17_ofs=$8
item1_18_ofs=$C4
item2_18_ofs=$4
item1_36_37_ofs=$B8
item2_36_37_ofs=$4
item1_43_ofs=$54
item2_43_ofs=$4
item1_37_ofs=$BC
item2_37_ofs=$4
Если помог, не откажусь от спасибки.