El lenguaje de scripting mIRC (a menudo abreviado extraoficialmente como " mSL " [3] [4] ) es el lenguaje de scripting integrado en mIRC , un cliente de IRC para Windows .
Paradigma | Programación impulsada por eventos , programación procedimental |
---|---|
Diseñada por | Khaled Mardam-Bey |
Desarrollador | Khaled Mardam-Bey |
Apareció por primera vez | 1995 |
Disciplina de mecanografía | Escritura dinámica |
SO | Microsoft Windows |
Licencia | Software propietario |
Extensiones de nombre de archivo | .mrc, .ini |
Sitio web | http://mirc.com |
Implementaciones importantes | |
mIRC AdiIRC [1] [2] [3] |
Usos primarios
- Protección de canales y personal frente a todo tipo de ataques (flooding, spamming, CTCP floods, etc.).
- Se pueden crear ventanas de diálogo en mIRC para brindar una mejor compatibilidad con el usuario.
- Extensiones Popular mIRC diálogo incluyen MDX ( m IRC D ialog Ex tensión) y DCX ( D ialog C ontrol Ex tensión). También hay algunas versiones de mdx.dll y dcx.dll modificadas por piratas informáticos de IRC.
- Bots que brindan administración automatizada de canales de IRC, trivia u otros juegos, y otras funciones deseadas para los usuarios de chat.
- Comandos que ahorran la escritura o simplifican la vida en IRC (como identificarse automáticamente como propietario de un apodo).
Almacenamiento de scripts
Los scripts se almacenan como archivos de texto sin formato, generalmente con una 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 hará que uno o ambos dejen de funcionar correctamente.
Características del idioma
El lenguaje de scripting mIRC usa su propia nomenclatura para referirse a las construcciones del lenguaje. (Sin embargo, aunque esto puede resultar un poco confuso para los recién llegados, no afecta la funcionalidad de mSL).
- Las funciones integradas se denominan comandos o, si devuelven un valor, identificadores .
- Las funciones con secuencias de comandos personalizadas se denominan alias . Los alias que devuelven un valor se conocen como identificadores personalizados . Ambos se llaman 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 del menú contextual con guiones . Las ventanas emergentes se llaman cuando son seleccionadas por el usuario. El término se refería originalmente a los menús, que aparecen al hacer clic con el botón derecho. Todavía se usa de esta manera en el manual.
- Los controles remotos son scripts de manejo de eventos . Los controles remotos se llaman cuando ocurre el evento que manejan.
- Todas las variables se escriben dinámicamente .
- Los scripts mIRC hacen uso de 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, generalmente deben estar precedidos por el prefijo del comando/
).
Manejo de archivos
- Los scripts pueden leer y escribir en archivos [
$read(file,[args])
|/write
]
Lo anterior está destinado a un acceso singular al archivo. Porque cada vez que emite $read
o /write
abre y cierra el archivo para acceder. Los accesos múltiples, durante un bucle, por ejemplo, se manejan mejor a través de /fopen
, /fwrite
y /fclose
. Dado que esto abre el archivo solo una vez. En algunos casos /filter
y /savebuf
es 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 a través de comandos e identificadores
- Desarmado automáticamente cuando el script devuelve el control a mIRC (y no a otra parte de un script)
- Prefijado con
&
(p&Variable
. Ej. ) - No se puede acceder a otra cosa que no sea
/bread
y/bwrite
, por lo que estas variables no se pueden pasar a otras partes del script.
Tablas hash
- Puede contener datos binarios ilimitados o hasta 4.150 (950 antes de mIRC 6.32) bytes de texto sin formato. Este límite lo impone la limitación de longitud de línea del propio analizador de secuencias de comandos de mIRC (a menos que se asigne una variable binaria)
- Accesible globalmente a través de comandos e identificadores
- Desarmado automáticamente al salir de mIRC ya que solo se almacenan en la memoria
- Puede guardarse para su 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 del disco duro
- Tamaño limitado solo por los límites de memoria de la computadora.
- Permite utilizar cualquier tamaño de cubo
Variables globales
- Puede contener hasta 4,150 (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 secuencias de comandos de mIRC, se puede asignar explícitamente un máximo de 4,146 bytes usando / set o / var; este número disminuye a medida que el nombre de la variable se alarga)
- No se pueden almacenar NUL (ASCII 0) o espacios finales
- Accesible globalmente
- No desarme automáticamente a menos que se use un interruptor (almacenado automáticamente en un archivo de inicialización mIRC)
- Prefijado con
%
(p%Variable
. Ej. ) - Creado usando el
set
comandovar -g
o%Variable = value
notación
Variables locales
- Puede contener hasta 4,150 (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 4,146 bytes explícitamente usando los comandos / set o / var - este número disminuye a medida que el nombre de la variable se alarga)
- Puede almacenar NUL (ASCII 0) o espacios finales
- Se destruyen cuando finaliza el alias o el evento desencadenado
- Prefijado con
%
(p%Variable
. Ej. ) - Creado usando el
var
comando.var
es simplemente un alias interno deset -l
perovar
plantea los medios para declarar múltiples variables locales en una sola línea (por ejemplovar %a = 1, %b, %c = 2
)
Limitaciones
- El analizador de secuencias de comandos admite un máximo de 8.292 (950 antes de mIRC 6.32) caracteres por línea (sin incluir nuevas líneas 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 idioma .
- 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 varios espacios consecutivos a cualquier comando o alias. Sin embargo, esto se solucionó con la introducción del comando returnnex que permite la preservación de espacios.
Ejemplos de código
El siguiente código 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 archivos comunes /* comment */
y ;comment
.
A continuación, se muestra un ejemplo de un alias de Hello World :
; Define el alias 'hola' en el script remoto; Nota: si se coloca en un script de alias,; la parte 'alias' debe eliminarse (resultado: hola {); Uso: / holaalias 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,; usted responde: ¡Hola, [apodo]!en *: TEXT: ¡Hola!: #: {msg $ chan ¡Hola, $ nick $ +! }; Cuando un usuario escribe ¡Hola! en un mensaje privado,; usted responde: ¡Hola, [apodo]!en *: TEXTO: ¡Hola!:?: {msg $ nick ¡Hola, $ nick $ +! }; Aquí hay un script que automáticamente le da voz a un usuario; quién se une a un canal en particular (el bot o el usuario debe tener HOP)en *: JOIN: # ?: {mode $ chan + v $ nick}; Un guión de malas palabrasen *: Texto: morir *: #: {.mode $ chan + b $ nick | kick $ chan $ nick No vuelvas a decir eso}
Ver también
Referencias
- ^ "Funciones - AdiIRC - AdiIRC Support / Bugs / Feature Requests" . Per Amundsen. Archivado desde el original el 2 de diciembre de 2020 . Consultado el 2 de diciembre de 2020 .
- ^ "Scripting - AdiIRC - AdiIRC Support / Bugs / Feature Requests" . Per Amundsen. Archivado desde el original el 2 de diciembre de 2020 . Consultado el 2 de diciembre de 2020 .
- ^ a b "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 .
- ^ Lenguaje de scripting mIRC - WikiChip , WikiChip LLC, archivado desde el original el 2 de diciembre de 2020
- Smith, Chris. (2004). "Hack # 20 Automatizar IRC con Scripting" en IRC Hacks: 100 consejos y herramientas de fuerza industrial . Paul Mutton, ed. O'Reilly Media, Inc. págs. 71–74. (Ejemplo detallado de las funciones y el uso del script)
- José Nazario (2004) Estrategias de Defensa y Detección contra Gusanos de Internet . Casa Artech, 2004. p. 53, 55. (Analiza el ataque al guión mIRC de 1997).
- Ken Dunham, Jim Melnick (2008) Malicious Bots: An Inside Look into the Cyber-Criminal Underground of the Internet . Prensa CRC. pag. 7-31. (Análisis en profundidad / ingeniería inversa del bot de malware basado en script mIRC)
- Peter Szor (2005). El arte de la investigación y defensa de virus informáticos . Educación Pearson. Ch. 3.7.7.
- David Harley, Robert S. Vibert (2007). Guía de defensa contra malware de AVIEN para empresas . Elsevier. pag. 147. (uso en ataques de script)
- Esharenana E. Adomi (2008). Seguridad y Software para Cybercafés . Idea Group Inc (IGI). pag. 173.
- Markus Jakobsson, Zulfikar Ramzan. (2008). Crimeware: comprensión de nuevos ataques y defensas . Addison-Wesley Professional. pag. 194.
enlaces externos
- Sitio web oficial de mIRC
- Versión en línea del archivo de ayuda mIRC
- Páginas de WikiChip mIRC : una referencia de ayuda mantenida por el usuario basada en Wiki principalmente para scripts de mIRC
- Ayuda de scripting mIRC - turco / inglés Ayuda de scripting mIRC no oficial