Lenguaje de programación mIRC

Lenguaje de programación integrado en mIRC


Lenguaje de programación mIRC
ParadigmaProgramación basada en eventos , Programación procedimental
Diseñado porKhaled Mardam-Bey
ReveladorKhaled Mardam-Bey
Apareció por primera vez1995 ( 1995 )
Disciplina de mecanografíaTipificación dinámica
Sistema operativoMicrosoft Windows
LicenciaSoftware propietario
Extensiones de nombre de archivo.mrc, .ini
Sitio webwww.mirc.com
Implementaciones principales
mIRC AdiIRC [1] [2] [3]
Editor de scripts mIRC (integrado)

El lenguaje de script mIRC (a menudo abreviado extraoficialmente como " mSL " [3] [4] ) es el lenguaje de script integrado en mIRC y Adiirc, clientes de IRC para Windows pero que funcionan con WiNE para Linux.

Usos principales

  • Canal ligero y protección personal contra muchos tipos de ataques (flooding, spamming, takeovers, etc.).
  • Se pueden crear ventanas de diálogo en mIRC para brindar una mejor compatibilidad al usuario, en lugar de todo en menús emergentes.
    • Las extensiones de diálogo mIRC más populares son MDX ( mIRC Dialog Extension) y DCX (Dialog Control Extension ) . También existen algunas versiones de mdx.dll y dcx.dll modificadas por hackers de IRC.
  • Bots que proporcionan gestión automatizada de canales de IRC, trivia u otros juegos y otras funciones deseadas para los usuarios del chat.
  • Comandos que ahorran tiempo de escritura o simplifican la vida en IRC (como identificarse automáticamente como el propietario de un apodo).
  • Servidores proxy CONNECT (www.mslscript.com) y servidores Bounce (https://en.wikipedia.org/wiki/ZNC) para reemplazar algunos scripts mSL con código más rápido y funciones convenientes.

Almacenamiento de scripts

Los scripts se almacenan como archivos de texto sin formato, normalmente con la extensión de archivo .mrc , o como archivos INI . Sin embargo, se pueden almacenar con cualquier extensión. Se pueden cargar varios archivos de script a la vez, aunque en algunos casos, un script entrará en conflicto con otro y provocará que uno o ambos dejen de funcionar correctamente. El orden en el que se cargan los archivos de script puede marcar la diferencia si el script funciona correctamente o no. Se DEBE utilizar un script de (des)carga para que los scripts de tamaño mediano funcionen como se espera.

Características del lenguaje

El lenguaje de programación mIRC utiliza su propia nomenclatura para referirse a las construcciones del lenguaje. (Sin embargo, 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 con script 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 invocan cuando el usuario las selecciona. El término originalmente se refería a los menús que aparecen al hacer clic con el botón derecho. Todavía se utiliza de esta manera en el manual.
  • Los controles remotos son scripts de manejo de eventos . Se llaman cuando se produce el evento que controlan.
  • Todas las variables están tipificadas dinámicamente .
  • Las tablas hash están disponibles para un almacenamiento de datos de mayor tamaño; las matrices , no.
  • Los scripts mIRC utilizan sigilos . Los identificadores (ya sean personalizados o integrados) están precedidos por $, las variables binarias están precedidas por &, y otras variables (ya sean locales o globales) están precedidas por %. Los comandos y alias no están precedidos por ningún carácter en particular (aunque cuando se ingresan desde la línea de comandos de una ventana deben estar precedidos por el prefijo del comando, generalmente /).

Manejo de archivos

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

Lo anterior está pensado para el acceso singular al archivo, ya que cada vez que se emite $reado /writese abre y se cierra el archivo para acceder a él, los accesos múltiples, por ejemplo durante un bucle, se gestionan mejor mediante /fopen, /fwritey /fclose. Dado que esto abre el archivo solo una vez, en algunos casos /filtery /savebufes un método aún más eficiente (sin bucle de 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 a través de comandos e identificadores
  • Se desactiva automáticamente cuando el script devuelve el control a mIRC (y no a otra parte de un script)
  • Con el prefijo &(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 una cantidad ilimitada de datos binarios o hasta 4150 bytes (950 antes de mIRC 6.32) de texto sin formato. Este límite lo impone la propia limitación de longitud de línea del analizador de scripts de mIRC (a menos que se asigne una variable binaria).
  • Accesible globalmente a través de comandos e identificadores
  • Se desactivan automáticamente al salir de mIRC, ya que solo se almacenan en la memoria.
  • Se puede guardar para uso posterior.
  • Sin prefijo
  • 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
  • Tamaño limitado únicamente por los límites de memoria de la computadora.
  • Permite utilizar cualquier tamaño de cubo.

Variables globales

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

Variables locales

  • Puede contener hasta 4150 (950 antes de mIRC 6.32) bytes de datos, 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 un máximo de 4146 bytes explícitamente 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 desencadenado.
  • Con el prefijo %(por ejemplo %Variable)
  • Creado usando el varcomando. vares simplemente un alias interno para set -lpero varplantea 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 (950 antes de mIRC 6.32) caracteres por línea (sin incluir nuevas líneas ni sangrías).
  • 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 delimitados por espacios. Como 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 múltiples espacios consecutivos a cualquier comando o alias. Sin embargo, esto se solucionó con la introducción del comando returnex que permite la conservación de los espacios.

Ejemplos de código

El código que se muestra 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 comandos comunes /* comment */y ;comment.

A continuación se muestra 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, ;se debe eliminar la parte 'alias' (resultado: hola {) ;Uso: /holaalias  hola  { ;Muestra(/echo) '¡Hola mundo!' en la ventana activa(-a)  echo  - un  ¡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 guión de 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 de AdiIRC/Errores/Solicitudes de funciones". Por Amundsen. Archivado desde el original el 2 de diciembre de 2020. Consultado el 2 de diciembre de 2020 .
  2. ^ "Scripting - AdiIRC - Soporte de AdiIRC/Errores/Solicitudes de funciones". Por Amundsen. Archivado desde el original el 2 de diciembre de 2020. Consultado el 2 de diciembre de 2020 .
  3. ^ ab "Comparación detallada de mIRC vs AdiIRC a partir de 2020 - Slant". Parli, Inc. Archivado desde el original el 2 de diciembre de 2020 . Consultado el 2 de diciembre de 2020 .
  4. ^ Lenguaje de programación mIRC - WikiChip, WikiChip LLC, archivado desde el original el 12 de noviembre de 2020
  • Smith, Chris. (2004). "Hack #20 Automate IRC with Scripting" (Hack nº 20: automatizar IRC con scripts) en IRC Hacks: 100 Industrial-Strength Tips & Tools (Trucos para IRC: 100 consejos y herramientas de nivel industrial). Paul Mutton, ed. 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 de Internet. Artech House, 2004. p. 53, 55. (Analiza el ataque de scripts mIRC de 1997.)
  • Ken Dunham, Jim Melnick (2008) Malicious Bots: An Inside Look into the Cyber-Criminal Underground of the Internet [Bots maliciosos: una mirada desde dentro al subsuelo cibercriminal de Internet]. CRC Press, pág. 7-31. (Análisis en profundidad/ingeniería inversa de un bot malicioso basado en un script mIRC)
  • Peter Szor (2005). El arte de investigar y defenderse de los virus informáticos. Pearson Education. Cap. 3.7.7.
  • David Harley, Robert S. Vibert (2007). AVIEN Malware Defense Guide for the Enterprise. Elsevier. pág. 147. (Uso en ataques con scripts)
  • Esharenana E. Adomi (2008). Seguridad y Software para Cibercafés. Idea Group Inc (IGI). pag. 173.
  • Markus Jakobsson, Zulfikar Ramzan. (2008). Crimeware: comprensión de 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 mIRC de WikiChip: una referencia de ayuda mantenida por el usuario basada en Wiki, principalmente para scripts mIRC
Retrieved from "https://en.wikipedia.org/w/index.php?title=MIRC_scripting_language&oldid=1246659962"