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

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 15.01.2017, 18:27   #1
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Экспортируется только экземпляр, а не методы (они виртуальные, поэтому хватит определения что я дал выше).
Выделять/освобождать память под структуру пакета и буффер надо именно ими.
Smwr вне форума   Ответить с цитированием
Старый 15.01.2017, 21:16   #2
Новичок
 
Регистрация: 17.04.2016
Сообщений: 8
Сказал Спасибо: 6
Имеет 0 спасибок в 0 сообщенях
DaVilka пока неопределено
По умолчанию

Цитата:
Сообщение от Smwr Посмотреть сообщение
Экспортируется только экземпляр, а не методы (они виртуальные, поэтому хватит определения что я дал выше).
Выделять/освобождать память под структуру пакета и буффер надо именно ими.
А можно пример, или описание хода действий, чето не пойму

Добавлено через 1 час 51 минуту
Цитата:
Сообщение от Smwr Посмотреть сообщение
Экспортируется только экземпляр, а не методы (они виртуальные, поэтому хватит определения что я дал выше).
Выделять/освобождать память под структуру пакета и буффер надо именно ими.
Что то я не могу найти в Core.dll FMallocWindows

Последний раз редактировалось DaVilka, 15.01.2017 в 21:16. Причина: Добавлено сообщение
DaVilka вне форума   Ответить с цитированием
Старый 16.01.2017, 07:41   #3
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

DaVilka,
Код:
  hCore:= GetModuleHandle('core.dll');
  L2MemAlloc:= GetProcAddress(hCore, '?GMalloc@@3PAVFMalloc@@A');
...

function L2MemoryAllocNetPacket: PNetworkPacket; register;
asm
  push NetPacket
  push $0C
  mov edx, L2MemAlloc
  mov ecx, [edx]
  mov eax, [ecx]
  mov edx, [eax]
  call edx
end;

function L2MemoryAllocNetCmd(len: integer): Pointer; register;
asm
  push NetCmd
  push len
  mov edx, L2MemAlloc
  mov ecx, [edx]
  mov edx, [ecx]
  mov eax, [edx]
  call eax
end;


procedure L2MemoryFreeNetPacket(pck: PNetworkPacket); stdcall;
asm
  lea     edi, pck
  mov     edx, L2MemAlloc
  mov     ecx, [edx]
  mov     eax, [ecx]
  mov     edx, [edi]
  mov     edx, [edx+8]
  push    edx
  mov     eax, [eax+8]
  call    eax
  mov     ecx, L2MemAlloc
  mov     ecx, [ecx]
  mov     eax, [edi]
  mov     edx, [ecx]
  push    eax
  mov     edx, [edx+8]
  call    edx
end;

...

var
  np: PNetworkPacket;
begin
  np:= L2MemoryAllocNetPacket;
  np.id:= pck[0];
  np.res:= 0;
  np.size:= len - 1;
  np.res2:= 0;
  np.id2:= -1;
  np.data:= L2MemoryAllocNetCmd(len - 1);
  Move(pck[1], np.data[0], len - 1);

  AddNetworkQueue(np);
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 16.01.2017, 10:15   #4
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

DaVilka,
Код:
char payload[] = { 0xC9, 0x29, 0x13, 0x10, 0x02, 0x00, 0x00, 0x00 };
HMODULE hCore = GetModuleHandleA("Core.dll");
FMalloc* pMalloc = (FMalloc*)GetProcAddress(hCore, "?GMalloc@@3PAVFMalloc@@A");
NetworkPacket* packet = (NetworkPacket*)pMalloc->Allocate(sizeof(NetworkPacket), 0);
packet->Buffer = (uint8_t*)pMalloc->Allocate(sizeof(payload), 0);
std::memcpy(packet->Buffer, payload, sizeof(payload));
packet->Id = 0x27;
packet->Id2 = 0xFF;
packet->Size = sizeof(payload);
//do stuff
Smwr вне форума   Ответить с цитированием
За это сообщение Smwr нажился 2 спасибками от:
Старый 16.01.2017, 19:57   #5
Новичок
 
Регистрация: 17.04.2016
Сообщений: 8
Сказал Спасибо: 6
Имеет 0 спасибок в 0 сообщенях
DaVilka пока неопределено
По умолчанию

Цитата:
Сообщение от Smwr Посмотреть сообщение
NetworkPacket* packet = (NetworkPacket*)pMalloc->Allocate(sizeof(NetworkPacket), 0);
Вот здесь клиент падает, либа подключается, функцию находит хм

Последний раз редактировалось DaVilka, 16.01.2017 в 23:24.
DaVilka вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


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

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

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