 |
Ребят, помогите найти инжекты или поделитесь - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
25.03.2014, 14:31
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 13.09.2012
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Ребят, помогите найти код для отсылки пакетов клиенту
Всем привет. Тут на днях хотел попробовать склепать программку, но видимо моих знаний хватило лишь на получение информации из клиента игры. Без проблем все и ХП показывает и инвентарь со скилами парсит и pwdatabase парсить научил, но вот не могу разобраться с инжектами. Я так понимаю, готовые инжекты для 1.4.7 версий игры и ниже http://zhyk.ru/forum/showthread.php?t=144558, я незнаю подойдут ли они или нет для 1.5.0. Да и с ними все равно не могу разобраться. Где вставлять, какие переменные, поделитесь плиз у кого есть коды для инжектов использования предмета из инвентаря и скила, уже 3й день мучаю прогу  Заранее спасибо.
Буду очень рад понять, как вычислить ассемблерный код отправки пакета
Код:
// Использование предмета в инвентаре
void INJECTOR::UseItem(DWORD id, BYTE cell)
{
PACKET pack;
pack.len=10;
char Packet[10] = "\x28\x00\x00\x01\x0D\x00\xAD\x21\x00\x00";
memcpy(pack.Bytes,Packet,pack.len);
pack.Bytes[4] = cell; // номер ячейки
memcpy(pack.Bytes+6,&id,4);
SendPacket(&pack);
}
И вот этого
Код:
// Инъекция и отправка пакета
BYTE INJECTOR::SendPacket(PACKET* pack)
{
HANDLE hProcThread;
char fdata[29]="\x60\x8B\x0D\x00\x00\x00\x00\x8B\x49\x20\x68\x11\x11\x11\x11\x68\x22\x22\x22\x22\xB8\x33\x33\x33\x33\xFF\xD0\x61\xC3";
int lenfunc=29;
DWORD func=F_SEND_PACKET;
DWORD ba=BA;
DWORD len=pack->len;
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
if (!hProcess) return 0;
WriteProcessMemory(hProcess,pParams,pack->Bytes,len,NULL); // инжектим данные пакета
DWORD addr=DWORD(pParams); // возьмём адрес расположения данных нашего пакета
memcpy(fdata+3,&ba,4);
memcpy(fdata+11,&len,4);
memcpy(fdata+16,&addr,4); // запишем адрес расположения пакета прямо в массив кода
memcpy(fdata+21,&func,4);
WriteProcessMemory(hProcess,pFunction,fdata,lenfunc,NULL); // инжектим наш код
hProcThread = CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)pFunction,NULL,NULL,NULL);
if(hProcThread==INVALID_HANDLE_VALUE) // не удалось создать поток
{
CloseHandle(hProcess);
return 0;
}
WaitForSingleObject(hProcThread, INFINITE); // ожидаем завершения работы потока
CloseHandle(hProcThread); // освобождаем
CloseHandle(hProcess);
return 1; // успешная инъекция и выполнение кода
Последний раз редактировалось Uncraser; 26.03.2014 в 09:35.
|
|
|
31.03.2014, 10:41
|
#2
|
|
|
|
Разведчик
|
 Регистрация: 14.10.2012
 Сообщений: 6
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Ребят, помогите найти инжекты или поделитесь
в пакетах главное знать значение F_SEND_PACKET
Если знаете свой Base_Address, то может это пригодится...
Последний раз редактировалось bsbalex; 28.04.2014 в 10:14.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 08:40.
|
 |