Язык сценариев MIRC - MIRC scripting language
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Парадигма | Событийное программирование, Процедурное программирование |
---|---|
Разработано | Халед Мардам-бей |
Разработчик | Халед Мардам-бей |
Впервые появился | 1995 |
Печатная дисциплина | Динамический набор текста |
Операционные системы | Майкрософт Виндоус |
Лицензия | Проприетарное программное обеспечение |
Расширения имени файла | .mrc, .ini |
Интернет сайт | http://mirc.com |
Основной реализации | |
mIRC AdiIRC[1][2][3] |
В язык сценариев mIRC (часто неофициально сокращенно "mSL"[3][4]) это язык сценариев встроенный в mIRC, IRC клиент для Windows.
Основное использование
- Канальная и персональная защита от любых типов атак (флуд, спам, CTCP флуд и др.).
- В mIRC можно создавать диалоговые окна для лучшей совместимости с пользователем.
- Популярные расширения диалога mIRC включают MDX (мIRC Dialog Бывшийнапряжение) и DCX (Dialog Cконтроль Бывшийнапряжение). Есть также несколько версий mdx.dll и dcx.dll, модифицированных IRC-хакерами.
- Боты которые обеспечивают автоматическое управление IRC-каналом, викторины или другие игры, а также другие желаемые функции для болтовни.
- Команды, которые экономят ввод или иным образом упрощают жизнь в IRC (например, автоматически идентификация как обладатель ника).
Хранилище скриптов
Скрипты хранятся в виде текстовых файлов, обычно с расширением .mrc. расширение файла, или как Файлы INI. Однако их можно хранить с любым расширением. За один раз можно загрузить несколько файлов сценариев, хотя в некоторых случаях один сценарий будет конфликтовать с другим, что приведет к неправильной работе одного или обоих из них.
Особенности языка
Эта секция может быть слишком техническим для большинства читателей, чтобы понять. Пожалуйста помогите улучшить это к сделать понятным для неспециалистов, не снимая технических деталей. (Август 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Язык сценариев mIRC использует свою собственную номенклатуру для обозначения языковых конструкций. (Однако, хотя это может немного сбить с толку новичков, они не влияют на функциональность mSL.)
- Встроенные функции называются команды или, если они возвращают значение, идентификаторы.
- Пользовательский сценарий функции называются псевдонимы. Псевдонимы, возвращающие значение, известны как специальные идентификаторы. Оба вызываются из командной строки или других частей сценария так же, как встроенные команды и идентификаторы (и даже могут заменять их).
- Всплывающие окна написаны по сценарию контекстное меню Предметы. Всплывающие окна вызываются, когда они выбираются пользователем. Первоначально термин относился к меню, которое всплывает при щелчке правой кнопкой мыши. Этот способ до сих пор используется в руководстве.
- Пульты обработка событий скрипты. Пульты вызываются, когда происходит событие, которое они обрабатывают.
- Все переменные динамически типизированный.
- Скрипты mIRC используют сигилы. Идентификаторам (настраиваемым или встроенным) предшествует
$
, двоичным переменным предшествует&
, а другим переменным (локальным или глобальным) предшествует%
. Командам и псевдонимам не предшествует какой-либо конкретный символ (хотя при вводе из командной строки окна им должен предшествовать префикс команды, обычно/
).
Обработка файлов
- Скрипты могут читать и записывать в файлы [
$ read (файл, [аргументы])
|/записывать
]
Вышеуказанное предназначено для единственного доступа к файлу. Потому что каждый раз, когда вы выпускаете $ читать
или же /записывать
вы открываете и закрываете файл для доступа. Множественные обращения, например, во время цикла, лучше всего обрабатывать через / fopen
, / fwrite
и / fclose
. Поскольку это открывает файл только один раз. В некоторых случаях /фильтр
и / savebuf
- еще более эффективный метод (без сценария цикла).
- Скрипты также могут копировать и удалять файлы. [
/ копия
|/удалять
]
Бинарные переменные
- Содержат неограниченное количество (8192 байта до mIRC 6.1) необработанных данных
- Доступен глобально через команды и идентификаторы
- Автоматически сбрасывается, когда скрипт возвращает управление mIRC (а не другой части скрипта)
- С префиксом
&
(например.&Переменная
) - Доступен только через
/хлеб
и/ bwrite
, поэтому эти переменные нельзя передать в другие части скрипта.
Хеш-таблицы
- Может содержать неограниченное количество двоичных данных или до 4150 (950 до mIRC 6.32) байтов обычного текста. Это ограничение накладывается ограничением длины строки собственного парсера сценариев mIRC (если не назначена двоичная переменная)
- Доступен глобально через команды и идентификаторы
- Автоматически сбрасывается при выходе из mIRC, поскольку они хранятся только в памяти
- Можно сохранить для дальнейшего использования
- Без префикса
- Быстрее, чем доступ из файла, поскольку хеш-таблицы хранятся в памяти, а не на жестком диске
- Размер ограничен только лимитами памяти компьютера.
- Позволяет использовать ведро любого размера
Глобальные переменные
- Может содержать до 4150 (950 до mIRC 6.32) байтов данных, включая его имя (однако из-за ограничений длины строки в парсере сценариев mIRC, максимум 4146 байт может быть явно назначен с помощью / set или / var - это число уменьшается по мере того, как имя переменной становится длиннее)
- Невозможно сохранить NUL (ASCII 0) или конечные пробелы
- Доступен во всем мире
- Не сбрасывать автоматически, если не используется переключатель (автоматически сохраняется в файле инициализации mIRC)
- С префиксом
%
(например.%Переменная
) - Создано с использованием
набор
команда илиvar -g
или же% Variable = значение
обозначение
Локальные переменные
- Может содержать до 4150 (950 до mIRC 6.32) байтов данных, включая имя переменной (однако из-за ограничений длины строки в парсере сценариев mIRC максимум 4146 байт может быть явно назначен с помощью команд / set или / var - это число уменьшается с увеличением длины имени переменной)
- Может хранить NUL (ASCII 0) или конечные пробелы
- Уничтожаются по окончании сработавшего псевдонима или события
- С префиксом
%
(например.%Переменная
) - Создано с использованием
вар
команда.вар
это просто внутренний псевдоним дляустановить -l
новар
предлагает средства для объявления нескольких локальных переменных в одной строке (например,var% a = 1,% b,% c = 2
)
Ограничения
- Парсер сценариев поддерживает максимум 8 292 (950 до mIRC 6.32) символов в строке (не включая символы новой строки или отступы).
- Строки не заключены синтаксически, что создает неоднозначность в коде, где символы, обозначенные как буквальные строки, рассматриваются как часть языка синтаксис.
- Каждая строка кода разбита на набор токенов, разделенных пробелами. Поскольку синтаксический анализатор mIRC не поддерживает нулевые токены, а язык не предоставляет синтаксиса, позволяющего четко отличать буквальные строки от кода; До mIRC версии 6.2 было невозможно передать несколько последовательных пробелов любой команде или псевдониму. Однако это было исправлено с введением команды возврата, которая позволяет сохранять пробелы.
Примеры кода
Приведенный ниже код находится в формате удаленных скриптов. Если они помещены в файл псевдонимов, перед именами команд не должно стоять слово "псевдоним
". Комментарии к тестам включают общие / * комментарий * /
и ;комментарий
.
Вот пример Привет, мир псевдоним:
; Определяет псевдоним hello в удаленном сценарии; Примечание: если он помещен в сценарий псевдонима,; часть псевдонима должна быть удалена (результат: hello {); Использование: / helloalias hello {; Отображает (/ echo ) 'Привет, мир!' в активное окно (-a) echo -a Hello World!}
Удаленный скрипт для автоматического ответа на определенный текст
; Помещается в удаленный сценарий; когда пользователь набирает Hello! в канале; вы отвечаете: Привет, [ник]! на *: ТЕКСТ: Привет!: #: {msg $ chan Привет, $ nick $ +! }; Когда пользователь набирает Hello! в личном сообщении; вы отвечаете: Привет, [ник]! на *: ТЕКСТ: Привет!:?: {msg $ nick Привет, $ nick $ +! }; Вот сценарий, который автоматически озвучивает пользователя; кто присоединяется к определенному каналу (бот или пользователь должен иметь HOP) на *: JOIN: # ?: {mode $ chan + v $ nick}; Скрипт с плохим словом на *: Текст: die *: #: {.mode $ chan + b $ nick | пинайте $ chan $ nick Не говори это снова}
Смотрите также
Рекомендации
- ^ «Возможности - 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, архивировано с оригинал 2 декабря 2020 г.
- Смит, Крис. (2004). "Хак №20 Автоматизация IRC с помощью сценариев" в IRC Hacks: 100 полезных советов и инструментов. Пол Маттон, изд. O'Reilly Media, Inc., стр. 71–74. (Подробный пример функций и использования скрипта)
- Хосе Назарио (2004)Стратегии защиты и обнаружения от интернет-червей. Artech House, 2004. с. 53, 55. (Обсуждается атака сценария mIRC 1997 года.)
- Кен Данхэм, Джим Мельник (2008) Вредоносные боты: взгляд изнутри на киберпреступное подполье Интернета. CRC Press. п. 7-31. (Углубленный анализ / обратная инженерия вредоносного бота на основе mIRC-скрипта)
- Питер Сор (2005). Искусство исследования и защиты компьютерных вирусов. Pearson Education. Гл. 3.7.7.
- Дэвид Харли, Роберт С. Виберт (2007). Руководство AVIEN по защите от вредоносных программ для предприятий. Эльзевир. п. 147. (использование в скриптовых атаках)
- Эшаренана Э. Адоми (2008). Безопасность и программное обеспечение для киберкафе. Idea Group Inc (IGI). п. 173.
- Маркус Якобссон, Зульфикар Рамзан. (2008). Преступное ПО: новые сведения о атаках и средствах защиты. Эддисон-Уэсли Профессионал. п. 194.
внешняя ссылка
- Официальный сайт mIRC
- Онлайн-версия файла справки mIRC
- WikiChip страницы mIRC - Справочная система на основе Wiki, поддерживаемая пользователями, в первую очередь для сценариев mIRC.
- mIRC скрипты в Керли
- Справка по скриптам mIRC - Турецкий / английский mIRC Scripting Help неофициально