Сложные задачи про pfnPrecacheGeneric и pfnClientCommand
Речь об античите для Counter-Strike 1,6
Вообщем появилась небольшая цель - написать античит с самоскачивающимся клиентом. Вообще античит написанный мной уже существует, прекрасно функционирует больше года по многим сетям Росии и Украины, зарекомендовав себя очень хорошо. Хотелось бы сделать его клиенто-независимым.
Первое что взбрело в голову pfnPrecacheGeneric. файл-то передает.... НО.
1) движок матюкается если указать расширения *.exe или *.dll. Видимо защита есть. - имхо не проблема или движок подправить, либо файл передовать как тотже *.asi. Отвечать даже на это не стоит - это чтоб вы не писали что такой трабл будет.
2) как запустить на исполнение переданный файл? может можно как то запустить ехешник удаленно через кс????
3) если бы удалось скачать в ту папку где лежит hl.exe, то можно было либо *.asi файл либо же opengl32.dll, а их загружать автоматом, но движок не дает скачать в эту директорию, все берет и передает в папку cstrike. как я не извращался и так "..\" и вот так ".\..\" и чертовой кучей пободных комбинации......
4) внутри папки cstrike нету места куда можно как нибудь подсунуться чтобы запустить код на исполнение????
это был первый вопрос. второй.
вот даю я команду
ef.pfnClientCommand(pEntity, "alias");
в результате которой у игрока исполняется команда "alias" в его консоли. в результате ее в консоли клиента выводится список алисов. Можно ли этот список алиасов просто взять и прочесть на серваке.
Вообщем необходимо получить список всех клиентских алиасов.
LuCiFer писал: как запустить на исполнение переданный файл? может можно как то запустить ехешник удаленно через кс????
По-моему, нельзя. Только через ремоте администратор коннекшн в винде, но редко какой клиент оставит такое дупло в защите
Цитата:
LuCiFer писал: но движок не дает скачать в эту директорию, все берет и передает в папку cstrike. как я не извращался и так "..\" и вот так ".\..\" и чертовой кучей пободных комбинации......
Конечно не дает. Движок не такой тупой, ибо что античит, что просто чит - суть читы.
Цитата:
LuCiFer писал: внутри папки cstrike нету места куда можно как нибудь подсунуться чтобы запустить код на исполнение????
В самой папке - нет. А в подпапки dlls и cl_dlls пробовал вставлять? В последней так вроде вообще все дллки автоматом грузятся и в них ищется функция CreateInterface...
Цитата:
LuCiFer писал: Можно ли этот список алиасов просто взять и прочесть на серваке.
ef.pfnClientCommand(pEntity, "condump");
А потом средствами сетевых функций запросить этот файл. Но учти - касперский или файрвол просто так этого сделать не дадут - так что тебе придется трояна написать хорошего
XaeroX без записи в реестре хдпаки не ставятся и еще много чего. Обычно у народа есть такой маленький файлик - импорт реестра с сидикеем и путем к халфе.
путь еще можно узнать по GetCommandLine.... эт так кстати...
но это все не то... мне нужен не путь а файл залить в извесный путь.
насчет второй проблемы, вариант c condump в принципе применим, но я бы его назвал малоэлегантным...
как я понимаю с сервака функциями документированными в hl sdk узнать результат выполнения функции на клиенте нельзя....
ладно, а локально как может есть какая функция в дллках в процессе hl.exe которую можно перехватить, которая будет вызываться при каждой команде из клиентской консоли???
Реестр это неудобно. Самый лучший вариант пути я описал.
Насчёт информации в консоли - да alias, затем
condump.
Надо короче выделить всё что в консоли, потом куда-то это записать. Потом можно через PlayerInfo_ValueForKey записать консоль или ещё что-то в таком роде...
//============================================
А вообще, вот я конечно с серверным кодингом особо не связывался, почему нельзя бы просто создать поток античита, без всяких скачиваний?