 |
Отправка пакета - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
06.09.2012, 20:45
|
#1
|
|
|
|
Пехотинец
|
 Регистрация: 20.12.2010
 Сообщений: 58
 Популярность: 50
 Сказал(а) спасибо: 22
Поблагодарили 36 раз(а) в 15 сообщениях
|
Отправка пакета
Такая проблема: при отправке пакета медитации, смены итемов местами в инвентаре, всё проходит успешно, но при отправке более длинного пакета, разрывается соединение с сервером.
P.S. Пакет - 25002E0000008800000000000000DC08000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000009245000009470000000000000000000000 00000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000D0000 000300000000000000000000000000000000000000
|
|
|
06.09.2012, 22:08
|
#2
|
|
|
|
Рыцарь-лейтенант
|
 Регистрация: 31.01.2011
 Сообщений: 413
 Популярность: 14489
 Золото Zhyk.Ru: 300
 Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
|
Re: Отправка пакета
Кривой инжектор. На чём пишешь?
Подозрение, что пакет на:
1. крафт нирваны
2. регрейд 8 ранга
3. трактаты
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
|
|
|
07.09.2012, 08:52
|
#3
|
|
|
|
Пехотинец
|
 Регистрация: 20.12.2010
 Сообщений: 58
 Популярность: 50
 Сказал(а) спасибо: 22
Поблагодарили 36 раз(а) в 15 сообщениях
|
Re: Отправка пакета
Smertig, Пишу на Delphi. Пакет крафта трактата.
Код:
 |
Цитата: |
 |
|
|
|
|
|
|
|
procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer;
aParamsSize: DWord);
var
hThread: THandle;
lpNumberOfBytes: 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, lpNumberOfBytes);
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 ointer;
Len Word;
begin
CallAddress:=Pointer($0063F890);
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, dword ptr [PW_BASE_ADDRESS]
mov ecx, dword ptr [ecx+$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 i do
aParams.Packet[i]:=strtoint('$'+Packet[i*2+1]+Packet[i*2+2]);
end;
procedure Packet(Packet: string);
var
aParams: TParams;
begin
StrToByte(Packet,aParams);
InjectFunc(hProcess,@PacketCall,@aParams,sizeof(aP arams));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Wnd:=FindWindow(PChar('Elementclient Window'), nil);
GetWindowThreadProcessId(Wnd,@PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,PID );
Packet('25002E0000008800000000000000DC080000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000092450000094700000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 000D0000000300000000000000000000000000000000000000 ');
end; |
|
 |
|
 |
|
|
|
|
07.09.2012, 10:45
|
#4
|
|
|
|
Пехотинец
|
 Регистрация: 12.06.2012
 Сообщений: 73
 Популярность: 529
 Сказал(а) спасибо: 16
Поблагодарили 49 раз(а) в 33 сообщениях
|
Re: Отправка пакета
проверь BA GA и Packcall
|
|
|
07.09.2012, 11:01
|
#5
|
|
|
|
Разведчик
|
 Регистрация: 23.02.2011
 Сообщений: 19
 Популярность: 18
 Сказал(а) спасибо: 30
Поблагодарили 4 раз(а) в 2 сообщениях
|
Re: Отправка пакета
|
|
|
07.09.2012, 11:38
|
#6
|
|
|
|
Пехотинец
|
 Регистрация: 20.12.2010
 Сообщений: 58
 Популярность: 50
 Сказал(а) спасибо: 22
Поблагодарили 36 раз(а) в 15 сообщениях
|
Re: Отправка пакета
Goooooogle, Они верны.
vladoscom93, Пробелов в коде нету, при копировании на форум, появились. Заменил String на AnsiString, результат тот же - вылет с сервера. Ай блин, забыл увеличить сам массив байтов, строчки то заменил, а вот массив... Установил 1..292 (длина пакета именно 292), заработало, трактат скрафтился. Спасибо большое за помощь. Тему можно закрыть.
Последний раз редактировалось Zo_Om4eG; 07.09.2012 в 11:41.
|
|
|
07.09.2012, 20:28
|
#7
|
|
|
|
Разведчик
|
 Регистрация: 23.02.2011
 Сообщений: 19
 Популярность: 18
 Сказал(а) спасибо: 30
Поблагодарили 4 раз(а) в 2 сообщениях
|
Re: Отправка пакета
размер массива байт лучше устанавливать так 0..292 ибо потом могут быть косяки в некоторых случаях
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 05:48.
|
 |