Защита Защита сервера с исходниками (С++)

kick

Магистр Йода
Administrator
Сообщения
5.010
Розыгрыши
3
Реакции
3.563
Баллы
6.485
Защита состоит из клиентской и серверной части. Реализовано шифрование трафика от клиента на сервер. Проверка игрового клиента(защита от OOG бота).
Защита написана в VS2008. Использовался boost 1_55_0.
Как запустить и проверить работу.
1.Нужен чистый клиент GF (83 протокол).
2.Копируем в папку system ProxyConnector.exe (можно взять готовый из папки Release) и AddNetQueue.dll(можно взять готовый из проекта AddNetQueue).
Либо можно собрать самому( нужна библиотека boost 1_55).
3.l2.ini устанавливаем адрес сервера 83.137.50.6(готовый сервер с поднятой защитой). Либо настроить для своего сервера ( об этом ниже).
4.Запускаем ProxyConnector.exe с правами админа . Появлется окно консоли
5.Через несколько секунд запускается клиент Lineage.
6.Логинимся (вводим любой логин и пароль).Входим в выбор сервера.Заходим.
7. Если все прошло нормально.
8. Либо защите не нравится клиент.
9. ProxyConnector.exe должен запускаться с правами админа.

Как это работает.

L2.exe ---->(шифрован) 127.0.0.1 port 9992 ProxyConnector.exe --->(шифрован) 83.137.50.6 port 7779( закрыть файрволом 7777) ServerConnector
ServerConnector ---->(открыт*) 127.0.0.1 7777 L2Server
открыт*- стандартное "шифрование" пакетов геймсервера

Краткое описание.

Логин сервер должен отдавать адрес геймсервера 127.0.0.1 порт 9992(либо другой ).

ProxyConnector.cpp ListenerGamePortServer gps("127.0.0.1", "9992", io_service); открываем слушающий порт (127.0.0.1 порт 9992)
клиент коннектися создается сессия.данные перенаправляются туда .Шифруем что надо (пакет CryptInit,т.к. без него расшифровать трафик не сможем)
Инжектим в память процесса AddNetQueue.dll расшифровываем пакет CryptInit.
GamePortSession.cpp

void GamePortSession::start()
{

const std::string remote_ip="83.137.50.6"; // куда слать пакеты
const std::string remote_port="7779";
.....
}
ServerConnector все аналогично ProxyConnector.Принимаем и расшифровываем пакет CryptInit. Отдаем пакеты L2Server.

Сам ключ шифрования (В ServerConnector и ProxyConnectorдолжны быть одинаковые)
char guard_key[16] = {
0xe1, 0x47, 0x7b, 0xa7,
0x42, 0x33, 0xf6, 0x59,
0xc1, 0x75, 0x77, 0x15,
0x51, 0xd3, 0x47, 0x1c
};
[mmo-develop.ru]_guard_c++.zip
 
Последнее редактирование:

FaraX

Интересующийся
Пользователь
Сообщения
30
Розыгрыши
0
Реакции
20
Баллы
220
Это вроде как для PTS ? либо для Windows не для Linux
 
Последнее редактирование:

FaraX

Интересующийся
Пользователь
Сообщения
30
Розыгрыши
0
Реакции
20
Баллы
220
я имел введу под ОС(операционную систему) какую сделано с стороны сервера!
Извиняюсь понял что она делает! :Bingo:
 
Последнее редактирование:
Сверху Снизу