|
ID -скиллов!!!Perfect World - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
10.09.2020, 00:15
|
#91
|
|
|
|
Разведчик
|
Регистрация: 08.03.2020
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: ID -скиллов!!!Perfect World
|
Цитата: |
|
|
|
|
|
|
|
|
|
Восстановил работает delphi XE
Код:
type
procedure TForm3.Button1Click(Sender: TObject);
var
byesRead:NativeUInt;
lpBaseAdd,lpBaseAdd2,lpBaseAdd3,s_begin,s_max,n_begin,n_max:DWORD;
tmp, tmpNK, id, idtmp:integer;
skillNameASCII:array[0..63] of wideChar;
I:Integer;
hProcess, ProcessID: DWORD;
begin
ProcessID:=0;
GetWindowThreadProcessId(FindWindow(nil,PChar(Edit4.Text)),@ProcessID);
if ProcessID<>0 then
begin
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessID);
if hProcess <> 0 then
begin
ReadProcessMemory(hProcess, ptr($D6F0AC), @lpBaseAdd, 4, byesRead);
ReadProcessMemory(hProcess, ptr(lpBaseAdd + $1C), @lpBaseAdd2, 4, byesRead) ;
ReadProcessMemory(hProcess, ptr(lpBaseAdd2 + $28), @lpBaseAdd3, 4, byesRead) ;
If lpBaseAdd3 <> 0 Then
ReadProcessMemory(hProcess, ptr(lpBaseAdd3 + $14C4), @s_begin, 4, byesRead);
ReadProcessMemory(hProcess, ptr(lpBaseAdd3 + $14C8), @s_max, 4, byesRead);
ReadProcessMemory(hProcess, ptr(lpBaseAdd + $128), @n_begin, 4, byesRead);
ReadProcessMemory(hProcess, ptr(lpBaseAdd + $134), @n_max, 4, byesRead);
If s_max < 100 Then
For i:=0 To s_max-1 do
begin
ReadProcessMemory(hProcess, ptr(s_begin + i * 4), @tmp, 4, byesRead);
skillarr[i].SkillAdd:= tmp;
// ReadProcessMemory(hProcess, ptr(tmp + 4), @tmpNK, 4, byesRead);
// ReadProcessMemory(hProcess, ptr(tmpNK + 4), @tmpNK, 4, byesRead);
// ReadProcessMemory(hProcess, ptr(tmpNK + $36), @skillarr[i].Energy, 4, byesRead);
ReadProcessMemory(hProcess, ptr(tmp + $C), @skillarr[i].Level, 4, byesRead);
ReadProcessMemory(hProcess, ptr(tmp + $18), @skillarr[i].TimeReady, 4, byesRead);
ReadProcessMemory(hProcess, ptr(tmp + $10), @skillarr[i].TimeDelay, 4, byesRead);
ReadProcessMemory(hProcess, ptr(tmp + $14), @skillarr[i].TimeAttack, 4, byesRead);
ReadProcessMemory(hProcess, ptr(tmp + 8), @tmp, 4, byesRead);
skillarr[i].sID:= tmp; //ID
tmp:= tmp * 10;
id:= tmp;
tmp:= tmp Mod n_max;
ReadProcessMemory(hProcess, ptr(n_begin + tmp * 4), @tmp, 4, byesRead);
ReadProcessMemory(hProcess, ptr(tmp + 8), @idtmp, 4, byesRead);
While idtmp <> id do
begin
ReadProcessMemory(hProcess, ptr(tmp), @tmp, 4, byesRead);
ReadProcessMemory(hProcess, ptr(tmp + 8), @idtmp, 4, byesRead);
end;
ReadProcessMemory(hProcess, ptr(tmp + 4), @tmp, 4, byesRead);
ReadProcessMemory(hProcess, ptr(tmp + $0), @tmp, 4, byesRead);
ReadProcessMemory(hProcess,Pointer(tmp + $0),@skillNameASCII,64,byesRead);
skillarr[i].Name:=skillNameASCII;
CheckListBox1.Items.Add(skillNameASCII);
end;
end;
end;
end;
|
|
|
|
|
|
подскажите пожалуйста, что за переменные n_begin и n_max? откуда они берутся? это массив названий скиллов в клиенте? как искать эти адреса?
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 02:32.
|
|