Вернуться   CoderX :: Forums > Основные форумы > Курилка
Войти через OpenID

Курилка Флудим и шутим тут!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 26.08.2016, 15:08   #1
Новичок
 
Регистрация: 25.08.2016
Сообщений: 19
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию Send packet back

Hello all,
Im all do like in this thread http://coderx.ru/showthread.php?t=11604
all work fine, i get packets from server, but how send it back?
example here:
Цитата:
int __fastcall new_AddNetworkQueue(unsigned int This, unsigned int EDX, TNetworkPacket *NetworkPacket)
{
if (NetworkPacket->subid == 0xFFFF)
{
switch (NetworkPacket->id)
{
case 0x2E:
decodeKey(NetworkPacket->data + 1);
break;
case 0x74:
// reply ?
Logger("Get from server.");
break;
default:
Logger("Get from server other");
break;
}
}

return true_AddNetworkQueue(This, EDX, NetworkPacket);
}
i want reply to 0x74 packet, how to do it?
Thanks.
wongerlt вне форума   Ответить с цитированием
Старый 26.08.2016, 17:20   #2
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,435
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Which chronicles the client?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 26.08.2016, 18:00   #3
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Try do it like it implemented in UNetworkHandler::RequestXXX (see your engine.dll for details)
Код:
void(__cdecl *_sendPacket)(void *self, char *format, ...) = NULL;
void *_clientSocket = NULL;

int __fastcall AddNetworkQueueHook(NetworkHandler* self, int, NetworkPacket *packet) {

	if (SendPacket == NULL) {
				__asm {
			mov		ebx, ecx
				mov     ecx, [ebx + 0x48] ; see offset in disassembler
				mov     edx, [ecx]
				mov		_clientSocket, ecx
				mov     ecx, [edx + 0x6C]; in disassembler too
				mov		_sendPacket, ecx;
		}
	}

	//do smth

	return result;
}
and use it e.g. _sendPacket(_clientSocket, "cddc", 0x39, 0xE2, 0, 0);

Последний раз редактировалось Smwr, 26.08.2016 в 18:06.
Smwr вне форума   Ответить с цитированием
Старый 26.08.2016, 18:45   #4
Новичок
 
Регистрация: 25.08.2016
Сообщений: 19
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию

Its interlude.
Thanks i will try this and reply result

Добавлено через 10 минут
it seems im still to noob for it

Последний раз редактировалось wongerlt, 26.08.2016 в 18:45. Причина: Добавлено сообщение
wongerlt вне форума   Ответить с цитированием
Старый 26.08.2016, 19:04   #5
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

for interlude will 0x68 instead 0x6C.
this should work
Smwr вне форума   Ответить с цитированием
Старый 26.08.2016, 19:42   #6
Новичок
 
Регистрация: 25.08.2016
Сообщений: 19
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию

Yes, i use 68.
I receive packets and etc, but now i want send packet to server from this place:

Цитата:
int __fastcall new_AddNetworkQueue(unsigned int This, unsigned int EDX, TNetworkPacket *NetworkPacket)
{
if ((*(unsigned int*) (KiUserExceptDispADR + 10) + KiUserExceptDispADR < hNtDllStart) || (*(unsigned int*) (KiUserExceptDispADR + 10) + KiUserExceptDispADR > hNtDllEnd))
ErrorExit("Bot Program Detected #0!");

unsigned int retAddr = *((unsigned int*) &NetworkPacket - 1);

if ((retAddr < hEngineStart) || (retAddr > hEngineEnd))
ErrorExit("Bot Program Detected #1!");

if (NetworkPacket->subid == 0xFFFF)
{
switch (NetworkPacket->id)
{
case 0x2E:
decodeKey(NetworkPacket->data + 1);
break;
case 0x74:
// this place send packet..?
break;
}
}

return true_AddNetworkQueue(This, EDX, NetworkPacket);
}
i want send packet with type 0x68.
what function to use?
wongerlt вне форума   Ответить с цитированием
Старый 26.08.2016, 20:47   #7
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Код:
void(__cdecl *_sendPacket)(void *self, char *format, ...) = NULL;
void *_clientSocket = NULL;

int __fastcall new_AddNetworkQueue(unsigned int This, unsigned int EDX, TNetworkPacket *NetworkPacket)
{

	if (SendPacket == NULL) {
				__asm {
			mov		ebx, ecx
				mov     ecx, [ebx + 0x48] ; see offset in disassembler
				mov     edx, [ecx]
				mov		_clientSocket, ecx
				mov     ecx, [edx + 0x6C]; in disassembler too
				mov		_sendPacket, ecx;
		}
	}

if ((*(unsigned int*) (KiUserExceptDispADR + 10) + KiUserExceptDispADR < hNtDllStart) || (*(unsigned int*) (KiUserExceptDispADR + 10) + KiUserExceptDispADR > hNtDllEnd))
ErrorExit("Bot Program Detected #0!");

unsigned int retAddr = *((unsigned int*) &NetworkPacket - 1);

if ((retAddr < hEngineStart) || (retAddr > hEngineEnd))
ErrorExit("Bot Program Detected #1!");

if (NetworkPacket->subid == 0xFFFF)
{
switch (NetworkPacket->id)
{
case 0x2E:
decodeKey(NetworkPacket->data + 1);
break;
case 0x74:
 _sendPacket(_clientSocket, .....);
break;
}
}

return true_AddNetworkQueue(This, EDX, NetworkPacket);
}
Smwr вне форума   Ответить с цитированием
Старый 27.08.2016, 19:10   #8
Новичок
 
Регистрация: 25.08.2016
Сообщений: 19
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию

Thanks you!!!!!! work perfect
and this
SendPacket
im set as int SendPacket = NULL; is good or no? but it work and with it.

Добавлено через 22 часа 10 минут
Now i want send string to server.
im use:
_sendPacket(_clientSocket, "cs", 0xF9,"Test");
in l2j i use:
ReadS();
and i get in log this error:
Too many buffer underflow exceptions.

How to send text?

Последний раз редактировалось wongerlt, 27.08.2016 в 19:13. Причина: Добавлено сообщение
wongerlt вне форума   Ответить с цитированием
Старый 28.08.2016, 09:22   #9
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

maybe
_sendPacket(_clientSocket, "cS", 0xF9,L"Test");
Smwr вне форума   Ответить с цитированием
Старый 28.08.2016, 14:27   #10
Новичок
 
Регистрация: 25.08.2016
Сообщений: 19
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию

Thanks you, work
wongerlt вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Курилка


Опции темы
Опции просмотра

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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!