Вопрос по RakNet

dekname

Участник
Автор темы
44
2
Приветствую. Есть ли какое то шифрование / сжатие в RakNet? (если есть, то какое).

@SR_team
 

memir

🇷🇺
Всефорумный модератор
333
599
привет, есть. Клиент кодирует специальным образом исходящий трафик на уровне сокетлеера
 

dekname

Участник
Автор темы
44
2
привет, есть. Клиент кодирует специальным образом исходящий трафик на уровне сокетлеера
Это самопалка от kalcor. Интересно само устройство RakNet (сжатие и т.д)
 

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Всефорумный модератор
2,636
2,486
Там есть код хаффмана, но вот интересно в каком порядке это все вызывать?

Приходит пакет, сначала код хаффмана, а потом Kalcor XOR или наоборот?
метод Хоффмана сжимает строки, если ты об этом
он используется в парочке рпц: при показе диалоговых окон и при установке текста на объект
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Приходит пакет, сначала код хаффмана, а потом Kalcor XOR или наоборот?
Xor от калкора является минималистичным шифрованием, и трафик никак не сжимает.
Код Хаффмана может использоваться для сжатия строк, ты должен явным образом использовать его при записи/чтении из битстрима.
Дополнительных сжатий и прочего не происходит.

Захучить recv/send от winapi и прочитать пакеты без RakNet'a
RakNet работает поверх протокола UDP, который не заботится о доставке и порядке пакетов, также следует учитывать фрагментацию.
Если тебе все же захочется нормально прочитать трафик ракнета через хук функций связанных с сокетами, придется как минимум половину РакНет выдернуть и пристроить к этим хукам, сомневаюсь что тебе нужны эти головные проблемы, да и с точки зрения производительности такое решение плохое.
 
Последнее редактирование:
  • Нравится
Реакции: AnWu

dekname

Участник
Автор темы
44
2
Xor от калкора является минималистичным шифрованием, и трафик никак не сжимает.
Код Хаффмана может использоваться для сжатия строк, ты должен явным образом использовать его при записи/чтении из битстрима.
Дополнительных сжатий и прочего не происходит.


RakNet работает поверх протокола UDP, который не заботится о доставке и порядке пакетов, также следует учитывать фрагментацию.
Если тебе все же захочется нормально прочитать трафик ракнета через хук функций связанных с сокетами, придется как минимум половину РакНет выдернуть и пристроить к этим хукам, сомневаюсь что тебе нужны эти головные проблемы, да и с точки зрения производительности такое решение плохое.
Зачем половину РакНета? Ну представим ситуацию, что ты хочешь захукать игру и не знаешь ,какой там нетворк, твои действия это обычно захукать send/recv winapi, ибо других способов нет и разобрать пакеты, но в SA-MP по какой то причине не приходят чистые пакеты (даже если заюзать xor от калькора), то все равно чистых пакетов нема
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Зачем половину РакНета?
Ну, с этим я может и переборщил, но тебе как минимум нужно будет разбираться в них.

Ну представим ситуацию, что ты хочешь захукать игру и не знаешь ,какой там нетворк, твои действия это обычно захукать send/recv winapi, ибо других способов нет и разобрать пакеты
Использовать снифер, к тому же без реверсинга бинарников, может быть сложно понять смысл данных, а если они и зашифрованы то вообще не понять.

но в SA-MP по какой то причине не приходят чистые пакеты (даже если заюзать xor от калькора), то все равно чистых пакетов нема
Что ты имеешь ввиду под словом "чистые пакеты"? Когда возвращается recvfrom, это не сигнализирует о получении нового пакета, это означает что получен новый кусок данных. Пакет может быть разделен на несколько кусков, получен не в том порядке, потеряться в дороге. Тебе придется самому все фильтровать, контролировать и исправлять.

Посмотри исходники RakPeer.cpp, SocketLayer.cpp и ReliabilityLayer.cpp