*****LAC - LuCiFer Anti Cheat*****
Перед
использованием обязательно прочтите license.txt
Серверная часть для Counter Strike
Версия: 0.8a PreRelease
Если
вы обнаружили чит к этому античиту
или серьезную ошибку, убедительнейшая просьба сообщите название чита или вышлите его автору, а в случае ошибки ее подробное
описание по электронной почте 2xl@mail.ru В случае если чит окажется
рабочим, в следующей же версии он не будет работать.
Основные
функциональные возможности:
Помочь
проекту развиваться и существовать дальше
Сообщения
которые могут прийти с сервера при попытке соединиться или при запуске.
6.
Информация для разработчиков сторонних плугинов на основе LAC.
Программа предназначена для недопущения появления читеров на защищенном сервере. Данное приложение является серверной частью и предназначено для установки на сервер. Для работы необходимо, что бы на сервере был установлен MetaMod.
Самый огромный
список внутренних изменений, очень многое переписано/дописано. Алгоритм проверки
контрольных сумм CRC32 был поменян, на защищенный от подделки SHA256.
Команда lac_crc заменена на lac_sha. В табличной проверке убраны все
ограничения. Можно добавлять сколько угодно файлов для проверок и возможных SHA256 для них. И самое главное в лаке появилась
возможность запретить клиенту использовать alias’ы. Так же впервые документированы некоторые функции лака, в
том числе функции необходимые авторам собственных плагинов,
чтобы можно было например вести статистику по lac_id.
Удален неиспользуемый цвар lac_bandi. Добавлена аутентификация по белому
списку. Все последующие версии смогут автообновиться
у клиентов, т.к. в лак с 0.8 версии добавлено автообновление
с сервера, к которому подключается клиент. Улучшен алгоритм снятия скриншотов(битых
должно стать меньше и специально введены задержки, что не грузить канал). Из-за
некоторых переделок внутри, защищающих лак от взломов, клиент 0.8 может
работать только с 0.8 сервером. CVAR
lac_bantime замещен
одноименной командой, позволяющей прописывать различное время бана от различных причин бана. Многие из
владельцев сервера наверное никогда не прочищали файл lac_ban.dat, который записывает баны.
Для его очистки была функция lac_cban. Теперь эта функция будет вызываться
автоматический, когда размер файла первысит 1
Мегабайт. В античит добавлена возможность запускать
загрузку файлов клиентской части на клиенте автоматический.
В клиентскую часть вшит инсталлер.
Один и тот же файл является как исполняемым так и
установочным. Наконец-то веб статистика стала
красивой внешне. В ней также добавлен мониторинг серверов. Написана маленькая
программа для редактирования файлов содержащих баны.
Клиентская часть
снабжена системой более продвинутой системой контроля ошибок и их записи в лог.
Что позволит во первых в случае некритических ошибок
продолжить работу клиента, во вторых в дальнейшим выявлять ошибки в клиентской
части и устранять их гораздо более эффективно.
Официальный сайт
– http://lucifer.selfip.org .
Античит LAC изначально был написан для моего сервера
CS, которого уже давно не существует. И все время
поддерживается только на энтузиазме автора, который в свою очередь
поддерживался теми, кто ему помогал и пользовался античитом.
LAC был, есть и
будет бесплатным программным продуктом. Энтузиазм штука не долговечная,
если его не поддерживать. Если вы хотите, чтобы LAC
продолжал развиваться, совершенствоваться или хотите поблагодарить автора за то,
что он уже два с лишним года, особенно активно во время новогодних праздников,
пишет для Вас этот античит, вы можете пожертвовать
автору совершенно любую денежную сумму. Пожалуйста, не побрезгуйте пожертвовать
совсем чуть-чуть, потому, что пользователей очень много и если каждый, не будет
думать, чем может помочь, а пожертвует хотя бы рубль, то выйдет хорошая сумма
для автора. А за большие суммы пожертвований автор будет гораздо более
благодарен и продолжит совершенствовать LAC
еще
более активно.
И,
пожалуйста, помните, что переводя деньги мне, вы не платите мне за работу, т.е.
не ОБЯЗЫВАЕТЕ меня к чему-либо, а жертвуете, т.е. БЛАГОДАРИТЕ меня за мою
работу.
Ваши
пожертвования направляйте на WM кошелки.
Во избежание
подмены номеров кошельков в этом файле уточняйте номера на официальном сайте.
Уточнить, какими
еще способами можно отправить пожертвования и проверить номера кошельков вы
всегда можете здесь http://lucifer.selfip.org/forum/announcement.php?f=12
R397520248746
Z393136673151
E350420207312
С уважением,
автор античита LAC
– LuCiFer.
|
LAC.dll |
сама программа, для WIN32 |
|
lac.so |
сама программа, для linux |
|
license.txt, license_en.txt |
лицензионное соглашение |
|
readmeS.htm readmeS_en.htm |
этот документ |
|
Папка web |
веб интерфейс для банов |
|
lac.sma |
плагин для амхх (дает права на ЛАК админам из амхх) в исходниках |
|
lac.amxx |
плагин для амхх (дает права на ЛАК админам из амхх) скомпеллированый |
|
lac_sha.txt |
Таблица контрольных сумм. (см. lac_sha.txt ) |
|
lac_white.txt |
Пример файла для белого списка игроков |
|
LBLE.exe |
Редактор бан листов лака. Только для Win. Предназначена для работы с файлами lac_ban.dat и lac_ban.log. Программа очень простая, поэтому она не документирована. |
a) Для работы античита необходимо что бы на сервере был установлен MetaMod. Если его нет, то сейчас самое время его установить. Для подробностей по установке MetaMod обратитесь к документам по MetaMod.
б) Создайте папку LAC внутри папки \cstrike\addons\
в) Скопируйте внутрь созданной папки файл LAC.dll (lac.so для linux) и lac_sha.txt, lac_white,txt
г) скопировать setup.exe из клиентского дистрибутива в папку \cstrike\ под именем lac.wad. Если вы не хотите, что бы работало автообновление не устанавливайте этот файл.
д) Откройте файл \cstrike\addons\metamod\plugins.ini и впишите в него строку
win32 addons/LAC/LAC.dll
linux addons/LAC/lac.so
Установка завершена.
Убедиться в правильности установки можно запустив сервер и прописать в сервеной консоли "meta list"
в появившемся тексте должна быть строка
[ .] LAC RUN -
lac.dll v0.8 ini Start Start
Не забываем скопировать файл lac_sha.txt в папку с lac.dll. Его отсутствие может сильно подорвать античитерскую защиту вашего сервера. Так же рекомендуется обновлять его. Т.к. этот файл доступен для самостоятельного описания, кто напишет новый, хороший, делитесь с другими
При желании устанавливаете плугины от AMXX, как документировано в AMXX.
!!!!! ВНИМАНИЕ !!!!!
Если у вас на сервере
установлен HLGuard,
то либо удалите его, либо настройте его конфиги
так чтобы он не прописывал клиентам алиасы.
Если этого не будет сделано, то в силу алгоритма работы HLGuara, он прописывает всем клиентам кучу пустых alias’ов. Он это делает что бы перезаписать возможные алиасы читов у клиентов. Но для лака поялвение алиасов будет расцененно, как читерство.
Замените в папке \cstrike\addons\ старый LAC.dll на новый. Такик же образом обновите lac_sha.txt
В папке \cstrike\ обновите файл lac.wad
Если вы использовали плагин от амхх, то тогда замените файл \cstrike\addons\amxmodx\plugins\lac.amxx на новый из дистрибутива.
Если вы использовали веб статистику банов, то тогда замените файлы у себя на веб сервере.
Файл lac.wad является обновлением для клиентов. Если клиент использует более старую версию античита, чем установлена на сервере, то новая версия будет загружена автоматический на машину клиента, после чего, ему будет предложено, перезапустить игру. После перезапуска можно будет подключаться. Из-за соображений безопасности и совместимостью с таблицой lac_sha.txt, файл lac.wad жестко связан с версией серверной части.
С 0.8 версии LAC позволяет запустить процедуру загрузки на клиенте. Для этого
в начале необходимо настроить сервер. Установите в CVAR lac_href ПРЯМУЮ ссылку на архив с клиентом античита.
Например http://myserver.ru/files/lac.zip. http:// писать обязательно.
Если в цваре меньше трех символов цвар
игнорируется. Вы можете указать как адрес своего сервера в локальной сети так и в интернете. Что бы у клиента нормально произошла
процедура самозагрузки, у него должен быть верно
введены настройки подключения в свойствах обозревателя, т.е. прокси, если используется. У большинства(99%) пользователей
такие вещи в системе уже прописаны верно, иначе бы
интернет у них не работал :)
Теперь о том как это работает.
Если стоит режим сервера lac_nolac 1 и установлен цвар lac_href, то сам сервер клиенту будет предлагать скачать клиент лака.
[LAC] To download LACv0.8 RIGHT NOW type in console "/lac"
Если набрать в консоле "/lac", а при условии установленного плагина AMXX, то и в say, клиенту автоматический выскочит окно загрузки указанного файла.
Если сервер находиться в режиме lac_nolac 3, то у игрока будет изъято оружие, игрок вкопан в землю, и будет навязчиво писать в много строк предложение скачать лак. Для этого надо будет написать в консоли "/lac". Текст сообщения можно отредактировать. Он в цваре lac_n3text. Для работа lac_nolac 3, необходимо, чтобы lac_href был задан.
Смысл работы античита в том, что любой подключающейся игрок должен пройти аутентификацию на сервере. Все проверки на читы происходят на клиентской стороне. Если сервер в течении 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 <маска> |
выводит lac_id на игроков в имени которых содержится маска, если маска не указанна, то высвечивает таблицу: имя игрока - его LACid |
|
lac_ss <маска> |
снимает скриншот с игроков имя которых в маске. Скриншот сохраняется в папке \cstrike\addons\LAC\screenshot в виде jpg файла. Размер порядка 100 кб, т.е. снятие скринов не должно сильно "забивать" интернет канал пользователя. Движок Half-Life использует протокол UDP, в котором доставка пакетов не гарантируется, поэтому скриншоты могут быть сильно искажены |
|
lac_ban <маска> <время> <причина> |
забанивает на локальном сервере игрока по LACid на определенное время в минутах. Если время не указанно, то бан будет выдан на 1 час. Если нужно забанить навечно, пишите время 9999999. Столько минут это очень долго :). Контра к тому времени наверно уже будет ни кому не нужна :) <причина> является необязательным параметром и может не указываться, отображается в веб статистике, если в причине несколько слов через пробел, то ОБЯЗАТЕЛЬНО писать ее в "таких кавычках" иначе будет отображено одно слово. |
|
lac_unban <lacid> <время> <причина> |
снимает бан на локальном сервере по введенному lacid, если не указанно время. Если указанно время, то функции можно забанить по lacid на указанное время. <причина> является необязательным параметром и может не указываться, отображается в веб статистике, если в причине несколько слов через пробел, то ОБЯЗАТЕЛЬНО писать ее в "таких кавычках" иначе будет отображено одно слово. |
|
lac_sha <имя файла> |
считает контрольную сумму файла на клиенте и на сервере. Затем выводит их в консоль. Необходимо для проверки некоторых текстур, карт. На многие файлы контрольные суммы могут быть разные на различных версия CS. Поэтому данная функция носит вспомогательный характер и не может служить поводом для определения факта читерства. Так же данная функция сильно нагружает процессор сервера и процессор клиента. Так что не стоит забавляться с ней. |
|
lac_bans <lacid> |
выводит полный лог банов на вашем сервере, причем в виде истории, если один и тот же lacid банился а потом был разбанен, то на него будет две строки, смотреть надо на которая выше будет. Чтобы посмотреть в данные о бане на конкретный lac_id, укажите его после команды |
|
lac_cban |
Очищает всю историю банов локального сервера, для того что бы по команде lac_bans не было видно просроченных банов. Текущие баны, разумеются остаются. Так же запускается эта команда запускается автоматический если файл lac_ban.dat больше 1 МБайта. |
|
lac_bantime <класс читов> <время бана> |
Позволяет выставлять время бана для различных типов читов. Если никаких парметров не передовать, то выведет текущую таблицу. Если после команды указать цифровое значение в минутах, то команда выставит это значения для всех типов читов. Если после команды указать один из классов читов, а затем время, то время будет установлено для этого класса. Посмотреть список возможных классов можно, набрав эту команду без параметров. |
|
lac_ver |
Выводит информацию "О программе", в том числе версию. |
|
lac_srvlog <текст> |
Заносит в файл lac.log указанные текст. Зачем? Затем, что эта функция может быть полезна всяким плугинописателям. |
|
lac_getcvarlacid <маска> |
Для плугинописателей. Получение lac_id игрока. |
|
lac_aid, lac_wdb |
Для связи с плугином лака от амхх. Не трогайте их, что бы не завалить сервер. Да и плугинописателям тут делать тоже нечего. lac_aid передает id админа давшего какую-либо команду на сервер, чтобы лак смог ответить админу в консоль. lac_wdb – тоже id админа, но только для выдачи бана: в лог идет имя кто дал бан, как раз через эту переменную. |
под <маска> в описании понималось, либо часть имени игрока (регистр имеет значение), либо userid игрока (запись вида #1), а если "*", то на всех игроков.
|
lac_band (по умолчанию 3) |
действие при обнаружении чита(любого, тип которого включен другими CVARами). 0 - вообще ничего не делать. 1 - только сообщать. 2 - кикать. 3 - банить на время lac_bantime. |
|
lac_bantimecvar
|
Время банов для различных читов. В ручную лучше не трогать. Используйте команду lac_bantime |
|
lac_ifkurl (по умолчанию http://lucifer.selfip.org) |
Текст который приписывается в конце сообщения, что игрока кикнули за отсутствующий или устаревший LAC. Рекомендуется установить ссылку сайта на котором выложен ЛАК, если сайт http://lucifer.selfip.org недоступен |
|
lac_n3text (по умолчанию [LAC] This server LAC require.
To start download RIGHT NOW type /lac in your
console!!!) |
Этот текст будет показываться при включенном режиме lac_nolac 3, если клиент зашел без лака. Помните, длинна строчки ограничена шириной этого текста на экране. Строки не переносятся. |
|
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 - просто пускать без клиента. 3 – пускать без клиента, в имя подписывать [NoLAC], отобрать оружие, все время выводить motd, кикнет через две минуты после подключения. |
|
lac_href (по умолчанию "") |
Прямая ссылка на античит. Необходим для работы самозагрузки. Если этот цвар менее 3х символов, он считается не работающим, это влечет к тому, что режим lac_nolac 3 не будет работать. В режиме lac_nolac 1. Не будет доступен ручной запуска загрузки. |
|
lac_autoss (по умолчанию 0) |
Включает возможность автоматического снятия скриншотов через заданный промежуток времени. Время в минутах. Если установить 0 - авто скриншоты выключены. |
|
lac_version (по
умолчанию, версия) |
Возвращает версию LAC, необходим для сопряжения со сторонними разработками. Самостоятельно менять не рекомендуется. Версии возвращает вида: 0.6а |
|
lac_forceban (по умолчанию 1) |
При значении 1, перехватывает команду banid, от плугинов amxx, metamoda. Тем самым можно сделать, чтоб например ATAC мог банить с помощью лака. Для этого в ATAC надо настроить чтоб банил по banid. В результате баны будут даваться лаком. Аналогично и для других плагинов. 0 – выключено. |
|
lac_hdss (по умолчанию 0) |
При значении больше 75, будет автоматический снимать скриншоты с игроков которые одним выстрелом нанесли урон больше, чем значение цвара. Для работы это функции должен быть установлен плугин lac.amxx |
|
lac_alias (по умолчанию 5) |
Если Лак у
клиента нашел количество зарегистрированных alias’ов равное значению цвара,
то Лак это расценит как использование читов. Если цвар равен нулю – игнорировать
количество alias’ов |
|
[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 или он не запущен. |
|
[LAC] Update compleate. Please restart game. |
завершено обновление античита, перезапустите игру, чтобы изменения применились |
В случае автобана сервером вам присылается сообщение. В его конце подписана причина. Вот список:
SH – у вас обнаржен спидхак, или какая-то программа влияющая на работу времени в системе.
EXE – у вас обнаружен чит, который пытается сделать инжект, или программа, которая пытается создать тред в процессе hl.exe или подгрузить модули.
DLL – чит на библиотеку opengl32.dll или др., в папке с кс, лежат файлы, которых быть не должно. Удалите лишние *.dll. Только не потрите нужные :)
ASI – чит в виде ASI/MIX файла, удалить лишние *.asi, *.mix.
MEM – чит, пытающейся влезть в процесс, какая-то программа лезет в память hl.exe, это может быть антивирус/фаервол. Занести hl.exe в исключения к этим программам.
SHA – либо чит в виде модуля контры, либо не стандартные для сервера модели, спрайты, текстуры. У вас не совпадает контрольные суммы файлов или файл отсутствует. В консоле клиента перед выдаче банной указано, за какой файл вы получаете бан, скачайте себе оригинальную версию этого файла. Если причина не указана, значит с сервером плохое соединение по сети(большое количество потерь пакетов).
ALIAS – вы используете alias’ов больше, чем разрешено на сервере, удалите у себя конфиге лишние alias’ы.
SYS – видимо попытка взлома античита, махинации с тредами/хендлами итд итп в системе. Возможная причина ложных срабатываний – программы мониторы процессов, твикеры, большая загрузка ЦП какой либо программой в фоновом режиме.
OGL – чит атакующий модуль opengl32.dll. Проверьте антивирусом свою систему. Убедитесь, что файл opengl32.dll не был изменен.
NOANS – нет ответа от лака. Причина ложного срабатывания – проблемы с сетью.
ENG – читы атакующие сам движок игры. Ложное срабатывание возможно при неустойчивой работе лака на клиенте
Если ваш сервер падает при запуске, а у вас стоит 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 добавлена возможность выводить список локальный банов на веб сервер. Для этого в дистрибутиве идет папка web, в ней фаил bans.php. Чтобы им воспользоваться положите его в папку веб сервера, открой фаил и если надо измените строку
$file="e:\Games\Counter - Strike\cstrike\addons\LAC\lac_ban.log";
Измените эти параметры
$s="127.0.0.1";
$p="27015";
на адрес и порт своего сервера, если хотите чтобы в статистике отображался монитор вашего сервера. Если не хотите этого напишите так:
$s="";
на путь от вашего сервера. Обращаю внимание, что веб статистика банов пользуется файлов lac_ban.log который представляет собой статистику банов, а сам серверный лак пользуется другим файлом для определения кто на сколько забанен, однако же когда вносятся какие либо изменения они вносятся в оба, поэтому ручками по этим файлам лучше особо не лазить, что бы не получилось, что что-то где-то врет.
С помощью этого файла LAC сохраняет настройки.
Файл расположен в директории с LAC.dll. В нём содержатся CVAR’ы от LAC’а. В ручную можно править только значения CVAR, которые в кавычках. Комментарии и если вписать какие либо другие CVAR’ы ,будут удалены.
В эту папку ведется лог всех событий LACa, с подписью времени и даты. Имя файла в папке также задается датой. Если команду дает админ с своей консоли за счет плугина lac.amxx, то тогда в этот лог записывается имя админа и его LACid.
Этот файл предназначен, для
табличной проверки. Что это такое и что это дает? При подключении у клиента будут
сверяться контрольные суммы у файлов, которые заявлены на сервере. В них будет
содержаться имя файла и различные контрольные суммы
которые могут быть у файла. Если у клиента они не совпадают, они детектируются
как чит. Что дает: можно вылавливать читы которые сидят/подменяют в
стандартных библиотеках контры. Так же с помощью этого модуля можно будет
вылавливать измененные текстуры у игроков, модели, прицелы, спрайты и т.д.
Итак, этот файл обычный
текстовый. Его формат разберем на примере записи(цифры
от балды):
demoplayer.dll 860F2D369C46831584AA827FF10A49B563F72E596D13C2C11058C87B73D0BD7D E773F3F3510958B659A3DDBF2C0F14CCEB7C2695A10A56A0E0F86A1C18D36499
каждая строчка в файле –
запись, для проверки одного конкретного файла.
Первым идет имя файла для
проверки и путь к нему. Имя файла не должно содержать пробелов!!! Путь к файлу
по умолчанию, это путь к директории hl.exe. т.е. если вам надо проверять файл лежащий внутри папки cstrike, пишите так cstrike\file.dat.
Затем идут циферки. Это SHA-256. Для каждого файла возможно
записать до трех возможных контрольных суммы. Это на случай если в разных, нормальных патчах, файлы
разные. Все они записываются через пробел. Пробел между цифрами должен быть
один!!! Цифры в шестнадцатеричном виде(0-F). 256 бит(64 цифры).
Вы сами можете
добавлять/удалять любые файлы для проверки у клиента. Таким образом
можно обезопасить сервер от использования нестандартных/читерских
текстур, моделей, спрайтов.
В случае если у клиента,
что-то не совпадает, в лаке срабатывает механизм, который банит/сообщает
как и за другие читы, определяемый цварами. Идентификатор срабатывания по этому критерию – в
конце сообщения о причине подписано – SHA.
Теперь наверно главный
вопрос как узнать SHA256, что бы внести в файл.
Самый простой метод, на сервере воспользоваться командой lac_sha.
Этот файл предназначен, для
создания белого списка LACa. Это
необходимо, например если у ваша хорошего друга,
который сто пудов не читер не запускается клиента лака,
а он хочет играть на вашем сервере.
В нем в каждой строке должны
содержаться IP адреса клиентов. 1 строка 1 запись, без пробелов в начале и
конце IP. Записи в виде подсетей не действуют.
Так же в начале есть строка,
которую рекомендуется хранить в начале файла. Строка начинается с lac_pass, затем через пробел должен
быть записан пароль. Если у клиента стоит setinfo lac_white пароль, то он тоже будет
пущен как по белому списку. Пароль должен быть минимум три символа, иначе
пароль будет игнорирован.
Вместо lac_id у таких клиентов будет значиться LACID_WHITE.
В случае если клиент занесенный в белый список попытается подключиться с
запущенным LAC’ом,
то, что он в белом списке будет проигнорировано.
a) Удалите папку LAC внутри папки \cstrike\addons\
б) Откройте файл \cstrike\addons\metamod\metamod.ini и удалите в нем строку
win32 \addons\LAC\LAC.dll
в) При необходимости можете удалит MetaMod. Как, читайте в документах по MetaMod.
Удаление завершено.
г) Если использовали веб статистику, удалите с веб сервера файлы лака.
Здесь будет помещаться информация для плугинописателей. Если вы хотите написать свою статистику, плугин для амхх, metamod, который бы работал вместе с Лаком, то вам сюда. Если у вас есть хорошая разработка и вам не жалко поделиться со всеми, выкладывайте на http://lucifer.selfip.org
Можно ли удаленно, например из мониторинга серверов узнать установлен ли LAC?
Можно. Посылайте запрос по UDP на порт сервера. Запрос:
\x66\x66\x66\x66\x66\x66\x66\x66\xFF
Ответ:
true\x00 – для LACv0.3
true_x.X – для LAC начиная с версии 0.4, где x.X – номер версии.
Как получить lac_id для моего плугина?
1. Если плугин выполнен в виде динамической библиотеке, например для метамода, то можете вызвать в моделу лака лаке функцию.
C_DLLEXPORT boolean lac_getlacid(IN char *mask, OUT
char *buf)
Как вызывать? hModule=GetModuleHandle(“LAC.DLL”); GetProcAddress(hModule,”lac_getlacid”). Короче, думаю, понятно. Можете
конечно, сами *.h *.lib написать….
В IN char *mask указатель на строку в которой заноситься маска такая же как и во всех командах сервера
OUT char *buf указатель на строку, куда будет вписан lac_id. Вписывается в текстовом виде. Длинна массива 20 байт.
Возвращает true, в случае успеха и false, в случае провала.
2. Из плигуна амхх или движка HL
a) Плохой способ.
server_cmd("lac_getcvarlacid %s", s)
//тут должна быть задержка, а лучше выход из процедуры, а дальше делать в процедуре вызванной позже
get_cvar_string("lac_getlacid", out, 20)
б) Хороший способ
get_user_info(id,
"lac_id", lacid,
20)
У каждого игрока лак подписывает в setinfo lac_id пользователя. В случае если клиент попытается его сменить, он тут же будет вовращен.
Какой формат у lac_ban.log?
А что разве не видно? Обычный текстовый. При бане или разбанивание добавляется строка. В строке букавы типы _!zb_ и другие, служат для разделения для таблицы в html виде. Что видно в файле bans.php
Какой формат у lac_ban.dat?
При каждом бане или анбане добавляется 8 байт. Первые четыре – lac_id. Вторые четыре во сколько истекает время бана. Время истечения бана указанна в минутах начиная с 00:00:00 GMT, 1 января, 1970. ( т.е. time()/60 ). В случае разбана эти четыре байта нули.
Обращаю внимание, если вы хотите узнать по лакид разбанен ли этот лакид или нет, вам следует начать поиск с конца файла, и вынести решения по последней с конца файла записи(первую, которую найдете начиная поиск с конца).
Автором является LuCiFer
e-mail: mailto:2xl@mail.ru (обычно отвечаю, но оооочень долго)
Сайт: http://lucifer.selfip.org
Сайт для клиентов Воронежского филиала ЦентрТелеком (трафик бесплатен): http://lucifernet.homeip.net
Я очень благодарен, всем тем кто мне помогал, чем мог. Список наиболее отличившихся:
Geny-Key – помощь в написании alias детектора, алгоритмы, советы, коды.
R@mZeS – перевод мануалов на английский
flacs – за помощь в алгоритмах, для поиска читов.
JFF | Koshka и Ares – эмблема 0.7-0.8 версии, список файлов, CRC которых стоит проверять
MPA3b – эмблемы к 0.6 версиям, прога Lac Check
Всем модераторам, моего официального форума LACa
Всем, кто принимал участие в бета тестировании лака.
Всем, кто присылал, мне рабочие читы на Лак, а также грамотно найденные ошибки.
Всем, кто помогал тестировать.
Здесь я буду собирать наиболее часто задаваемые Вами вопросы, а так же вопросы поясняющие работы античита.
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_sha ???
A: C помощью lac_sha можно запросить контрольную сумму любого файла. К примеру можно проверить стоит ли у игрока оригинальные модели какого либо оружия. Например:
lac_crc * cstrike\models\v_awp.mdl
запросит контрольную сумму этого файла, если она отличается от контрольной суммы оригинального файла, то следует вывод - файл не
оригинальный. На практике фича оказалась немного бесполезной :)
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: У меня находиться N серверов, можно ли как-нибудь сделать чтобы баны были общими для всех?
A: Да можно. Перемещаете всю папку LAC из папки addons например в D:\LAC. После чего в каждом сервере правите в файле metamod.ini чтобы получилось нечто на подобии
win32 D:/LAC/LAC.dll
Этот метод может не работать, если в пути встречаются русские буквы или он слишком длинный. Если серверы физический на разных компьютерах под ОС Windows, можете подключиться сетевой диск на каждом сервере к расшаренной папке, тем самым избежав путей, которые metamod может не понять.
Q: Если не секрет, на каком языке написан античит?
A: Клиент - ассемблер. Сервер до 0.6b – ассемблер, после С++.
26.01.09 версия 0.8 PreRelease
+фиксы
запуска
24.01.09 версия 0.8 PreRelease
+фиксы
+lac_crc заменен на lac_sha
+alias детектор
+убраны все ограничения с таблицы lac_sha.txt, бывшая lac_crc.txt
+lac_bandi удален, т.к. даже не использовался в исходниках
+документация для девелоперов
+в веб таблице банов добавлен столбец – IP адрес
+белый список
+автообновление
+баг фикс режима lac_nolac, и LACID_HLTV
+улучшен алгоритм снятие скриншотов
+CVAR lac_bantime заменен одноименной командой, позволющей по раздельности менять цвары.
+самоочистка lac_ban.dat
+добавлен режим работы с режимом самозагрузки клиента.
+добавлен установщик в клиент
+изменен внешний вид веб банов и добавлен монитор сервера в нем
+небольшая утилита для редактирования банов
21.12.08 версия 0.7 beta version
+скриншоты при большом уроне.
+фиксы, всех и не помню
+защита скриншотов от подмены
+новый алгоритм формирования lac_id
+найденный рабочие типы читов заблокированы
+табличная защита файлов
12.01.08 версия 0.6b alpha version for UNIX
+первая версии под UNIX системы.
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 Закрытая версия
Первая версия