DPROTO


Описание:

DPROTO - плагин для Metamod решающий проблему мультипротокола и эмулирующий SteamID для NoSteam-клиентов. Имеет гибкую систему настроек и богатые функциональные возможности.

Требования:

- установленный metamod 1.19 (рекомендуется) или 1.19p32
- чистые или пропатченные VUP engine so/dll
- поддерживаемые билды Linux-серверов: 2738, 4383 (24 Oct 2008), 4383 (Released at 20 Apr 2009), 4383 (Released 19 May 2009), 4883 (последний)
- поддерживаемые билды Windows-серверов: 4382, 4554, 4554

Установка:

- в папке addons создаем папку dproto и копируем в неё файл dproto.so или dproto.dll в зависимости от операционной системы Linux или Windows соответственно.
- открываем <dir>/addons/metamod/plugins.ini (если файла такого нет, то создаем сами) и добавляем следующую строчку:

Linux:
Код
linux addons/dproto/dproto_i386.so


Windows:
Код
win32 addons\dproto\dproto.dll


- файл dproto.cfg кидаем в папку cstrike. Корректируем конфиг, устанавливая необходимые Вам параметры (настройки по умолчанию достаточны для работы модуля).

Сообщения которые будет выдавать игрокам которых не пустило на сервер прописать в server.cfg

Код
dp_rejmsg_nosteam47 "You must update your Non-Steam CS to patch v42. You can download it from (ссылка) Обновите Non-Steam CS до патча версии 42. Скачать игру можно с (ссылка)"

dp_rejmsg_nosteam48 "You must update your Non-Steam CS to patch v42. You can download it from (ссылка) Обновите Non-Steam CS до патча версии 42. Скачать игру можно с (ссылка)"


Команды:

dp_ipsessions - список активных сессий соединений и информация о них.
dp_secplrlist - список активных игроков, с некоторыми логическими параметры: U = используемый слот; A = активный клиент сети; P = прошел проверку на фейкового игрока;
dp_lastthreats - списки последних угроз.

История версий:
0.9.179:
- fixed "STEAM userid keysize is bogus" error on SteamEmu clients

0.9.178:
- fixed "Invalid challenge format" warning when client joins server

0.9.87-0.9.177:
- Some bugs fixed (I don't remember what bugs sad.gif )
- Removed subserver and master-client as they are not needed now
- Added challenge checking code to "rules" and "players list" requests handlers

0.9.87:
- Fixed steamid generation for Steamclient 2009

0.9.86:
- Fixed: VAC Status was always "protected" on Windows servers.
- Moved all options to configure fakeplayers detector to dproto.cfg
- Update sample amxx plugins.

0.8.72:
- Added quick fix for vulnerability in netchan's fragment parser
- Enhanced detection of fakeplayers (against Argentinian haxxxorz)

0.8.68:
- Improvements/bugfixes in fakeplayers/packet flood detection code
- AMXX API and example plugins updated
- Fixed bug with cid_AVSMP, it was always 1
- Added useful commands for threats monitoring, check Readme.txt

0.8.65:
- Bugfix, bugfix, bugfix, bugfix....
- Added support for AVSMP clients

0.8.61:
- Fix for random svc_bads on connect

0.8.60:
- Proper bots detection method in fakeplayers detector

0.8.59:
- Fixed problems with AMD engines
- Fixed hybrid answer mode
- Fakeplayers detector won't kick and ban bots anymore

0.8.58:
- Fixed crash when working with bans DB (banid)
- Fix in new revEmu auth code

0.8.57:
- Project moved to new versioning system; version format for now is MAJOR.MINOR.REVISION
- Added support for latest linux engine.
- Added support for new revEmu/SteamClient2009 clients
- Added config options to set first prefix of steamid for clients. For example, revEmu clients may be marked as STEAM_4_0_xx
- Added 2-level protection against all kinds of fake players
- Added protection against flooding server with connectionless (PlayerList, ServerInfo, Rules) queries.
- Added option (HLTVExcept_IP) to allow HLTVs from specified address to join the server even if cid_HLTV is 5 (deprectated). May be useful if you using HLTVReport plugin, but you dont want to allow another HLTVs to join your server.
- Source code will not be available anymore.
- (untested) "The VAC problem" (when VAC banned clients are able to join server) should be fixed.

0.4.8p:
- Fixed buffer overflow vulnerability in SV_ParseCvarValue2()
- Fixed crash for linux servers, when server started as unprivileged user that not able to write to server root directory.

0.4.8:
- fixed problem with dropping clients with "Unknown HLTV Type" message
- fix in anti-svc_bad code, it should work fine now

0.4.7:
- fixed: old WON clients (CS patch 21 and lower) unable to join server

0.4.6:
- fixed NET_SendPacket error that appears when server tried to drop deprecated client

0.4.5:
- implemented fix for "Server failed to transmit file AY&SY" kind of svc_bad's
- UTF8 Chat/Nicknames support completely removed (will add it to another plugin)
- Userinfo filter removed because it does not needed anymore (it was a temporary fix for svc_bad's)
- added separate AuthProvider (dp_r_id_provider cvar) constant for HLTV (check amxx/dp_test.sma)
- fixed GameNameChanger plugins under Windows.
- There are a lot of changes in dproto.cfg. Old configs won't work with this version.

0.4.3:
- Using on-the-fly offsets searching for patching.
- dproto now supports all existing (and hopefully future) p48 engines for Windows and Linux (including engine_amd.so/engine_i486.so).
- Fixed vulnerability in SV_ParseVoiceData() used by hlds_vcrash exploit.


0.4.1:
- hlds_fuck exploit fixed.
- temporary fix for hlds_vcrash exploit: Patched swds.dll/engine_i686.so, uploaded here and here.

0.3.7:
- possible DoS exploit fixed
- added Subserver_IP option in dproto.cfg, used to set interface for subserver; subserver code will be rewrititten in next versions.

0.3.6:
- implemented cid_Setti clientid type (for Setti server scanner). Default value is 3 (STEAM_x:x:x generated by ip). This is workaround for situation when server disappears from Setti's serverlist (because Setti scanner can't join the server) when cid_NoSteam47=5 is used.
- Plugins changing game description (adding timeleft for example) should work correctly now.

0.3.5:
- Fixed server response for very old clients (thx to Rulzy)
- Fixed bug when server drops HLTV if cid_NoSteam47/48 is deprecated(5)

0.3.4:
- Added server-side emulation support. Currently supported emus are: revEmu, old revEmu ( <= 9.73), hCupa's SteamEmu
- eSTEAMATiON support removed
- local banlist should work correctly
- completely rewritten client authorization code. All problems with UNKNOWN steamids and not working "deprecated" clientids may be fixed.
- there are a lot of changes in dproto.cfg. Old configs won't work with this version

0.3.3:
- Fixed: "deprecated" (5) ClientID did not work on cid_SteamPending (STEAM_0:0:0) clients
- Added: Various cvars for customizing reject messages for deprecated clients. Check the "HOW TO CHANGE REJECT MESSAGES WHEN CLIENTID IS 5 (DEPRECATED)" section of Readme for more details.
- Added: dp_version cvar that keeps current dproto version. It is exported to server rules by default, but you can turn the exporting off using ExportVesion option in dproto.cfg
- Added: Capability mode for steamIds generated by eST (to make it as in <= 0.3.0) versions, option OldEstCompatMode in dproto.cfg

0.3.2:
- Fixed: "STEAM userid keysize is bogus" on build 4554 (May, 2009) under windows (broken in 0.3.1 version)
- Fixed: Annoying #18 and #19 warnings under windows

0.3.1:
- Fixed: dproto gets wrong steamids from eSTEAMATiON.

0.3.0:
- Fixed bug with steamid corruption for some no-steam clients

0.2.9:
- Added dp_clientinfo command which can be used to get inforamtion about client's protocol. Check the Readme.txt and amxx directory for more info.

0.2.8:
- Added support for new engines: 4617 for Linux and 4554 (15 Jun 2009) for Windows.

0.2.7:
- Redirection fixed for subserver (thx to GoD2.0);
- Subserver now correctly works with broadcast queries;
- Hybrid serverinfo answer type discovered by ineya, fixes visibility for all clients. Check dproto.cfg

0.2.6:
- some compilation problems for linux fixed

Для удобства русский перевод конфига:

#
# Общее правило для изменения этого файла:
# НЕ ВНОСИТЕ КАКИЕ-ЛИБО ИЗМЕНЕНИЯ, ЕСЛИ ВЫ НЕ ЗНАЕТЕ, ЧТО ЭТО ЗНАЧИТ
#


# ========================================================
# Конфигурация Dproto
# ========================================================

# LoggingMode - Режим ведения логов:
# 1 = Console - Консольный
# 2 = Log Files - Файловый
# 3 = Both - Оба режима
LoggingMode = 2


# ========================================================
# Управление AuthID'ами пользователей
# ========================================================

# ClientIDs (для cid_* опций)
# 1: Реальный (или сгенерированный HW) steam (STEAM_xx:xx:xx)
# 2: Реальный (или сгенерированный HW) valve (VALVE_xx:xx:xx)
# 3: STEAM_ сгенерированный по IP-адресу
# 4: VALVE_ сгенерированный по IP-адресу
# 5: Запрещен - клиент будет отключен
# 6: Зарезервировано для будущего использования
# 7: HLTV
# 8: STEAM_ID_LAN
# 9: STEAM_ID_PENDING
# 10: VALVE_ID_LAN
# 11: VALVE_ID_PENDING
# 12: STEAM_666:88:666

# Установки AUthID для клиентов

# Для HLTV
cid_HLTV = 7

# Для клиентов, которые не поддерживают уникальные идентификаторы:
cid_NoSteam47 = 8
cid_NoSteam48 = 10

# Для легальных Steam-игроков:
cid_Steam = 1

# Клиент успешно авторизирован, но не получает SteamID:
# Замечание: На самом деле, он получил SteamID, но это бесполезно (STEAM_0:0:0 например).
cid_SteamPending = 9

# Для игроков имеющих эмулятор revEmu версии 9.74 или выше:
cid_RevEmu = 1

# Для игроков имеющих эмулятор SteamClient 2009 или revEmu выше версии 9.82:
# default is real STEAM_xx:xx:xx [1]
cid_SC2009 = 1

# Для игроков имеющих старую версию эмулятора revEmu:
cid_OldRevEmu = 1

# Для игроков имеющих эмулятор hCupa's SteamEmu:
cid_SteamEmu = 1

# Для игроков имеющих AVSMP (Взломанный Steam)
cid_AVSMP = 1

# Для сканера серверов SETTI:
cid_Setti = 3

# SC2009_RevCompatMode (0 / 1)
# Включить исправление SteamID'ов сгенерированных эмулятором Steamclient 2009 на совместимость с эмулятором revEmu.
SC2009_RevCompatMode = 1

# SteamEmuCompatMode (0 / 1)
# Аналог для параметра EnforceSteamEmuCompatIDMode в eSTEAMATiON.
# Влияет только на старые RevEmu и SteamEmu эмуляторы.
SteamEmuCompatMode = 1

# OldEstCompatMode (0 / 1)
# Включает/Выключает исправление SteamID'ов сгенерированных eST в версии 0.3.1.
# Установите 1, если Вы хотите сделать SteamID'ы сгенерированные eST как в версии ниже 0.3.0.
OldEstCompatMode = 0

# IPGen_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных по IP-адресу.
IPGen_Prefix1 = 0

# IPGen_Prefix2 (int)
# STEAM_a:b:c
# Второй префикс (cool.gif для AuthID, сгенерированных по IP-адресу.
IPGen_Prefix2 = 4

# Native_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных легальной системой авторизации (Steam)
Native_Prefix1 = 0;

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных эмулятором Steamclient 2009
SC2009_Prefix1 = 0;

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных эмулятором RevEmu
RevEmu_Prefix1 = 0;

# OldRevEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных старым эмулятором RevEmu
OldRevEmu_Prefix1 = 0;

# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных эмулятором SteamEmu
SteamEmu_Prefix1 = 0;

# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, назначенного для клиентов AVSMP (Взломанный Steam)
AVSMP_Prefix1 = 0;

# Setti_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID отображаемых в сканере серверов Setti
Setti_Prefix1 = 0;

# Стоит отметить, что banid будет использовать SteamID без каких-либо приставок!


# ========================================================
# Другое
# ========================================================

# DisableNativeAuth (0 / 1)
# Отключение valve/steam системы авторизации.
# Для серверов основанных на 47-ом протоколе: Сервер не будет соединяться с серверами авторизации.
# Для всех: Сервер не сможет использовать функции авторизации.
# Это исправление для запуска старых серверов, основанных на 47-ом протоколе.
DisableNativeAuth = 0

# ServerInfoAnswerType (0 / 1 / 2)
# Тип ответа сервера на запросы:
# 0 = Новый способ (Движок Source)
# 1 = Старый способ (Исправляет список избранного для клиентов 47-го протокола)
# 2 = Гибридный режим - лучшее решение на данный момент, сервер видно везде.
ServerInfoAnswerType = 2

# MasterClient (0 / 1)
# Включает эмуляцию мастер-клиента; это помогает зарегистрировать сервер в мастер-листе.
# Если у Вас ошибка "You server is out of date".
# ИСПОЛЬЗУЙТЕ ЭТО ТОЛЬКО С ПАРАМЕТРОМ ЗАПУСКА -nomaster !
# Вы можете использовать параметр Master_GameVersion для установки версии игры.
MasterClient = 0

# Master_GameVersion (строка)
# Укажите версию игры, которую мастер-клиент будет отправлять на мастер-сервер.
Master_GameVersion = 1.1.2.6/Stdio

# SubServer_Enable (0 / 1)
# Включает вторичный мини-сервер, который перенаправляет клиента на основной сервер.
# Используйте параметр SubServer_AnswerType для установки типа ответа на запросы информации.
# Используйте параметр SubServer_MasterClient для включения мастер-клиента на вторичном сервере.
# Используйте параметр SubServer_IP для установки IP адреса вторичного сервера.
# Используйте параметр SubServer_Port для установки порта вторичного сервера.
# Это полезная функция, если Вы хотите, чтобы все клиенты видели Ваш сервер.
# Это возможно, если Вы установите различные типы ответа на запросы информации на главном и вторичном серверах.
# Клиенты которые не "видят" главный сервер, будут видеть вторичный.
SubServer_Enable = 0
SubServer_AnswerType = 0
SubServer_MasterClient = 0
SubServer_IP = 0.0.0.0
SubServer_Port = 28015
SubServer_RedirectCommand = connect 169.254.141.3:27015

# Game_Name (строка)
# Название отображаемое у клиентов.
# Если переменная Game_Name пустая, то будет использоваться стандартное название игры.
Game_Name =

# HLStatsPlayerIdFix (0 / 1)
# Включение/Выключение фикса отображения ID игрока в мониторинге HLStats.
# Включайте это только если используете HLStats.
HLStatsPlayerIdFix = 0

# ExportVersion (0 / 1)
# Включение/Выключение экспортирования переменной dp_version.
# 1 = Переменная dp_version будет экспортироваться в правила сервера. Это будет видно в средствах мониторинга (например в HLSW).
# 0 = Переменная dp_version не будет экспортироваться в правила сервера.
ExportVersion = 1

# HLTVExcept_IP (IP адрес)
# HLTV с этого IP адреса сможет присоединиться к серверу, даже если значение cid_HLTV равно 5 (Запрещен)
HLTVExcept_IP = 127.0.0.1

# FakePlayers_BanTime (минуты)
# Dproto будет банить IP адрес, с которого подключаются фейковые игроки на время, указанное в этой переменной.
# Используйте 0 для бана навсегда.
# Используйте отрицательное значение для отключения бана (Фейковых игроков будет только кикать).
FakePlayers_BanTime = 120


Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла


© cs.rin.ru