*****LAC - LuCiFer Anti Cheat*****
Перед использование обязательно прочтите license.txt
Серверная часть для Counter Strike
Версия: 0.6b alpha version
Для подключения необходима клиентка версии не ниже 0.6
Если
вы обнаружили чит к этому античиту
или серьезную ошибку, убедительнейшая просьба сообщите название чита или вышлите его автору, а в случае ошибки ее подробное
описание по электронной почте 2xl@mail.ru В случае если чит окажется
рабочим, в следующей же версии он не будет работать.
Основные функциональные
возможности
Примечания к релизу
Консольный команды
CVAR'ы
Сообщения которые могут
прийти с сервера при попытке соединиться или при запуске
Проблемы
Программа предназначена для недопущения появления читеров на защищенном сервере. Данное приложение является серверной частью и предназначена для установки на сервер. Для работы необходимо, что бы на сервере был установлен MetaMod. ДЛЯ ПОИСКА СКРИПТОВЫХ ЧИТОВ РЕКОМЕНДУЕТСЯ ТАК ЖЕ НА СЕРВЕРЕ ДЕРЖАТЬ УСТАНОВЛЕННЫЙ HLGuard С КОНФИГАМИ ОТ Reallite.
Исходный код этой версии
отличается от предыдущей 0.6а на 99%. Причина в том, что весь код переписан на С++, с целью дальнейшей компиляции под UNIX
системы. Сложно
сказать на каком языке будучи написанным LAC
будет
лучше, быстрее, стабильнее работать. Это покажет эта версия. Так же в связи с
переносом кода, в нем возможны ошибки. Поэтому у этой версии статус – alfa.
В виду статуса alfa, прошу всех как можно больше "помучить"
эту версию и в случае обнаружение ошибок сообщить мне. Соответствующая
клиентская часть не выпускалась.
Основные
нововведения: добавлен цвар lac_version(содержит
в себе текст версии) – нужен для сопряжения со сторонними разработками, как
полностью не востребованная умерла база центральных банов,
теперь возможно подключение к LAC серверу без клиента (см.
цвар lac_nolac), автоскриншоты через
заданный определенный промежуток времени (см цвар lac_autoss), ведение лога, в
который записываются все действия с лаком, а также при установленном плугине
lac.amxx записывает какой админ это делал.
Если ничего не изменится
– следующая версия будет уже под Win32 и под UNIX.
Официальный сайт – http://lucifer.selfip.org .
LAC.dll |
сама программа |
license.txt |
лицензионное соглашение |
readmeS.htm |
этот документ |
bans.php |
веб интерфейс для банов |
lac.sma |
плагин для амхх (дает права на ЛАК админам из амхх) в исходниках |
lac.amxx |
плагин для амхх (дает права на ЛАК админам из амхх) скомпеллированый |
a) Для работы античита необходимо что бы на сервере был установлен MetaMod. Если его нет, то сейчас самое время его установить. Для подробностей по установке MetaMod обратитесь к документам по MetaMod.
б) Создайте папку LAC внутри папки \cstrike\addons\
в) Скопируйте внутрь созданной папки файл LAC.dll
г) Откройте файл \cstrike\addons\metamod\plugins.ini и впишите в него строку
win32 addons/LAC/LAC.dll
Установка завершена.
Убедиться в правильности установки можно запустив сервер и прописать в сервеной консоли "meta list"
в появившемся тексте должна быть строка
[ .] LAC RUN -
lac.dll v0.6a ini Start Start
Замените в папке \cstrike\addons\ старый LAC.dll на новый.
Если вы использовали плагин от амхх, то тогда замените файл \cstrike\addons\amxmodx\plugins\lac.amxx на новый из дистрибутива.
Если вы использовали веб статистику банов, то тогда замените файл bans.php у себя на веб сервере. И удалите старый lac_ban.log в папке LAC, если этого не сделать таблица будет выглядеть криво. Но при этом удалится история веб банов, однако же в самом лаке баны сохранятся.
#### ВНИМАНИЕ ДАННАЯ ПРОГРАММА НЕ ПРОВЕРЯЛАСЬ СО STEAM. НЕ РЕКОМЕНДУЮ ПОДКЛЮЧАТЬСЯ К STEAM СЕРВЕРАМ С ЗАПУЩЕННОЙ ПРОГРАММОЙ, Т.К. ЭТО МОЖЕТ ПРИВЕСТИ К НЕЖЕЛАТЕЛЬНЫМ ПОСЛЕДСТВИЯМ
так же вероятно что и на стим версия контра страик данное приложение не запустится
Смысл работы античита в том, что любой подключающейся игрок должен пройти аутентификацию на сервере. Все проверки на читы происходят на клиентской стороне. Если сервер в течении 10 секунд после начала подключения игрока не получил данных, что проверка на клиенте завершена игрок будет кикнут с сервера немедленно. После аутентификации в консоли сервера будет сообщение:
"[LAC] Authentification "Player" (0000000000) complete."
У каждого игрока есть свой уникальный (возможно и нет, шанс повтора 1 к 4 млрд.) идентификатор - LACid, который генерируется на основе данных о том компьютере на котором запущен LAC.
Для HLTV присваивается условный LACID_HLTV, по сути 0000000000.
Начиная с версии 0.3a HLTV присоединяется на сервер, так, как будто на сервере нет LAC, т.е. как обычно.
Начиная с 0.6b у античита, есть возможность не кикать игроков, а изменять имя, дописывая в него [NoLAC], и при смене имени возвращать это тэг, либо же просто пускать на сервер. В обоих случаях игроку будет присвоен условный LACid LACID_NOLAC. Никакие функции лака работать на него не будут. Вместо бана lac_ban будет производить простой кик, хотя сообщение будет о том, что забанен. На остальных игроков, по прежнему будут работать все функции лака. Для это сделан CVAR lac_nolac, его значения смотрите ниже.
Сервер можно настроить так, что бы он снимал скриншоты, автоматический через каждые n минут. Не рекомендуется использовать при плохом качестве сети. Использование такого рода функции чревато переполнением отключением игрока с сервера, увеличением пинга, загрузкой процессора, как сервера, так и клиента, заполнением дискового пространства сервера. Однако же может быть очень полезно, во время проведения важных игр, Clan War.
LAC может вести лог(и ведет его по умолчанию). Настройка – CVAR lac_log (см. ниже), содержимое см. ниже.
Обращаю внимание, что все баны и анбаны записываются в один файл, как история, файл lac_ban.dat. Если размер этого файла будет очень большой, то это может существенно увеличить время, которое необходимо, что бы проверить LACid игрока. Что также может повлечь лаги на сервере. Поэтому очень изредка рекомендуется исполнять команду lac_cban.
консольный команды в основном зависят только от серверной компоненты и могут варьироваться.
lac_id |
высвечивает таблицу: имя игрока - его LACid |
lac_id <маска> |
выводит lac_id на игроков в имени которых содержиться маска |
lac_ss <маска> |
снимает скриншот с игроков имя которых в маске. Скриншот сохраняется в папке \cstrike\addons\LAC\screenshot в виде jpg файла. Размер порядка 100 кб, т.е. снятие скринов не должно сильно "забивать" интернет канал пользователя. Движок Half-Life использует протокол UDP, в котором доставка пакетов не гарантируется, поэтому скриншоты могут быть сильно искажены |
lac_ban <маска> <время> <причина> |
забанивает на локальном сервере игрока по LACid на определенное время в минутах. Если время не указанно, то бан будет выдан на 1 час. Если нужно забанить навечено, пишите время 9999999. Столько минут это очень долго :). Контра к тому времени наверно уже будет ни кому не нужна :) <причина> является необязательным параметром и может не указываться, отображается в веб статистике, если в причине несколько слов через пробел, то ОБЯЗАТЕЛЬНО писать ее в "таких кавычках" иначе будет отображено одно слово. |
lac_unban <lacid> <время> <причина> |
снимает бан на локальном сервере по введенному lacid, если не указанно время. Если указанно время, то функции можно забанить по lacid на указанное время. <причина> является необязательным параметром и может не указываться, отображается в веб статистике, если в причине несколько слов через пробел, то ОБЯЗАТЕЛЬНО писать ее в "таких кавычках" иначе будет отображено одно слово. |
lac_crc <имя файла> |
считает контрольную сумму файла на клиенте и на сервере. Затем выводит их в консоль. Необходимо для проверки некоторых текстур, карт. На многие файлы контрольные суммы могут быть разные на различных версия CS. Поэтому данная функция носит вспомогательный характер и не может служить поводом для определения факта читерства. Так же данная функция сильно нагружает процессор сервера и процессор клиента. Так что не стоит забавляться с ней. |
lac_bans |
выводит полный лог банов на вашем сервере, причем в виде истории, если один и тот же lacid банился а потом был разбанен, то на него будет две строки, смотреть надо на которая выше будет. |
lac_bans <lacid> |
выводит данные о банах на конкретный lacid |
lac_cban |
Очищает всю историю банов локального сервера, для того что бы по команде lac_bans не было видно просроченных банов. Текущие баны, разумеются остаются. |
lac_ver |
Выводит информацию "О программе", в том числе версию. |
под <маска> в описании понималось, либо часть имени игрока (регистр имеет значение), либо userid игрока (запись вида #1), а если "*", то на всех игроков.
lac_band (по умолчанию 3) |
действие при обнаружении чита(любого, тип которого включен другими CVARами). 0 - вообще ничего не делать. 1 - только сообщать. 2 - кикать. 3 - банить на время lac_bantime. |
lac_bantime (по умолчанию 120) |
время автоматического бана при обнаружении чита. |
lac_ifkurl (по умолчанию http://lucifernet.homeip.net) |
Текст который приписывается в конце сообщения, что игрока кикнули за отсутствующий или устаревший LAC. Рекомендуется установить ссылку сайта на котором выложен ЛАК, если сайт http://lucifer.selfip.org недоступен |
lac_bandi (по умолчанию 0) |
При значении 1 будет производить согласно настройкам lac_band действие в случае если на клиентской машине обнаружен чит, даже не смотря на то, что чит заблокирован лаком. Есть один нюанс – не все блокируемые читы будут обнаружены, это связанно с техническими причинами. 0 – не производить никаких действий. |
lac_shlim (по умолчанию 60000) |
Уровень определяющий при каком значении будет считаться что у клиента SpeedHack. Само значение характеризует на сколько миллисекунд ушло времени у клиента по сравнению с сервером. Значения менее 20000 не имеют смысла, т.к. все равно минимальный порог 20000. Максимальный порог 4294967295. Если значение установить в 0 SpeedHack на клиенте обнаруживаться не будет. |
lac_log (по умолчанию 1) |
Ведение логов LAC на сервере
в файл lac.log. 1 -включено 0 – выключено. |
lac_nolac (по умолчанию 0) |
Позволяет пускать на сервер килентов без LAC 0 - пускать только с
клиентом 1 - пускать без клиента, в
имя подписывать [NoLAC] 2 - просто пускать без клиента. |
lac_autoss (по умолчанию 0) |
Включает возможность
автоматического снятия скриншото через заданый промежуток вермени. Время в минутах. Если установить 0 - авто скриншоты выключены. |
lac_version (по
умолчанию, версия) |
Возвращает версию LAC, необходим для сопряжения со сторонними разработками. Самостоятельно менять не рекомендуется. Версии возвращает вида: 0.6а |
[LAC] Check failed. Please reinstall LAC!!! |
удалить у себя LAC вообще и поставьте заново с
дистрибутива. |
[LAC] Can't write
file LAC.dll. Exiting.... |
LAC по каким-то причинам не может удалить временный файл LAC.dll в папке с hl.exe. Попробуйте удалить вручную. Этой файл имеет атрибут "скртый". |
***[LAC]*** You,
name (LACid xxxxxxxxxx)
ban for nn minutes |
вас забанили на nn минут |
***[LAC]***Incompatible
LAC version. Need v0.3. http://lucifernet.homeip.net |
у вас
устаревшая или наоборот слишком модная версия. Зайдите на http://lucifer.selfip.org
и скачайте ту версию которая указанна в сообщении (Need v0.3) |
***[LAC]***
You LACid ххххххххххх in ban list. nn minutes left |
это значит что вы находитесь в
бан листе по LACid на
сервере и будете разбанены через nn минут. |
[LAC] This Server
LAC (LuCiFer Anti Cheat) Require.
http://lucifer.selfip.org |
значит у вас вообще хрен стоит
LAC или он не запущен. |
Если ваш сервер падает при запуске, а у вас стоит KIS (Kaspersky Internet Security), то делайте так:
Чтобы не было проблем, файл hlds.exe надо добвить в довереную зону. для этого надо в Касперском версии KIS пройти:
Настройка->Защита, там будет кнопка Доверенная зона, жмёте её и там в обоих вкладках добавляете файл hlds.exe. на этом проблема с KIS исчерпана.
За помощь в поиске данного косяка и написании инструкции выражаю благодарность linkin
Если у игрока не запускается клиентская часть LAC и у него установлен Agnitium Outpost Firewall, то для того чтобы у него заработало, ему можно посоветовать:
- Заходим в "Пуск, Панель Управления, Свойсва папки". Переходим во вкладку "Вид" и ищем пункт "Скрывать расширения для зарегистрированых файлов", снмаем галочку, жмём ok.
- На время отрубаем внутреннюю защиту, либо вырубить фаервол. Проще всего правой кнопкой в трее по значку аутпоста и там выйти из программы.
- Создаём "Текстовый документ.txt" в папке аупоста (по-умолчанию тут C:\Program Files\Agnitum\Outpost Firewall), заходим в него и прописываем путь до lac.exe (у меня D:\Games\Valve\lac.exe). Очень важный момент!!! Когда пропишите путь, не забудьте Enter нажать, иначе не будет работать. Закрываем, сохраняем, переименовываем в "wl_hook_data.cfg".
- Включаем фаервол или внутреннюю защиту, а лучше перезагружаем комп.
- При желании заходим в "Пуск, Панель Управления, Свойсва папки". Переходим во вкладку "Вид" и ищем пункт "Скрывать расширения для зарегистрированых файлов", ставим галочку, жмём ok.
За помощь в поиске данного косяка и написании инструкции выражаю благодарность Smile, MrCuper и Hero
Для управления админки amxx начиная с версии 0.4 добавлен плугин для amxx. Установите плугин lac.amxx к себе на сервер и у админов с правом доступа на kick появится возможность управлять лаком со своей консоли: у них будут доступны команды - amx_lac_ban, amx_lac_unban, amx_lac_ss, amx_lac_bans, amx_lac_crc, amx_lac_cban которые соответствуют функциям lac_ban, lac_unban, lac_ss, lac_bans, lac_crc, lac_ban имеют те же параметры и назначение. Исходный код плугина в фаиле lac.sma
В версии 0.4 добавлена возможность выводить список локальный банов на веб сервер. Для этого в дистрибутиве идет фаил bans.php. Чтобы им воспользоваться положите его в папку веб сервера, открой фаил и если надо измените строку
$file="e:\Games\Counter -
Strike\cstrike\addons\LAC\lac_ban.log";
на путь от вашего сервера. Обращаю внимание, что веб статистика банов пользуется файлов lac_ban.log который представляет собой статистику банов, а сам серверный лак пользуется другим файлом для определения кто на сколько забанен, однако же когда вносятся какие либо изменения они вносятся в оба, поэтому ручками по этим файлам лучше особо не лазить, что бы не получилось, что что-то где-то врет.
С помощью этого файла LAC сохраняет настройки.
Файл расположен в директории с LAC.dll. В нём содержатся CVAR’ы от LAC’а. В ручную можно править только значения CVAR, которые в кавычках. Комментарии и если вписать какие либо другие CVAR’ы ,будут удалены.
В этот файл ведется лог всех событий LACa, с подписью времени и даты. Если команду дает админ с своей консоли за счет плугина lac.amxx, то тогда в этот лог записывается имя админа и его LACid.
a) Удалите папку LAC внутри папки \cstrike\addons\
б) Откройте файл \cstrike\addons\metamod\metamod.ini и удалите в нем строку
win32 \addons\LAC\LAC.dll
в) При необходимости можете удалит MetaMod. Как, читайте в документах по MetaMod.
Удаление завершено.
г) Если использовали веб статистику, удалите с веб сервера bans.php
Автором является LuCiFer
e-mail: mailto:2xl@mail.ru (обычно отвечаю, но оооочень долго)
Сайт: http://lucifer.selfip.org
Сайт для клиентов Воронежского филиала ЦентрТелеком (трафик бесплатен): http://lucifernet.homeip.net
Здесь я буду собирать наиболее часто задаваемые Вами вопросы, а так же вопросы поясняющие работы античита.
Q: Почему много "битых" скриншотов?
A: Потому, что движок Counter-Strike использует UDP протокол согласно которому не гарантируется доставка пакетов получателю. Для самой игры это не смертельно. А вот для jpeg файла очень даже смертельно…
Q: Можно ли банить по LAC_ID не за читы, а например за нарушения правил на сервере.
A: Конечно можно, см. функцию lac_ban
Q: Можно ли поставить бан по LAC_ID если игрока нет на сервере.
A: Можно с помощью функции lac_unban (вопреки её названию). Например что бы забанить игрока с LAC_ID 1234567890 на 2 часа нужно дать команду:
lac_unban 1234567890 120
Q: Можно ли удаленно, например из мониторинга серверов узнать установлен ли LAC?
A: Можно. Посылайте запрос по UDP на порт сервера. Запрос:
\x66\x66\x66\x66\x66\x66\x66\x66\xFF
Ответ:
true\x00 – для LACv0.3
true_x.X – для LAC начиная с версии 0.4, где x.X – номер версии.
Q: Зачем нужна функция lac_crc ???
A: C помощью lac_crc можно запросить контрольную сумму любого файла. К примеру можно проверить стоит ли у игрока оригинальные модели какого либо оружия. Например:
lac_crc * cstrike\models\v_awp.mdl
запросит контрольную сумму этого файла, если она отличается от контрольной суммы оригинального файла, то следует вывод - файл не
оригинальный. На практике фича оказалась немного бесполезной :)
Q: Чем этот античит лучше других?
A: Он сделан нашими! myAc возможны лаги, нагрузка, не него читов как грязи. sXe Injetcted у многих проблемы с клиентом и читы на него обновляют часто! Этот анти-чит, не говорю что на него невозможно написать чит, но если ты их найдёшь чит, ты можешь послать автору в следующей версии чит работать не будет. Этот анти-чит не банит, а блокирует читы. Есть функция бана по LAC_ID , который он сам генерирует, смена IP , не поможет. Есть отправка скриншотов, бан лист, и многое другое. За 1 год и 4 месяца существования античита был замечен всего 1 чит написанный для 4 версии. И то он работал, т.к. я ни разу не видел читов которые так подгружались (в виде asi файла). так же не видел ни одной ломаной клиентки, хотя знаю попытки были. Конечно, не могу отвечать, что не без результатные, но хоть какого распространения подобных вещей на текущий момент нету
Q: Я обнаружил чит работающий на лаке или дыру в работе античита…
A: Пошлите его, пожалуйста, автору LAC на адрес электронной почты 2xl@mail.ru. В следующей версии античит будет блокировать этот чит.
Q: Сервер падает при запуске через 10-20 секунд. Что делать?
A: Попробуйте отключить синхронизацию с центральной системой банов для этого в консоле сервера напишите lac_urlbans 0. По умолчанию эта опция выключена. Если падает при выключенной опции, пробуйте по одному отключать плугины от metamod’a.
Q: Можно ли сделать меню в AMXX для админов???
A: Можно. Откройте файл clcmds.ini, расположенный /addons/amxmodx/configs/clcmds.ini
Добавляем строчку, по желанию, в любую позицию:
"Ban by lac_id"
"amx_lac_ban
#%userid%" "bd" "u"
"Take screnshot"
"amx_lac_ss
#%userid%" "bd" "u"
После чего у админов по команде amx_clcmdmenu из консоли будет высвечиваться меню, там можно будет выбрать Ban by lac_id.
amx_clcmdmenu разумеется можно забиндить на любую кнопку, например bind l "amx_clcmdmenu" забиндит меню на клавишу L
Для того что бы это работало на сервере, должен стоять плугин lac.amxx
Q: Есть ли какие-нибудь боты, которые можно установить на сервер вместе с лаком?
A: Есть. PODBot MM http://podbotmm.bots-united.com. Это боты написаны специально для Metamod’a.
Q: Если не секрет, на каком языке написан античит?
A: Клиент - ассемблер. Сервер до 0.6b – ассемблер, после С++.
10.01.08 версия 0.6b alpha version
+код полностью переписан на С++
+CVAR lac_version
+убран центральный бан полностью.
+возможность подключения игрока без клиента(lac_nolac)
+автоскриншоты (lac_autoss)
+ведение логов
05.01.08 версия 0.6a Public Edition Release
+закрыта одна из уязвимостей сервера
+исправлен баг, когда с веб-монитора не видно, что стоит LAC
+теперь у LAC есть возможность "понимать" userid
+найдена ошибка, возможно из-за которой у некоторых повисал сервер при смене карты
+в веб статистике видно имя забанившего админа
15.12.07 версия 0.6 Public Edition Release
+Настройки теперь сохраняются
+Скриншоты должны доходить в случае любой плохой линии
+возможность не просто не допускать запуск читов, но и возможность банить их (CVAR lac_bandi).
+cvar на уровень SpeedHacka (lac_shlim)
+cvar на включение централизованных банов (lac_urlbans)
+команда lac_cban
+команда lac_ver
+куча «заплаток». Зафиксены такие вещи как падения серва, снятие скриншота, опрос с мониторингов, финты с именами игроков и т.д.
+пойман еще один чит бравший 0.5 версию и более ранние. 0.6 не берет.
+при сохранении скриншота в его имя указывается имя игрока и его IP.
16.01.07 версия 0.5a Public Edition Release
+добавлен CVAR: lac_band
+пофиксен баг со спих хаком.
!!! В СВЯЗИ С ЭТИМ ПРОШУ ПРИЗНАТЬ ВЕРСИЮ 0.5 НЕРАБОТОСПОСОБНОЙ И УДАЛИТЬ ЕЁ, ЧТО БЫ ВЫ САМИ НЕ ПУТАЛИСЬ. В 0.5а БАГ УСТРАНЁН. Приношу извинения за неудобства с версией 0.5.
15.09.07 версия 0.5 Public Edition Release
+исправлены вылеты сервера при отсутствии доступа к сайту http://lucifernet.homeip.net
+обнаруженная уязвимость была закрыта
+добавленно два CVARa: lac_bantime, lac_ifkurl
+при бане в случае указания причины игроку передается эта причина
+теперь может банить за читы самостоятельно
!!! В клиентской части античита был изменен алгоритм получения LACid. В связи с этим LACid от версий 0.3 и 0.4 не соответствуют LACid от версии 0.5. В связи с чем перед обновлением рекомендуется очистить базу бан листов. Для этого удалите файл lac_ban.dat в папке lac.dll
!!!В четвертой версии LACa была допущена ошибка при написании алгоритма распознания более новой версии анти чита на сервере. В связи с чем при попытке подключится к серверу с версией 0.5 клиентская часть 0.4 вылетает с ошибкой.
9.05.07 версия 0.4 Public Edition Release
+наконец то можно глядеть базу банов.
+веб статистика банов
+админы установленные в amxx могут управлять LAC со своей консоли
+скриншоты снабжаются большой избыточной информацией, т.е. теперь битых скриншотов должны быть на порядок меньше.
22.04.07 версия 0.3a Public Edition Beta2
+поддержка HLTV
+исправленный баги с ошибками в консоли
+исправлен баг, когда игрок меняет имя
14.04.07 версия 0.3 Public Edition Beta1
+ первая версия доступная для публичного использования.
17.02.07 версия 0.3 Закрытая версия
+добавлен LACid, идентификатор компа (его железа) по которому можно банить и различать игроков в условиях динамических айпи. LACid генерируеться при каждом запуске и сохраняется в файл LACid.txt. Представляет собой 10 десятичных цифр. что бы узнать чей то LACid во время игры нужно будет написать lac_id <часть имени игрока> или просто lac_id чтоб посмотреть на всех в консоле клиента.
+добавленна возможность снятия скриншота с экрана игрока и переправкой на сервак. (скриншот занимает в среднем 100кб так что я думаю это совсем маленькая нагрузка на канал).
+добавлена возможность сверки фаилов на сервере и клиенте на идентичность.
+оттестирован на Windows Vista(черт же Microsoft решил в ней по чуть подправить NativeAPI.....).
+принудительно выставляет 32 битную цветность.
+лого при запуске
27.08.06 версия 0.2 Закрытая версия
+добавлен редирект параметров
+добавлено обнаружение OGL читов
19.08.06 версия 0.1 Закрытая версия
Первая версия