Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Отправка пакета

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 19.01.2016, 15:45   #1
 Разведчик
Аватар для Venzel
 
Venzel никому не известный тип
Регистрация: 06.12.2009
Сообщений: 20
Популярность: 10
Сказал(а) спасибо: 5
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Отправка пакета

Доброго времени суток! Подскажите пожалуйста почему крашится клиент при отправке пакета? Код взял другой темы, оффсеты вроде верные, если +$30 это HostPlayerStruct. Делфи XE7.
Код:
type
 PParams = ^TParams;
 TParams = packed record
 Packet: array [0..100] of byte;
 Param1,WID: DWord;
 end;

 procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer;
 aParamsSize: DWord);
 var
 hThread: THandle;
 lpNumberOfBytes:size_t;  lpNumberOfBytes2: dword;
 ThreadAddr, ParamAddr: Pointer;
 begin
 if ProcessID<>0 then
 begin
 // ---- Выделяем место в памяти процесса, и записываем туда нашу функцию
 ThreadAddr := VirtualAllocEx(ProcessID, nil, 256, MEM_COMMIT, PAGE_READWRITE);
 WriteProcessMemory(ProcessID, ThreadAddr, Func, 256, lpNumberOfBytes);

 // ---- Также запишем параметры к ней
 ParamAddr := VirtualAllocEx(ProcessID, nil, aParamsSize, MEM_COMMIT, PAGE_READWRITE);
 WriteProcessMemory(ProcessID, ParamAddr, aParams, aParamsSize, lpNumberOfBytes);

 // ---- Создаем поток, в котором все это будет выполняться.
 hThread := CreateRemoteThread(ProcessID, nil, 0, ThreadAddr, ParamAddr, 0, lpNumberOfBytes2);

 // ---- Ожидаем завершения функции
 WaitForSingleObject(hThread, INFINITE);

 // ---- подчищаем за собой
 CloseHandle(hThread);
 VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
 VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
 end
 end;
procedure PacketCall(aPParams:PParams); stdcall;
 var
 CallAddress,pPacket:Pointer;
 Len: DWord;
 begin
 CallAddress:=Pointer($7A3BD0); //адрес был устаревший
 Len:=aPParams^.Param1;
 pPacket:=@aPParams^.Packet;
 asm
 pushad
 mov ecx, dword ptr [$D6F0AC]
 mov ecx, dword ptr [ecx+$30] //20
 push Len
 push pPacket
 call CallAddress
 popad
 end;
 end;

procedure StrToByte(Packet:string; var aParams:TParams);
 var
 i:integer;
 begin
 i:=(length(Packet) div 2)-1;
 aParams.Param1:=i+1;
 for i:=0 to 1 do
 aParams.Packet[i]:=strtoint('$'+Packet[i*2+1]+Packet[i*2+2]);
 end;

procedure Packet(Packet: string);
var
   aParams: TParams;
   PID, hProcess: DWord;
   wnd: THandle;
 begin
 wnd:=FindWindow(nil,'Perfect World');
      GetWindowThreadProcessId(wnd, @PID);
      hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
      StrToByte(Packet,aParams);
      InjectFunc(hProcess,@PacketCall,@aParams,sizeof(aParams));
      CloseHandle(hProcess); //забыл дописать
 end;



procedure TForm3.Button1Click(Sender: TObject);
begin
Packet('2300DC1B5086');
end;
  Ответить с цитированием
Старый 20.01.2016, 00:38   #2
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Отправка пакета

Цитата:
оффсеты вроде верные, если +$30 это HostPlayerStruct

Там не HostPlayer нужен, а GameSession. Методом проб и ошибок проверь $1C, $20, $24, $28, $2C, $34, $38
Дельфи не знаю, остальные ошибки не могу указать

Update: по подсказке N00bSa1b0t'а: +$20
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.

Последний раз редактировалось Smertig; 20.01.2016 в 00:41.
  Ответить с цитированием
Старый 20.01.2016, 13:56   #3
 Разведчик
Аватар для Venzel
 
Venzel никому не известный тип
Регистрация: 06.12.2009
Сообщений: 20
Популярность: 10
Сказал(а) спасибо: 5
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Re: Отправка пакета

Посмотрел в дебагере, +$20 должно быть.

Ошибка была в цикле, вместо
Код:
 for i:=0 to 1 do
должно быть
Код:
 for i:=0 to i do
  Ответить с цитированием
Старый 22.01.2016, 00:34   #4
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 02.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Отправка пакета

До кучи готовый [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Отправка пакета noname_pw Общение разработчиков 5 23.12.2014 17:07
[Пакеты] Отправка пакета xOmGLoLx Общение разработчиков 1 08.10.2013 20:51
[Помогите!] Отправка пакета sith999 Вопросы и ответы, обсуждения 3 18.06.2013 17:23
Отправка пакета Zo_Om4eG Общение разработчиков 6 07.09.2012 20:28
[Помогите!] Отправка пакета lcd1232 Общение разработчиков 6 18.02.2012 13:21

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 02:26.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net