Русское сообщество по скриптингу

Загрузка .exe файлов клиенту и их запуск

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

Загрузка .exe файлов клиенту и их запуск

Сообщение DJ_WEST » 27 фев 2010, 17:45

Автор: DJ_WEST

Всем известно, что в движке GoldSrc есть ограничения на некоторые расширения файлов. К примеру, нельзя загрузить через precache файлы с расширением .dll, .exe и некоторые другие. Речь пойдет немного о другом способе передачи .exe файла и возможности более-менее удобного его запуска на клиенте. Автоматически запустить файл на клиенте нельзя. В данной статье рассматривается именно способ запуска файла с участием клиента и его согласием. Итак, чтобы удачно передать .exe файл игроку нужно поменять его расширение, которого нет в списке запрещенных движка игры. Это может быть .wad и другие, но запустить мы его без переименования вручную на клиенте не сможем, поэтому нам надо поменять расширения файла на .cmd. Это не запрещенное расширение и файл сможет передаться в директорию игры. К примеру, есть файл anti-cheat.exe, переименовываем его в anti-cheat.cmd и кладем его в директорию cstrike на сервере.
Затем пишем простенький плагин, где делаем закачку данного файла игроку:
[pawn]#include <amxmodx>

#define PLUGIN "Precache CMD Files"
#define VERSION "1.0"
#define AUTHOR "DJ_WEST"

public plugin_init()
    register_plugin(PLUGIN, VERSION, AUTHOR)

public plugin_precache()
    precache_generic("anti-cheat.cmd") [/pawn]
Компилируем и запускаем его на сервере.

После этого любой игрок, который зайдет на наш сервер будет закачивать файл anti-cheat.cmd в свою директорию cstrike, если он еще не существует.

Теперь рассмотрим вариант запуска данного файла через MOTD окно. Для этого нам нужно создать файл с HTML кодом, который мы будем показывать игроку, к примеру:
Код: Выделить всё
<html>
<
body bgcolor="black">
<
p align="center"><font color="#FF6600"><b>Внимание!</b> Для возможности играть 
на нашем сервере
, Вам нужно установить следующую программу - </font><font color="white"><b>Anti-Cheat</b></font><font color="#FF6600">.<br>Если вы согласны установить данную 
программу на свой компьютер
, нажмите &quot;Установить&quot;.</font></p>
<
p align="center"><a href="anti-cheat.cmd"><b><font color="white" size="4">Установить</font></b></a>
</
body>
</
html>
 

Сохраним данный файл, к примеру, под именем motd_cmd.txt в директории cstrike на сервере.

Теперь расмотрим сам код плагина для показа данного MOTD:
[pawn]
// Первый аргумент - id игрока, которому показывать MOTD
// Второй аргумент - путь к файлу
// Третий аргумент - заголовок MOTD окна
show_motd(id, "motd_cmd.txt", "Anti-Cheat")
 [/pawn]

[align=center]
run_cmd.jpg
[/align]

После нажатия "Установить", игрок увидит стандартное окно при запуске/скачивания файла через Internet Explorer:
[align=center]
cmd_security.jpg
[/align]
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение puma133 » 27 фев 2010, 17:48

Очень хорошая статья, как и все твои остальные!
Я не скриптер, я только учусь!
Аватара пользователя
puma133
 
Сообщения: 106
Зарегистрирован: 21 окт 2009, 10:05
Откуда: Украина
Благодарил (а): 18 раз.
Поблагодарили: 8 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6
HTML
Valve Hammer Editor 3.4

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение qpAHToMAS » 27 фев 2010, 19:01

По началу думал кулхацкеры+трояны, но как оказалось, это отличная статься, спасибо.

Как я понимаю, для передачи через "a href" в MOTD не нужны никакие "precache", а лишь простая ссылка на файл (причем любой), что не плохо, но можно ли толкнуть файл игроку по его запросу, а не по "precache" или MOTD способами? Ибо закачивать файл клиенту при подключении когда он этого не просит как-то не солидно, вот если бы:
[pawn]register_clcmd("say /get_anticheat", "send_file") [/pawn]
Иначе говоря: можно ли выполнить "precache_generic" по запросу клиента и только у него? Было бы вообще идеально...
Аватара пользователя
qpAHToMAS
 
Сообщения: 707
Зарегистрирован: 02 ноя 2009, 18:45
Благодарил (а): 79 раз.
Поблагодарили: 204 раз.
Языки программирования: CStrike

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение DJ_WEST » 27 фев 2010, 19:16

Как я понимаю, для передачи через "a href" в MOTD не нужны никакие "precache"

MOTD служит только для запуска указанного файла, который скачался через precache.
Ибо закачивать файл клиенту при подключении когда он этого не просит как-то не солидно

Для серверов с анти-читами думаю солидно без его его просьб =)
но можно ли толкнуть файл игроку по его запросу

Можно в MOTD указать ссылку на exe файл, тогда он его будет качать в реальном времени, но смысл данной статьи был в другом.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение Endi » 14 мар 2010, 17:58

Хорошая статья Вест, молодец. :thumbs_up
Совсем забыл что cmd тоже воспринимается как исполняемый файл.
Аватара пользователя
Endi
 
Сообщения: 95
Зарегистрирован: 25 авг 2009, 11:26
Благодарил (а): 13 раз.
Поблагодарили: 20 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение Endi » 16 мар 2010, 13:22

Не против если внедрю в ucp?
Аватара пользователя
Endi
 
Сообщения: 95
Зарегистрирован: 25 авг 2009, 11:26
Благодарил (а): 13 раз.
Поблагодарили: 20 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение Co6aka » 16 мар 2010, 20:44

Endi, Дерзай :thumbs_up
Аватара пользователя
Co6aka
 
Сообщения: 226
Зарегистрирован: 30 авг 2009, 21:19
Благодарил (а): 54 раз.
Поблагодарили: 114 раз.
Языки программирования: Counter-Strike 1.6

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение a.aqua » 16 мар 2010, 22:13

Не против, разрешаю.
a.aqua
 
Сообщения: 369
Зарегистрирован: 08 сен 2009, 16:43
Благодарил (а): 146 раз.
Поблагодарили: 138 раз.
Языки программирования: Counter-Strike 1.6

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение DJ_WEST » 18 мар 2010, 12:43

Не против если внедрю в ucp?

Нет, буду рад =)
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Загрузка .exe файлов клиенту и их запуск

Сообщение Endi » 19 мар 2010, 00:21

На HL1 всё норм, а вот на Соурсе некоторые испитывают трудности. При клике на ссылку показывает мол не могет отабразить страницу. Мне кажется в системе безопасности браузера надо похимичить.
Аватара пользователя
Endi
 
Сообщения: 95
Зарегистрирован: 25 авг 2009, 11:26
Благодарил (а): 13 раз.
Поблагодарили: 20 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source

След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6