fbpx
Wikipedia

mIRC scripting language


The mIRC scripting language (often unofficially abbreviated to "mSL"[3][4]) is the scripting language embedded in mIRC and Adiirc, IRC clients for Windows but work with WiNE for Linux.

mIRC scripts editor (built-in)

Primary uses edit

  • Light channel and personal protection against many types of attacks (flooding, spamming, takeovers, etc.).
  • Dialog windows can be created in mIRC to better serve user-compatibility; rather than everything in popup menus.
    • Popular mIRC dialog extensions include MDX (mIRC Dialog Extension) and DCX (Dialog Control Extension). There are also a few versions of mdx.dll and dcx.dll modded by IRC hackers.
  • Bots that provide automated IRC channel management, trivia or other games, and other desired functions for chatters.
  • Commands that save typing or otherwise simplify life on IRC (such as automatically identifying as the owner of a nickname).
  • Proxy CONNECT servers (www.mslscript.com) and Bounce servers (https://en.wikipedia.org/wiki/ZNC) to replace some mSL scripting with faster code and convenient features.

Script storage edit

Scripts are stored as either plain text files, usually with a .mrc file extension, or as INI files. They, however, can be stored with any extension. Multiple script files can be loaded at one time, although in some cases, one script will conflict with another and cause one or both of them to no longer work properly. The order in which in the script files are loaded may make a difference if the script functions properly or not. A (un)loader-script MUST be used for semi-large scripts to function as intended.

Language features edit

mIRC scripting language uses its own nomenclature to refer to language constructs. (However, whilst this can be a little confusing to newcomers, they do not impact on the functionality of mSL.)

  • Built-in functions are termed commands or, if they return a value, identifiers.
  • Custom scripted functions are called aliases. Aliases that return a value are known as custom identifiers. Both are called from the command line or other parts of a script in the same ways as built-in commands and identifiers (and can even supersede them).
  • Popups are scripted context menu items. Popups are called when they are selected by the user. The term originally referred to the menus—which pop up upon a right click. It is still used this way in the manual.
  • Remotes are event-handling scripts. Remotes are called when the event they handle occurs.
  • All variables are dynamically typed.
  • Hash tables are available for larger data storage; arrays are not.
  • mIRC scripts make use of sigils. Identifiers (whether custom or built-in) are preceded by $, binary variables are preceded by &, and other variables (whether local or global) are preceded by %. Commands and aliases are not preceded by any particular character (although when entered from a window's command line they must be preceded by the command prefix, usually /).

File handling edit

  • Scripts can read from and write to files [$read(file,[args]) | /write ]

The above is intended for singular access to the file. Because each time you issue $read or /write you open and close the file for access. Multiple accesses, during a loop for instance, is best handled through /fopen, /fwrite and /fclose. Since this opens the file only once. In some cases /filter and /savebuf is an even more efficient (non scripted loop) method.

  • Scripts can also copy and delete files. [/copy | /remove]

Binary variables edit

  • Contain unlimited (8192 bytes prior to mIRC 6.1) raw data
  • Globally accessible via commands and identifiers
  • Automatically unset when script returns control to mIRC (and not to another part of a script)
  • Prefixed with & (e.g. &Variable)
  • Cannot be accessed other than by /bread and /bwrite, so these variables cannot be passed onto other parts of the script

Hash tables edit

  • May contain unlimited binary data or up to 4,150 (950 prior to mIRC 6.32) bytes of plain text. This limit is imposed by mIRC's scripting parser's own line length limitation (unless assigning a binary variable)
  • Globally accessible via commands and identifiers
  • Automatically unset when exiting mIRC as they are only stored in memory
  • Can be saved for later use
  • Not prefixed
  • Faster than accessing from a file, as hash tables are stored in memory rather than the hard disk
  • Size limited only by the computer's memory limits.
  • Allows any bucket size to be used

Global variables edit

  • May contain up to 4,150 (950 prior to mIRC 6.32) bytes of data including its name (however due to line-length limitations in mIRC's scripting parser, a maximum of 4,146 bytes can be assigned explicitly using /set or /var — this number decreasing as the variable's name grows longer)
  • Cannot store NUL (ASCII 0) or trailing spaces
  • Globally accessible
  • Do not automatically unset unless a switch is used (stored automatically in a mIRC initialization file)
  • Prefixed with % (e.g. %Variable)
  • Created using the set command or var -g or %Variable = value notation

Local variables edit

  • May contain up to 4,150 (950 prior to mIRC 6.32) bytes of data including the variable name (however due to line-length limitations in mIRC's scripting parser, a maximum of 4,146 bytes can be assigned explicitly using the /set or /var commands — this number decreasing as the variable's name grows longer)
  • Can store NUL (ASCII 0) or trailing spaces
  • Are destroyed when the triggered alias or event ends
  • Prefixed with % (e.g. %Variable)
  • Created using the var command. var is merely an internal alias for set -l but var poses the means to declare multiple local variables on a single line (e.g. var %a = 1, %b, %c = 2)

Limitations edit

  • Scripting parser supports a maximum of 8,292 (950 prior to mIRC 6.32) characters per line (not including newlines or indentation).
  • Strings are not syntactically enclosed, creating ambiguities in code where characters meant as literal strings are treated as part of the language's syntax.
  • Each line of code is broken down into a set of space-delimited tokens. As mIRC's parser does not support null tokens and the language doesn't provide a syntax to clearly differentiate literal strings from code; Prior to mIRC version 6.2 it was impossible to pass multiple consecutive spaces to any command or alias. However, this was fixed with the introduction of the returnex command which allows the preservation of spaces.

Code examples edit

The code below is in the remote scripts format. If placed into an alias file, the command names should not be preceded by the word "alias". Test Comments include the common /* comment */ and ;comment.

Here is an example of a Hello World alias:

;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! } 

A remote script to automatically respond to certain text

;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 } 

See also edit

References edit

  1. ^ . Per Amundsen. Archived from the original on 2 December 2020. Retrieved 2 December 2020.
  2. ^ . Per Amundsen. Archived from the original on 2 December 2020. Retrieved 2 December 2020.
  3. ^ a b . Parli, Inc. Archived from the original on 2 December 2020. Retrieved 2 December 2020.
  4. ^ , WikiChip LLC, archived from the original on 12 November 2020
  • Smith, Chris. (2004). "Hack #20 Automate IRC with Scripting" in IRC Hacks: 100 Industrial-Strength Tips & Tools. Paul Mutton, ed. O'Reilly Media, Inc. pp. 71–74. (In-depth example of script features and usage)
  • Jose Nazario (2004)Defense and Detection Strategies Against Internet Worms. Artech House, 2004. p. 53, 55. (Discusses 1997 mIRC script attack.)
  • Ken Dunham, Jim Melnick (2008) Malicious Bots: An Inside Look into the Cyber-Criminal Underground of the Internet. CRC Press. p. 7-31. (In-depth analysis/reverse engineering of mIRC-script-based malware bot)
  • Peter Szor (2005). The Art of Computer Virus Research and Defense. Pearson Education. Ch. 3.7.7.
  • David Harley, Robert S. Vibert (2007). AVIEN Malware Defense Guide for the Enterprise. Elsevier. p. 147. (usage in script attacks)
  • Esharenana E. Adomi (2008). Security and Software for Cybercafés. Idea Group Inc (IGI). p. 173.
  • Markus Jakobsson, Zulfikar Ramzan. (2008). Crimeware: Understanding New Attacks and Defenses. Addison-Wesley Professional. p. 194.

External links edit

  • Official mIRC website
  • Online version of mIRC help file
  • WikiChip mIRC pages — A Wiki-based user-maintained help reference primarily for mIRC scripting

mirc, scripting, language, this, article, multiple, issues, please, help, improve, discuss, these, issues, talk, page, learn, when, remove, these, template, messages, this, article, includes, list, general, references, lacks, sufficient, corresponding, inline,. This article has multiple issues Please help improve it or discuss these issues on the talk page Learn how and when to remove these template messages This article includes a list of general references but it lacks sufficient corresponding inline citations Please help to improve this article by introducing more precise citations August 2012 Learn how and when to remove this message This article is in list format but may read better as prose You can help by converting this article if appropriate Editing help is available August 2012 Learn how and when to remove this message The mIRC scripting language often unofficially abbreviated to mSL 3 4 is the scripting language embedded in mIRC and Adiirc IRC clients for Windows but work with WiNE for Linux mIRC Scripting LanguageParadigmEvent driven programming Procedural programmingDesigned byKhaled Mardam BeyDeveloperKhaled Mardam BeyFirst appeared1995 1995 Typing disciplineDynamic typingOSMicrosoft WindowsLicenseProprietary softwareFilename extensions mrc iniWebsitewww wbr mirc wbr comMajor implementationsmIRC AdiIRC 1 2 3 mIRC scripts editor built in Contents 1 Primary uses 2 Script storage 3 Language features 3 1 File handling 3 2 Binary variables 3 3 Hash tables 3 4 Global variables 3 5 Local variables 4 Limitations 5 Code examples 6 See also 7 References 8 External linksPrimary uses editLight channel and personal protection against many types of attacks flooding spamming takeovers etc Dialog windows can be created in mIRC to better serve user compatibility rather than everything in popup menus Popular mIRC dialog extensions include MDX mIRC Dialog Extension and DCX Dialog Control Extension There are also a few versions of mdx dll and dcx dll modded by IRC hackers Bots that provide automated IRC channel management trivia or other games and other desired functions for chatters Commands that save typing or otherwise simplify life on IRC such as automatically identifying as the owner of a nickname Proxy CONNECT servers www mslscript com and Bounce servers https en wikipedia org wiki ZNC to replace some mSL scripting with faster code and convenient features Script storage editScripts are stored as either plain text files usually with a mrc file extension or as INI files They however can be stored with any extension Multiple script files can be loaded at one time although in some cases one script will conflict with another and cause one or both of them to no longer work properly The order in which in the script files are loaded may make a difference if the script functions properly or not A un loader script MUST be used for semi large scripts to function as intended Language features editThis section may be too technical for most readers to understand Please help improve it to make it understandable to non experts without removing the technical details August 2012 Learn how and when to remove this message mIRC scripting language uses its own nomenclature to refer to language constructs However whilst this can be a little confusing to newcomers they do not impact on the functionality of mSL Built in functions are termed commands or if they return a value identifiers Custom scripted functions are called aliases Aliases that return a value are known as custom identifiers Both are called from the command line or other parts of a script in the same ways as built in commands and identifiers and can even supersede them Popups are scripted context menu items Popups are called when they are selected by the user The term originally referred to the menus which pop up upon a right click It is still used this way in the manual Remotes are event handling scripts Remotes are called when the event they handle occurs All variables are dynamically typed Hash tables are available for larger data storage arrays are not mIRC scripts make use of sigils Identifiers whether custom or built in are preceded by binary variables are preceded by amp and other variables whether local or global are preceded by Commands and aliases are not preceded by any particular character although when entered from a window s command line they must be preceded by the command prefix usually File handling edit Scripts can read from and write to files read file args write The above is intended for singular access to the file Because each time you issue read or write you open and close the file for access Multiple accesses during a loop for instance is best handled through fopen fwrite and fclose Since this opens the file only once In some cases filter and savebuf is an even more efficient non scripted loop method Scripts can also copy and delete files copy remove Binary variables edit Contain unlimited 8192 bytes prior to mIRC 6 1 raw data Globally accessible via commands and identifiers Automatically unset when script returns control to mIRC and not to another part of a script Prefixed with amp e g amp Variable Cannot be accessed other than by bread and bwrite so these variables cannot be passed onto other parts of the script Hash tables edit May contain unlimited binary data or up to 4 150 950 prior to mIRC 6 32 bytes of plain text This limit is imposed by mIRC s scripting parser s own line length limitation unless assigning a binary variable Globally accessible via commands and identifiers Automatically unset when exiting mIRC as they are only stored in memory Can be saved for later use Not prefixed Faster than accessing from a file as hash tables are stored in memory rather than the hard disk Size limited only by the computer s memory limits Allows any bucket size to be used Global variables edit May contain up to 4 150 950 prior to mIRC 6 32 bytes of data including its name however due to line length limitations in mIRC s scripting parser a maximum of 4 146 bytes can be assigned explicitly using set or var this number decreasing as the variable s name grows longer Cannot store NUL ASCII 0 or trailing spaces Globally accessible Do not automatically unset unless a switch is used stored automatically in a mIRC initialization file Prefixed with e g Variable Created using the set command or var g or Variable value notation Local variables edit May contain up to 4 150 950 prior to mIRC 6 32 bytes of data including the variable name however due to line length limitations in mIRC s scripting parser a maximum of 4 146 bytes can be assigned explicitly using the set or var commands this number decreasing as the variable s name grows longer Can store NUL ASCII 0 or trailing spaces Are destroyed when the triggered alias or event ends Prefixed with e g Variable Created using the var command var is merely an internal alias for set l but var poses the means to declare multiple local variables on a single line e g var a 1 b c 2 Limitations editScripting parser supports a maximum of 8 292 950 prior to mIRC 6 32 characters per line not including newlines or indentation Strings are not syntactically enclosed creating ambiguities in code where characters meant as literal strings are treated as part of the language s syntax Each line of code is broken down into a set of space delimited tokens As mIRC s parser does not support null tokens and the language doesn t provide a syntax to clearly differentiate literal strings from code Prior to mIRC version 6 2 it was impossible to pass multiple consecutive spaces to any command or alias However this was fixed with the introduction of the returnex command which allows the preservation of spaces Code examples editThe code below is in the remote scripts format If placed into an alias file the command names should not be preceded by the word alias Test Comments include the common comment and comment Here is an example of a Hello World alias 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 A remote script to automatically respond to certain text 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 See also editInternet Relay Chat mIRCReferences edit Features AdiIRC AdiIRC Support Bugs Feature Requests Per Amundsen Archived from the original on 2 December 2020 Retrieved 2 December 2020 Scripting AdiIRC AdiIRC Support Bugs Feature Requests Per Amundsen Archived from the original on 2 December 2020 Retrieved 2 December 2020 a b mIRC vs AdiIRC detailed comparison as of 2020 Slant Parli Inc Archived from the original on 2 December 2020 Retrieved 2 December 2020 mIRC Scripting Language WikiChip WikiChip LLC archived from the original on 12 November 2020 Smith Chris 2004 Hack 20 Automate IRC with Scripting in IRC Hacks 100 Industrial Strength Tips amp Tools Paul Mutton ed O Reilly Media Inc pp 71 74 In depth example of script features and usage Jose Nazario 2004 Defense and Detection Strategies Against Internet Worms Artech House 2004 p 53 55 Discusses 1997 mIRC script attack Ken Dunham Jim Melnick 2008 Malicious Bots An Inside Look into the Cyber Criminal Underground of the Internet CRC Press p 7 31 In depth analysis reverse engineering of mIRC script based malware bot Peter Szor 2005 The Art of Computer Virus Research and Defense Pearson Education Ch 3 7 7 David Harley Robert S Vibert 2007 AVIEN Malware Defense Guide for the Enterprise Elsevier p 147 usage in script attacks Esharenana E Adomi 2008 Security and Software for Cybercafes Idea Group Inc IGI p 173 Markus Jakobsson Zulfikar Ramzan 2008 Crimeware Understanding New Attacks and Defenses Addison Wesley Professional p 194 External links edit nbsp Wikibooks has a book on the topic of mIRC Scripting Official mIRC website Online version of mIRC help file WikiChip mIRC pages A Wiki based user maintained help reference primarily for mIRC scripting Retrieved from https en wikipedia org w index php title MIRC scripting language amp oldid 1225192341, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.