Исходник RakHook 1.0-beta

imring

Ride the Lightning
Автор темы
Всефорумный модератор
2,355
2,516
RakHook - библиотека, которая добавляет события RakNet'a (входящие/исходящие пакеты и RPC), эмуляцию и отправку пакетов и RPC.
Есть одновременная поддержка версий 0.3.7-R1, 0.3.7-R3-1, 0.3.7-R4 и 0.3DL-R1.

Функции​

C++:
std::uintptr_t rakhook::samp_addr(std::uintptr_t offset = 0); // получить адрес samp.dll со смещением
samp_ver rakhook::samp_version(); // получить версию SA:MP, поддерживаемую RakHook.

bool rakhook::initialize(); // инициализировать RakHook.
void rakhook::destroy(); // завершение работы библиотеки.

bool rakhook::send(RakNet::BitStream *bs, PacketPriority priority, PacketReliability reliability, char ord_channel); // отправка пакета.
bool rakhook::send_rpc(int id, RakNet::BitStream *bs, PacketPriority priority, PacketReliability reliability, char ord_channel, bool sh_timestamp); // отправка RPC.

bool rakhook::emul_rpc(unsigned char id, RakNet::BitStream &rpc_bs); // эмуляция RPC.
bool rakhook::emul_packet(RakNet::BitStream &pbs); // эмуляция пакета.

События​

C++:
// исходящий RPC.
rakhook::on_send_rpc += [](int &id, RakNet::BitStream *&bs, PacketPriority &priority, PacketReliability &reliability, char &ord_channel, bool &sh_timestamp) -> bool {
  return true;
};

// исходящий пакет.
rakhook::on_send_packet += [](RakNet::BitStream *&bs, PacketPriority &priority, PacketReliability &reliability, char &ord_channel) -> bool {
  return true;
};

// входящий RPC.
rakhook::on_receive_rpc += [](unsigned char &id, RakNet::BitStream *&&bs) -> bool {
  return true;
};

// входящий пакет.
rakhook::on_receive_packet += [](Packet *&p) -> bool {
  return true;
};

Пример: https://github.com/imring/RakHook/tree/master/example
Ссылка на библиотеку: https://github.com/imring/RakHook
 
Последнее редактирование:

taichi

Известный
15
1

Вложения

  • samp.dll
    1.4 MB · Просмотры: 11

taichi

Известный
15
1
и еще скинь какой-то сервер, чтобы протетил

46.174.49.47:7856
nick: imring
pass: 123456

Только так могу, так как серверов на ДЛ довольно мало и найти открытый не представляется возможным.
 
Последнее редактирование:

imring

Ride the Lightning
Автор темы
Всефорумный модератор
2,355
2,516
46.174.49.47:7856
nick: imring
pass: 123456

Только так могу, так как серверов на ДЛ довольно мало и найти открытый не представляется возможным.
запустил локал сервер
1605351762245.png
 
  • Нравится
Реакции: etereon

imring

Ride the Lightning
Автор темы
Всефорумный модератор
2,355
2,516
мини обнова:
- добавлена поддержка версии 0.3dl-r1
1605356538351.png
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,710
За хуки ракпира лайк однозначно.
Кстати я по исходнику так и не понял. В хандлере рпц получается идет перебор хуков, если он есть, то return false?
 

imring

Ride the Lightning
Автор темы
Всефорумный модератор
2,355
2,516
  • Нравится
Реакции: kin4stat

imring

Ride the Lightning
Автор темы
Всефорумный модератор
2,355
2,516
0.2-beta:
- исправлена проблема с утечкой памяти в RakClientInterface::Receive (сообщил @#Northn);
- добавлена одновременная поддержка доступных версий SA-MP (предложили @#Northn и @SR_team).