язык сценариев mIRC
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | Программирование, управляемое событиями , Процедурное программирование |
---|---|
Разработано | Халед Мардам-бей |
Разработчик | Халед Мардам-бей |
Впервые появился | 1995 |
Дисциплина набора текста | Динамическая типизация |
ТЫ | Microsoft Windows |
Лицензия | Собственное программное обеспечение |
Расширения имен файлов | .mrc, .ini |
Веб-сайт | www |
Основные реализации | |
mIRC AdiIRC [1] [2] [3] |
Язык сценариев mIRC (часто неофициально сокращенно « mSL »). [3] [4] ) — это язык сценариев , встроенный в mIRC и Adiirc , IRC- клиенты для Windows, но работающий с WiNE для Linux.
Основное использование
[ редактировать ]- Легкая канальная и личная защита от многих видов атак (флуд, спам, поглощения и т.д.).
- Диалоговые окна могут быть созданы в mIRC для лучшей совместимости с пользователем; а не все во всплывающих меню.
- включают MDX ( Dialog ) Extension и Популярные расширения DCX ( Dialog Control Extension диалога mIRC IRC ). Существует также несколько версий mdx.dll и dcx.dll, модифицированных хакерами IRC.
- Боты , которые обеспечивают автоматическое управление IRC-каналами, викторины или другие игры, а также другие нужные функции для общения.
- Команды, которые экономят набор текста или иным образом упрощают жизнь в IRC (например, автоматическое определение владельца ника).
- Прокси- CONNECT серверы Bounce (www.mslscript.com) и серверы ( https://en.wikipedia.org/wiki/ZNC ) для замены некоторых сценариев mSL более быстрым кодом и удобными функциями.
Хранение скриптов
[ редактировать ]Сценарии хранятся либо в виде простых текстовых файлов, обычно с расширением .mrc , либо в виде файлов INI . Однако они могут храниться с любым расширением. Одновременно можно загрузить несколько файлов сценариев, однако в некоторых случаях один сценарий будет конфликтовать с другим, что приведет к тому, что один или оба из них перестанут работать должным образом. Порядок загрузки файлов сценария может иметь значение, будет ли сценарий работать правильно или нет. Сценарий (не)загрузчика ДОЛЖЕН использоваться для того, чтобы скрипты среднего размера функционировали должным образом.
Особенности языка
[ редактировать ]Этот раздел может быть слишком техническим для понимания большинства читателей . ( Август 2012 г. ) |
Язык сценариев mIRC использует собственную номенклатуру для обозначения языковых конструкций. (Однако, хотя это может немного сбить с толку новичков, на функциональность mSL это не влияет.)
- Встроенные функции называются командами или, если они возвращают значение, идентификаторами .
- Пользовательские скриптовые функции называются псевдонимами . Псевдонимы, возвращающие значение, называются пользовательскими идентификаторами . Оба вызываются из командной строки или других частей сценария точно так же, как встроенные команды и идентификаторы (и могут даже заменять их).
- Всплывающие окна — это скриптовые элементы контекстного меню . Всплывающие окна вызываются, когда их выбирает пользователь. Первоначально этот термин относился к меню, которые появляются при щелчке правой кнопкой мыши. В руководстве он до сих пор используется таким образом.
- Пульты — это сценарии обработки событий . Удаленные устройства вызываются, когда происходит событие, которое они обрабатывают.
- Все переменные динамически типизированы .
- Хэш-таблицы доступны для хранения больших объемов данных; массивы - нет.
- Скрипты mIRC используют символы . Идентификаторам (настраиваемым или встроенным) предшествуют
$
, двоичным переменным предшествуют&
и другим переменным (локальным или глобальным) предшествует%
. Командам и псевдонимам не предшествует какой-либо конкретный символ (хотя при вводе из командной строки окна им должен предшествовать префикс команды, обычно/
).
Обработка файлов
[ редактировать ]- Скрипты могут читать и записывать файлы [
$read(file,[args])
|/write
]
Вышеупомянутое предназначено для индивидуального доступа к файлу. Потому что каждый раз, когда вы выпускаете $read
или /write
вы открываете и закрываете файл для доступа.
Множественный доступ, например, во время цикла, лучше всего обрабатывать через /fopen
, /fwrite
и /fclose
. Так как это открывает файл только один раз. В некоторых случаях /filter
и /savebuf
это еще более эффективный метод (без сценария).
- Скрипты также могут копировать и удалять файлы. [
/copy
|/remove
]
Бинарные переменные
[ редактировать ]- Содержать неограниченное количество (8192 байт до mIRC 6.1) необработанных данных.
- Доступен глобально через команды и идентификаторы.
- Автоматически сбрасывается, когда сценарий возвращает управление mIRC (а не другой части сценария).
- С префиксом
&
(например&Variable
) - Доступ к нему возможен только через
/bread
и/bwrite
, поэтому эти переменные нельзя передать в другие части скрипта
Хэш-таблицы
[ редактировать ]- Может содержать неограниченное количество двоичных данных или до 4150 (950 до mIRC 6.32) байтов обычного текста. Это ограничение накладывается собственным ограничением длины строки анализатора сценариев mIRC (если не назначена двоичная переменная).
- Доступен глобально через команды и идентификаторы.
- Автоматически сбрасываются при выходе из mIRC, поскольку они хранятся только в памяти.
- Можно сохранить для дальнейшего использования
- Без префикса
- Быстрее, чем доступ из файла, поскольку хеш-таблицы хранятся в памяти, а не на жестком диске.
- Размер ограничен только объемом памяти компьютера.
- Позволяет использовать ведро любого размера.
Глобальные переменные
[ редактировать ]- Может содержать до 4150 (950 до mIRC 6.32) байт данных, включая его имя (однако из-за ограничений длины строки в анализаторе сценариев mIRC максимум 4146 байтов могут быть назначены явно с использованием /set или /var — это число уменьшается по мере того, как имя переменной становится длиннее)
- Невозможно сохранить NUL (ASCII 0) или конечные пробелы.
- Доступен по всему миру
- Не снимайте автоматически, если не используется переключатель (автоматически сохраняется в файле инициализации mIRC)
- С префиксом
%
(например%Variable
) - Создано с использованием
set
команда илиvar -g
или%Variable = value
обозначение
Локальные переменные
[ редактировать ]- Может содержать до 4150 (950 до mIRC 6.32) байтов данных, включая имя переменной (однако из-за ограничений длины строки в анализаторе сценариев mIRC максимум 4146 байтов можно назначить явно с помощью команд /set или /var — это число уменьшается по мере того, как имя переменной становится длиннее)
- Может хранить NUL (ASCII 0) или конечные пробелы.
- Уничтожаются, когда заканчивается вызванный псевдоним или событие.
- С префиксом
%
(например%Variable
) - Создано с использованием
var
команда.var
это просто внутренний псевдоним дляset -l
ноvar
предоставляет средства для объявления нескольких локальных переменных в одной строке (например,var %a = 1, %b, %c = 2
)
Ограничения
[ редактировать ]- Анализатор сценариев поддерживает максимум 8292 (950 до mIRC 6.32) символов в строке (не включая символы новой строки и отступы).
- языка Строки не заключаются синтаксически, что создает неоднозначность в коде, где символы, подразумеваемые как литеральные строки, рассматриваются как часть синтаксиса .
- Каждая строка кода разбита на набор токенов, разделенных пробелами. Поскольку синтаксический анализатор mIRC не поддерживает нулевые токены, а язык не предоставляет синтаксис, позволяющий четко отличать литеральные строки от кода; До версии mIRC 6.2 было невозможно передать несколько последовательных пробелов какой-либо команде или псевдониму. Однако это было исправлено с введением команды returnex, которая позволяет сохранять пробелы.
Примеры кода
[ редактировать ]Код ниже представлен в формате удаленных сценариев. При помещении в файл псевдонимов именам команд не должно предшествовать слово " alias
". Комментарии к тестам включают общие /* comment */
и ;comment
.
Вот пример псевдонима Hello World :
;Defines the alias 'hello' in the remote script ;Note: if this is placed in an alias script, ;the 'alias' part must be removed (result: hello {) ;Usage: /hello alias hello { ;Displays(/echo) 'Hello World!' into the active window(-a) echo -a Hello World! }
Удаленный скрипт для автоматического ответа на определенный текст
;Placed in a remote script ;When a user types Hello! in a channel, ;you answer back: Hello, [nickname]! on *:TEXT:Hello!:#:{ msg $chan Hello, $nick $+ ! } ;When a user types Hello! in a private message, ;you answer back: Hello, [nickname]! on *:TEXT:Hello!:?: { msg $nick Hello, $nick $+ ! } ;Here is a script which automatically gives voice to a user ;who joins a particular channel (The Bot or user should have HOP) on *:JOIN:#?: { mode $chan +v $nick } ;A bad word script on *:Text:die*:#: { .mode $chan +b $nick | kick $chan $nick Dont say that again }
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Функции — AdiIRC — Поддержка AdiIRC/Ошибки/Запросы функций» . Пер Амундсен. Архивировано из оригинала 2 декабря 2020 года . Проверено 2 декабря 2020 г.
- ^ «Сценарии — AdiIRC — Поддержка AdiIRC/Ошибки/Запросы функций» . Пер Амундсен. Архивировано из оригинала 2 декабря 2020 года . Проверено 2 декабря 2020 г.
- ^ Перейти обратно: а б «Подробное сравнение mIRC и AdiIRC по состоянию на 2020 год — Slant» . Parli, Inc. Архивировано из оригинала 2 декабря 2020 года . Проверено 2 декабря 2020 г.
- ^ Язык сценариев mIRC — WikiChip , WikiChip LLC, заархивировано из оригинала 12 ноября 2020 г.
- Смит, Крис. (2004). «Совет № 20: автоматизация IRC с помощью сценариев» в журнале IRC Hacks: 100 промышленных советов и инструментов . Пол Маттон, изд. O'Reilly Media, Inc., стр. 71–74. (Подробный пример функций и использования скрипта)
- Хосе Назарио (2004) Стратегии защиты и обнаружения интернет-червей . Артех Хаус, 2004. с. 53, 55. (Обсуждается атака сценария mIRC 1997 года.)
- Кен Данэм, Джим Мельник (2008) Вредоносные боты: взгляд изнутри на киберпреступное подполье Интернета . ЦРК Пресс. п. 7-31. (Углубленный анализ/реверс-инжиниринг вредоносного бота на основе mIRC-скрипта)
- Петер Сзор (2005). Искусство исследования и защиты компьютерных вирусов . Пирсон Образование. Ч. 3.7.7.
- Дэвид Харли, Роберт С. Виберт (2007). Руководство AVIEN по защите от вредоносного ПО для предприятия . Эльзевир. п. 147. (использование в скриптовых атаках)
- Эшаренана Э. Адоми (2008). Безопасность и программное обеспечение для интернет-кафе Идея Групп Инк (IGI). п. 173.
- Маркус Якобссон, Зульфикар Рамзан. (2008). Криминальное ПО: понимание новых атак и средств защиты . Аддисон-Уэсли Профессионал. п. 194.
Внешние ссылки
[ редактировать ]- Официальный сайт МИРЦ
- Онлайн-версия файла справки mIRC
- Страницы WikiChip mIRC — поддерживаемый пользователем справочный справочник на базе Wiki, в первую очередь по сценариям mIRC.