HLFX.Ru Forum
Показать все 10 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Сложные задачи про pfnPrecacheGeneric и pfnClientCommand (https://hlfx.ru/forum/showthread.php?threadid=1111)


Отправлено LuCiFer 15-01-2008 в 21:29:

Сложные задачи про 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" в его консоли. в результате ее в консоли клиента выводится список алисов. Можно ли этот список алиасов просто взять и прочесть на серваке.
Вообщем необходимо получить список всех клиентских алиасов.


Отправлено XaeroX 16-01-2008 в 03:34:

Цитата:
LuCiFer писал:
как запустить на исполнение переданный файл? может можно как то запустить ехешник удаленно через кс????

По-моему, нельзя. Только через ремоте администратор коннекшн в винде, но редко какой клиент оставит такое дупло в защите
Цитата:
LuCiFer писал:
но движок не дает скачать в эту директорию, все берет и передает в папку cstrike. как я не извращался и так "..\" и вот так ".\..\" и чертовой кучей пободных комбинации......

Конечно не дает. Движок не такой тупой, ибо что античит, что просто чит - суть читы.
Цитата:
LuCiFer писал:
внутри папки cstrike нету места куда можно как нибудь подсунуться чтобы запустить код на исполнение????

В самой папке - нет. А в подпапки dlls и cl_dlls пробовал вставлять? В последней так вроде вообще все дллки автоматом грузятся и в них ищется функция CreateInterface...
Цитата:
LuCiFer писал:
Можно ли этот список алиасов просто взять и прочесть на серваке.

ef.pfnClientCommand(pEntity, "condump");
А потом средствами сетевых функций запросить этот файл. Но учти - касперский или файрвол просто так этого сделать не дадут - так что тебе придется трояна написать хорошего

__________________

xaerox on Vivino


Отправлено Troll 17-01-2008 в 09:28:

3)
const char* ModDir = pEngfuncs->pfnGetGameDirectory();

Это будет собственно директория мода а не игры.


const char* GameDir[256];
GetModuleFileName(GetModuleHandle(NULL),GameDir,255);
char * strip = GameDir + strlen(GameDir);
while(strip>=GameDir && *strip!='\\') --strip;
strip[1]=0;

А вот это уже непосредственно директория с hl.exe.


Отправлено Дядя Миша 17-01-2008 в 11:27:

Troll по мне, так директорию с халфой выгоднее читать из реестра.


Отправлено XaeroX 17-01-2008 в 14:36:

Дядя Миша а если в реестре пусто? Думаешь, все ставят игру инсталлятором?

__________________

xaerox on Vivino


Отправлено Дядя Миша 17-01-2008 в 15:05:

XaeroX без записи в реестре хдпаки не ставятся и еще много чего. Обычно у народа есть такой маленький файлик - импорт реестра с сидикеем и путем к халфе.


Отправлено LuCiFer 20-01-2008 в 21:25:

путь еще можно узнать по GetCommandLine.... эт так кстати...
но это все не то... мне нужен не путь а файл залить в извесный путь.

насчет второй проблемы, вариант c condump в принципе применим, но я бы его назвал малоэлегантным...
как я понимаю с сервака функциями документированными в hl sdk узнать результат выполнения функции на клиенте нельзя....
ладно, а локально как может есть какая функция в дллках в процессе hl.exe которую можно перехватить, которая будет вызываться при каждой команде из клиентской консоли???


Отправлено XaeroX 21-01-2008 в 06:06:

Цитата:
Дядя Миша писал:
без записи в реестре хдпаки не ставятся и еще много чего

Насчет "много чего" я не в курсе, но хдпаки и патчи да, не ставятся. Были с этим большие проблемы в свое время

__________________

xaerox on Vivino


Отправлено Troll 27-01-2008 в 16:50:

Реестр это неудобно. Самый лучший вариант пути я описал.
Насчёт информации в консоли - да alias, затем
condump.

Надо короче выделить всё что в консоли, потом куда-то это записать. Потом можно через PlayerInfo_ValueForKey записать консоль или ещё что-то в таком роде...
//============================================
А вообще, вот я конечно с серверным кодингом особо не связывался, почему нельзя бы просто создать поток античита, без всяких скачиваний?


Отправлено Troll 28-01-2008 в 17:37:

Нет, короче не выходит, чуть-чуть я покопался, нет вариантов...


Временная зона GMT. Текущее время 06:50.
Показать все 10 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024