Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг > Шифрации серверов
Войти через OpenID

Шифрации серверов Здесь разбираемся с алгоритмами шифрации различных серверов

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.10.2009, 01:06   #1
Местный
 
Аватар для nezabudkin
 
Регистрация: 06.03.2008
Сообщений: 154
Сказал Спасибо: 46
Имеет 130 спасибок в 38 сообщенях
nezabudkin
По умолчанию NewXor. изменения в 3.5.25.145+.

Цитата:
Сообщение от alexteam
данный топик - вырезка с темы Модификация L2phx 3.2.0 (Официальное продолжение программы).
этот кусок темы содержит обсуждения изменений/нововведений в newxor'е включенных в релиз 3.5.25.145
Если читать эту тему внимательно, то уверен что 100% вопросов касаемо изменений отпадут сами собой.
и 99% вопросов касаемых того где взять пример, и что необходимо для того чтобы пример скомпилировать.
alexteam, а нельзя ли модуль uencdec, и вообще, все что относится к шифрации/дешифрации и определению имени соединения, вынести в отдельный модуль (dll)? Чтобы его можно было дорабатывать и компилировать отдельно от пакетхака.

Последний раз редактировалось alexteam, 07.10.2009 в 13:22.
nezabudkin вне форума   Ответить с цитированием
Старый 05.10.2009, 01:09   #2
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

самая важная часть вынесена. (newxor)
в енкдеке без него остаеться только определение имени персонажа и прочие мелочи, работающие уже с декодированным трафиком.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 05.10.2009, 16:44   #3
Местный
 
Аватар для nezabudkin
 
Регистрация: 06.03.2008
Сообщений: 154
Сказал Спасибо: 46
Имеет 130 спасибок в 38 сообщенях
nezabudkin
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
самая важная часть вынесена. (newxor)
в енкдеке без него остаеться только определение имени персонажа и прочие мелочи
блин, енкдек кривой как хз что, он странно обращается к newxor, из-за этого newxor практически невозможно переделать под действительно нестандартное шифрование!
Я бы сам этот енкдек переписал бы, но у меня некак не получается прикрутить к делфе все плюшки для компиляции пакетхака.
nezabudkin вне форума   Ответить с цитированием
Старый 05.10.2009, 17:29   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

ну, он такой и в 83 был, один в один, они расчитаны на то что первые 2 байта означают длинну пакета, если они не означают длинну пакета - то одним ксорингом и енкдеком тут не обойдешься. прийдется еще и сокетный движек выносить в отдельный модуль, и в глобалфункс модуле покопаться по идее, в общем та еще задачка.

работоспособность невксора на протоколе где первые 2 байта пакета = длинне пакета только что проверена

Добавлено через 2 минуты
по поводу того ассорти которое надо поставить,
в первом посту я бог знает когда приколотил архивчик с компонентами (полный) который юзаю на семерке.
в архивчике нет только правленого фастскрипта, он на фтп, кстати, щас его обновлю.

Добавлено через 9 минут
в общем идея неоднократно обмозговывалась, руки вот до реализации не доходили, суть идеи довольно проста как в реализации так и в использовании.
требуется помимо этих вот функций
procedure DecryptGP(var Data; const Size: Word);override;
procedure EncryptGP(var Data; const Size: Word);override;
добавить еще 2 функции
procedure DecryptTRAFFICK(var Data; const Size: Word);override;
procedure EncryptTRAFFICK(var Data; const Size: Word);override;
непосредственно вызываемые в сокетном енджине при приходе пакета до обработки их.
(кстати, равлоги текущие это глубокое эхо этой самой идеи... )
DecryptTRAFFICK должен будет приводить траффик в порядок (в вид первые 2 байта = длинне пакета)
и по аналогии EncryptTRAFFICK вызываемый непосредственно перед отправкой, с обратым DecryptTRAFFICKу действием.

т.е. схема.
сокетный движек получает часть данных с стека
отправляет эту часть в DecryptTRAFFICK (при чем следует учесть что частью траффика может быть и полпакета такие случаи очень редки но исключать их нельзя, у меня за это аккумулятор в пх отвечает, а тут прийдеться без него)
далее декодинг с помошью DecryptGP
встроенная вытягивалка имени содинения, плагины, скрипты,
енкодинг с помошью EncryptGP
и последующий енкодинг EncryptTRAFFICKом непосредственно перед отправкой.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 05.10.2009 в 20:37. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 2 спасибками от:
Старый 05.10.2009, 17:41   #5
Местный
 
Аватар для nezabudkin
 
Регистрация: 06.03.2008
Сообщений: 154
Сказал Спасибо: 46
Имеет 130 спасибок в 38 сообщенях
nezabudkin
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
добавить еще 2 функции
procedure DecryptTRAFFICK(var Data; const Size: Word);override;
procedure EncryptTRAFFICK(var Data; const Size: Word);override;
непосредственно вызываемые в сокетном енджине при приходе пакета до обработки их.
если не сложно, давай поробуй,
может отдельную dll-ку для этого организовать?
кроме первых 2-х байт будут ли еще различия в пакетах?
nezabudkin вне форума   Ответить с цитированием
Старый 06.10.2009, 00:16   #6
Местный
 
Аватар для nezabudkin
 
Регистрация: 06.03.2008
Сообщений: 154
Сказал Спасибо: 46
Имеет 130 спасибок в 38 сообщенях
nezabudkin
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
сокетный движек получает часть данных с стека
отправляет эту часть в DecryptTRAFFICK (при чем следует учесть что частью траффика может быть и полпакета такие случаи очень редки но исключать их нельзя, у меня за это аккумулятор в пх отвечает, а тут прийдеться без него)
а можно чуть по подробнее, в каких таких случаях может прийти только часть пакета, и как это определить что пакет не полный?
nezabudkin вне форума   Ответить с цитированием
Старый 06.10.2009, 00:29   #7
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

nezabudkin, в случаях большой нагрузки на серв или канал или ещё чего ибо протокол TCP потоковый и заботится только о том чтобы данные приходили полностью, в правильном порядке, но разбивать их на порции может как угодно при необходимости, а определять что пакет пришел в одной порции не полный смысла нет ибо работать надо с потоком извлекая из него пакеты по мере поступления исходя из их размера в первых двух байтах...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 05.10.2009, 17:46   #8
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
кроме первых 2-х байт будут ли еще различия в пакетах?
в смысле ?.
речь о том чтобы добавить 2 функции (процедуры с вар параметром) приводящие траффик полученный с сервера/клиента в вид понятный для сокетного енджина и DecryptGP и, естественно обратной процедуры.
т.е. вместо 2х шагов декрипт-пх-енкрипт у нас получиться 4. -предекрипт-декрипт-пх-енкрипт-постенкрипт (както так)
добавиться предварительная обработка и постобработка.

Цитата:
может отдельную dll-ку для этого организовать?
зачем ?
если пре и пост обработки не нужны - эти функции просто следует оставить пустыми.

Добавлено через 1 минуту
кстати, рабочий невксор с дефолтной обработкой всунул в плагинкоддинг, обновлю его вместе с пх как только закончу с этой идеей.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 05.10.2009 в 17:51. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 4 спасибками от:
Старый 05.10.2009, 18:30   #9
Местный
 
Аватар для nezabudkin
 
Регистрация: 06.03.2008
Сообщений: 154
Сказал Спасибо: 46
Имеет 130 спасибок в 38 сообщенях
nezabudkin
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
кстати, рабочий невксор с дефолтной обработкой всунул в плагинкоддинг
Проверь newxor на тест-сервере MKSа. Я как подключаю эту dll-ку, так глюки с расшифровкой начинаются и, вообще, потом клиент зависает, хотя ничего там не менял. Хотя на старых версиях пакетхака я newxor успешно переделывал.
Может это потому что я использую coding.pas старый?

Последний раз редактировалось nezabudkin, 05.10.2009 в 18:32.
nezabudkin вне форума   Ответить с цитированием
Старый 05.10.2009, 21:05   #10
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
Проверь newxor на тест-сервере MKSа
скрина мало ? %)

Цитата:
Может это потому что я использую coding.pas старый?
пиздец... и этим все сказано...
возми пример с свн, все 3 файлика, не забудь про тамошний фастмем, он тож нужен.
в лучшем случае - стяни все что на свн, в папку билд скинь готовый билд пх (взяв его на фтп)
открой невксор в плагинкоддинг, он уже настроен на дебаг (главное не забудь его подцепить в настройках пх)

Добавлено через 1 час 8 минут

По просьбам трудящихся. релиз 3.5.25.145.
Цитата:
[-] некритичная бага с WM_ProcessPacket при вызове его с плагина при условии что тунель уже умер, приводящая к спаму ошибкой

[+] в TCodingClass добавленны:
procedure PreDecrypt(var Data; var Size: Word);
procedure PostEncrypt(var Data; var Size: Word);

схема выполнения:
обычный "сниффинг"
Client/Server>>PreDecrypt>аккумулятор сокетного движка>DecryptGP>(PH. плагины и скрипты)>EncryptGP>PostEncrypt>>Server/Client

для произвольной отправки пакета (плагинами, скриптами)
плагин/скрипт>EncryptGP>PostEncrypt>>Server/Client

в PreDecrypt поступают необработанные данные только что вытянутые из тцп стека. после обработки в PreDecrypt данные должны принять вид - "первые 2 байта = длинне пакета"
дабы сокетный движек обрабатывал это данные без помех.

в PostEncrypt должны поступают данные в формате "первые 2 байта = длинна", на выходе - данные понятные серверу/клиенту.

если нужды в PreDecrypt/PostEncrypt нет то оставить эти функции пустыми.
[+] в PluginCodding добавлен невксор с стандартным ксорингом для серверов без шифрации. с учетом этих изменений.[*] newxor сможет менять длинну пакета.
релиз 3.5.25.145 перезалит
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 07.10.2009 в 13:24. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от:
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг > Шифрации серверов



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

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


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

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

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