Articulo de referencia

Lenguaje de scripting mIRC

{{cite web\n| title = Features – AdiIRC – AdiIRC Support/Bugs/Feature Requests\n| url = https://dev.adiirc.com/projects/adiirc/wiki/Features#26-Scripting-Engine\n| publisher = P...

Editor de scripts de mIRC (integrado)

El lenguaje de scripting mIRC (a menudo abreviado extraoficialmente como " mSL " [ 3 ] [ 4 ] ) es el lenguaje de scripting integrado en mIRC y Adiirc , clientes IRC para Windows , y también a través de la capa de compatibilidad WINE para Linux .

Usos principales

  • Canal de luz y protección personal contra muchos tipos de ataques (inundación, spam, tomas de control, etc.).
  • En mIRC se pueden crear ventanas de diálogo para mejorar la compatibilidad con el usuario, en lugar de tener todo en menús emergentes.
    • Entre las extensiones de diálogo más populares de mIRC se encuentran MDX ( mIRC Dialog Extension ) y DCX ( Dialog Control Extension ) . También existen algunas versiones de mdx.dll y dcx.dll modificadas por programadores de IRC .
  • Bots que proporcionan gestión automatizada de canales IRC, juegos de preguntas y respuestas u otros juegos, y otras funciones deseadas para los participantes del chat.
  • Comandos que ahorran tiempo al escribir o que simplifican la vida en IRC (como la identificación automática como propietario de un apodo).
  • Servidores proxy CONNECT (www.mslscript.com) y servidores Bounce ( ZNC ) para reemplazar algunos scripts de mSL con código más rápido y funciones prácticas.

Almacenamiento de scripts

Los scripts se almacenan como archivos de texto plano, generalmente con la extensión .mrc , o como archivos INI . Sin embargo, pueden tener cualquier extensión. Se pueden cargar varios archivos de script a la vez, aunque en algunos casos, un script puede entrar en conflicto con otro y provocar que uno o ambos dejen de funcionar correctamente. El orden de carga de los archivos de script puede influir en su correcto funcionamiento. Para que los scripts de tamaño considerable funcionen correctamente, es imprescindible utilizar un script de carga/descarga.

Características del idioma

El lenguaje de scripting mIRC utiliza su propia nomenclatura para referirse a las construcciones del lenguaje. (Si bien esto puede resultar un poco confuso para los principiantes, no afecta la funcionalidad de mSL).

  • Las funciones integradas se denominan comandos o, si devuelven un valor, identificadores .
  • Las funciones personalizadas programadas se denominan alias . Los alias que devuelven un valor se conocen como identificadores personalizados . Ambos se invocan desde la línea de comandos u otras partes de un script de la misma manera que los comandos e identificadores integrados (e incluso pueden reemplazarlos).
  • Las ventanas emergentes son elementos de menú contextual programados . Se activan cuando el usuario las selecciona. El término se refería originalmente a los menús que aparecen al hacer clic con el botón derecho. En el manual, todavía se utiliza con este significado.
  • Los comandos remotos son scripts que gestionan eventos . Se ejecutan cuando ocurre el evento que gestionan.
  • Todas las variables tienen tipado dinámico .
  • Las tablas hash están disponibles para el almacenamiento de grandes cantidades de datos; los arreglos no.
  • Los scripts de mIRC utilizan sigilos . Los identificadores (ya sean personalizados o integrados) van precedidos de $, las variables binarias van precedidas de &, y otras variables (ya sean locales o globales) van precedidas de %. Los comandos y alias no van precedidos de ningún carácter en particular (aunque cuando se introducen desde la línea de comandos de una ventana deben ir precedidos del prefijo del comando, normalmente /).

Manejo de archivos

  • Los scripts pueden leer y escribir en archivos [ $read(file,[args])| /write]

Lo anterior está pensado para el acceso único al archivo. Porque cada vez que lo ejecutas $read, /writeabres y cierras el archivo para acceder a él. Los accesos múltiples, durante un bucle, por ejemplo, se manejan mejor mediante /fopeny /fwrite. /fcloseYa que esto abre el archivo solo una vez. En algunos casos /filter, y /savebufes un método aún más eficiente (bucle sin script).

  • Los scripts también pueden copiar y eliminar archivos. [ /copy| /remove]

Variables binarias

  • Contiene datos sin procesar ilimitados (8192 bytes antes de mIRC 6.1).
  • Accesible globalmente mediante comandos e identificadores.
  • Se desactiva automáticamente cuando el script devuelve el control a mIRC (y no a otra parte del script).
  • Prefijado con &(por ejemplo &Variable)
  • No se puede acceder a ellas de otra manera que no sea mediante /bready /bwrite, por lo que estas variables no se pueden pasar a otras partes del script.

Tablas hash

  • Puede contener datos binarios ilimitados o hasta 4150 bytes (950 antes de mIRC 6.32) de texto plano. Este límite lo impone el analizador de scripts de mIRC (a menos que se asigne una variable binaria).
  • Accesible globalmente mediante comandos e identificadores.
  • Se desactivan automáticamente al salir de mIRC, ya que solo se almacenan en la memoria.
  • Se puede guardar para su uso posterior.
  • Sin prefijo
  • Es más rápido que acceder desde un archivo, ya que las tablas hash se almacenan en la memoria en lugar de en el disco duro.
  • El tamaño está limitado únicamente por los límites de memoria del ordenador.
  • Permite utilizar cualquier tamaño de cubo.

Variables globales

  • Puede contener hasta 4150 bytes de datos (950 antes de mIRC 6.32), incluido su nombre (sin embargo, debido a las limitaciones de longitud de línea en el analizador de scripts de mIRC, se puede asignar explícitamente un máximo de 4146 bytes usando /set o /var  ; este número disminuye a medida que el nombre de la variable se hace más largo).
  • No se puede almacenar NUL (ASCII 0) ni espacios finales.
  • Accesible a nivel mundial
  • No se desactiva automáticamente a menos que se utilice un interruptor (almacenado automáticamente en un archivo de inicialización de mIRC).
  • Prefijado con %(por ejemplo %Variable)
  • Creado usando el setcomando o var -gla %Variable = valuenotación

Variables locales

  • Puede contener hasta 4150 bytes de datos (950 antes de mIRC 6.32), incluido el nombre de la variable (sin embargo, debido a las limitaciones de longitud de línea en el analizador de scripts de mIRC, se puede asignar explícitamente un máximo de 4146 bytes usando los comandos /set o /var  ; este número disminuye a medida que el nombre de la variable se hace más largo).
  • Puede almacenar NUL (ASCII 0) o espacios finales.
  • Se destruyen cuando finaliza el alias o evento que los activó.
  • Prefijado con %(por ejemplo %Variable)
  • Creado usando el varcomando. vares simplemente un alias interno para set -lpero varofrece los medios para declarar múltiples variables locales en una sola línea (por ejemplo var %a = 1, %b, %c = 2)

Limitaciones

  • El analizador de scripts admite un máximo de 8292 caracteres por línea (950 antes de mIRC 6.32), sin incluir saltos de línea ni sangría.
  • Las cadenas no están encerradas sintácticamente, lo que crea ambigüedades en el código donde los caracteres que se consideran cadenas literales se tratan como parte de la sintaxis del lenguaje .
  • Cada línea de código se divide en un conjunto de tokens separados por espacios. Dado que el analizador de mIRC no admite tokens nulos y el lenguaje no proporciona una sintaxis para diferenciar claramente las cadenas literales del código, antes de la versión 6.2 de mIRC era imposible pasar varios espacios consecutivos a cualquier comando o alias. Sin embargo, esto se solucionó con la introducción del comando returnex, que permite conservar los espacios.

Ejemplos de código

El código que aparece a continuación está en formato de scripts remotos. Si se coloca en un archivo de alias, los nombres de los comandos no deben ir precedidos de la palabra " alias". Los comentarios de prueba incluyen los comunes /* comment */y ;comment.

Aquí tienes un ejemplo de un alias de "Hola Mundo" :

;Define el alias 'hola' en el script remoto;Nota: si esto se coloca en un script de alias, ;la parte 'alias' debe eliminarse (resultado: hello {) ;Uso: /helloalias hola {;Muestra(/echo) '¡Hola Mundo!' en la ventana activa(-a) echo - a ¡Hola Mundo !}

Un script remoto para responder automáticamente a cierto texto

;Colocado en un script remoto;Cuando un usuario escribe ¡Hola! en un canal, ;tú respondes: ¡Hola, [apodo]!en *: TEXTO : Hola !: # : { msg $chan Hola , $nick $ + ! };Cuando un usuario escribe ¡Hola! en un mensaje privado, ;tú respondes: ¡Hola, [apodo]!en *: TEXTO : ¡Hola !:?: { msg $nick Hola , $nick $ + ! }Aquí hay un script que automáticamente le da voz a un usuario que se une a un canal en particular (el bot o usuario debe tener HOP).en *: UNIRSE : # ?: { modo $chan + v $nick };Un guion con malas palabrasen *: Texto : morir *: # : { . modo $chan + b $nick | patear $chan $nick No vuelvas a decir eso }

Véase también

Referencias

  1. "Características – AdiIRC – Soporte/Errores/Solicitudes de funciones de AdiIRC" . Por Amundsen. Archivado del original el 2 de diciembre de 2020. Recuperado el 2 de diciembre de 2020 .
  2. "Scripting – AdiIRC – Soporte/Errores/Solicitudes de funciones de AdiIRC" . Por Amundsen. Archivado del original el 2 de diciembre de 2020. Consultado el 2 de diciembre de 2020 .
  3. 1 2 "Comparación detallada de mIRC vs AdiIRC a partir de 2020 – Slant" . Parli, Inc. Archivado del original el 2 de diciembre de 2020. Recuperado el 2 de diciembre de 2020 .
  4. Lenguaje de scripting mIRC – WikiChip , WikiChip LLC, archivado del original el 12 de noviembre de 2020
  • Smith, Chris. (2004). «Truco n.° 20: Automatiza IRC con scripts» en Trucos para IRC: 100 consejos y herramientas de alto nivel . Editado por Paul Mutton. O'Reilly Media, Inc., págs.  71-74. (Ejemplo detallado de las características y el uso de los scripts).
  • Jose Nazario (2004) Estrategias de defensa y detección contra gusanos informáticos . Artech House, 2004. págs.  53, 55. (Analiza el ataque de scripts mIRC de 1997).
  • Ken Dunham, Jim Melnick (2008) Bots maliciosos: Una mirada al interior del submundo ciberdelictivo de Internet . CRC Press. págs.  7-31. (Análisis en profundidad/ingeniería inversa de un bot malicioso basado en scripts de mIRC).
  • Peter Szor (2005). El arte de la investigación y defensa contra virus informáticos . Pearson Education. Cap. 3.7.7.
  • David Harley, Robert S. Vibert (2007). Guía de defensa contra malware AVIEN para empresas . Elsevier. pág.  147. (uso en ataques de scripts)
  • Esharenana E. Adomi (2008). Seguridad y Software para Cibercafés . Idea Group Inc (IGI). pag.  173.
  • Markus Jakobsson, Zulfikar Ramzan. (2008). Crimeware: Entendiendo los nuevos ataques y defensas . Addison-Wesley Professional. pág.  194.
  • Sitio web oficial de mIRC
  • Versión en línea del archivo de ayuda de mIRC
  • Páginas de WikiChip mIRC  : una guía de ayuda basada en wiki, mantenida por los usuarios, principalmente para la programación de mIRC.