IRC-Junkie.org Forum Index
Menu
Home
Forum
Articles
Interviews
Reviews
Links


Memberlist
FAQ
Search

About this Website
Syndicate
Link to Us
Contact Us
#IRC-Junkie.org

We Value:
Usefulfreesoftware.com - Your guide to opensource software for Windows


mIRC Resources
Download mIRC Scripts, Bots, and Addons
French language mIRC scripting site

Download mIRC scripts, mIRC addons and mIRC bots.


WinBot 2.2 Windows based IRC bot - september 2002


A bot native to Windows? Heh, and no, this is not a Windows port of eggdrop! Here a review of WinBot, a bot written for Windows, complete with a GUI where you can practically configure and run the whole bot from...


Configuring the Bot
To get your bot up and running you start in the configuring tab, logically. First parameters are setting what server to connect to, its nickname, ident etc. Neat is you can directly edit its CTCP Version reply as well. You also setup its ident reply, which it does nicely btw. It only enables the IdentD server which is build in during connection, so you don't have a open port continuously.

The second TAB is a more advanced setting panel. Here you can set what .wav file is used by the .SHOUT command (more on that later), user modes and more advanced options related to the operation of the bot. Things like enable or disable DCC, identd, botnet, disable the seen command, etc.

The last two subtabs should deserve a whole main tab on their own IMO. Here you can setup channel mirroring. This feature makes it possible for you to mirror the traffic from 2 or more channels to each other, multiserver if needed. To make this clear: if you have a channel on Undernet, and a channel on DalNet for example, you could have this bot mirror the traffic on both channels to the other. This way the people on Undernet can talk to the people on DalNet as all are in the same channel, nifty. If necessary you can exclude nicks or channels from mirroring.

Oh, minor to some, but major for me: If minimized it doesn't take up button space on the taskbar, but leaves a button up on the tray which you can double click to reopen the program. Yay! No program that takes up space which you so hardly need during day to day work. Make a shortcut in the startup folder to let is start whenever Windows starts, make it autoconnect on startup, and you never have to worry again about starting the bot up, or hindering you in its day to day work as a bot.


Protection
Once I pinged the bot twice quickly, and it kicked me from the channel. Another time a user got kicked for pasting a bit of text, 3 lines of text in 1 second was the kick reason. This obviously means that the bot has flood protection build in (which can be disabled per user if you wish). But it took me a log time before I found where they hidden the panel where you can change these settings in the GUI. Hidden after two tabs, on the bottom of 5 buttons I once clicked the "Adjust Global Protection" button which finally gave me a window where I can change all these settings. I rather had seen these on a main Floodsettings tab.

What is more funky is the protection in the TCP/IP settings tab on the main panel. Here we find 2 sub tabs, "Attack statistics" and "Monitoring". On this second tab we can define on what notorious attacks we can let the bot monitor, including DMSetup, Nitrous DCC Lock and others.

In the channel settings we also see the possibility to set floating limits for the channel. Known as the +l mode it restricts the number of clients, and is a good tool to reduce the effect of join/part floods if the limit is set just slightly above the number of users at any time. After using this mode for about 12 hours I found that the bot stopped updating the limit. And as such, since the limit was the same as the number of users, my friends where unable to join the channel anymore.

User/channel management
Dragging user from right to left makes new useraccount. The next notice is send to that user:
[12:04:57] -WinBot- Your account has been created for #somechannel (asmo@*.org). Password: "secretly78hunting"

Luckily you can change the hostmask right by clicking the edit button under the useraccount panel. Here you can also edit his other settings. Like if the user is a bot owner, if he can change his password himself (why shouldn't he be able too?), and if the user is a bot which should be networked too (including eggdrops). A editbox gives the possibility to perform any commands when this user logs in. Useful for example to let you know in private. Or to send a greet to the channel.


Login in on the bot
To login to the bot you simply message the bot with /msg theBot .pass yourpass after which you are logged in, and can issue any commands to him. Like /msg theBot .op Asmo #channel which will let the bot give Asmo ops on #channel. You can also enable the bot to take commands publicly in the channel, which follow the same syntax. Typing ".op User #channel" would let the WinBot op User on #channel.

As expected, if the bot "misses eye contact" for whatever reason like a netsplit, or you cycle the channel, you will have to relogin. Which makes sense, since you could be someone else on the same hostmask.

Partyline
The partyline kind of work like you would expect if you used eggdrops before. I even had to use .echo off the first time I chatted on it :) Typing .help shows a command list, just like a eggy would. With separate sections for those with more then normal access (like botmasters).

There are many commands similar to eggdrop commands, or at least equivalents. But there are also commands that are very unique to WinBot. Like .SHOUT, which will play a .wav file on the computer the bot is hosted at. This can be useful in case you need immediate attention of the bot owner, because of problems in the channel, etc.

Unlike eggdrop, any private MSG's send to the bot are not relayed on the partyline. Same goes for CTCP's, who are only visible on the channels window on the program, where all activity on the bot can be followed. From issued commands on the channels, in msg or on the partyline, to chats on channels, chat on the partyline, etc.

Unfortunately I was unable to connect to the partyline with telnet. The moment I login putty (my Telnet/SSH client of choice) informs me of a network error, and the screen shows a login screen of the WinBot, with the message I supplied a wrong password. Which, ofcourse, I never typed in. Double checking the telnet settings, and my user account if I even have rights to access the bot per telnet, and even checking the firewall kept giving me this same error. In case of severe lag it is sometimes very handy to have telnet access, since a DCC Chat request initially goes over the IRC network, which can take a long time then.


Scripting and plugins
I was surprised with WinBots scripting capabilities. And diving into the possibilities here sure show that the developers take WinBot pretty seriously, and not just see it as a toy.

Opening the script editor for the first time let you think the bot only has possibilities for simple events like "when channel is typed on channel" and "host matches", then "perform this and that", Which in itself can be quite powerful. There are several events like when user joins or parts the channel, when user is kicked, on receiving a notice, etc. etc., I'm sure you can fill up the entire list. On the interface you see a few examples of possible variables you can use. These include $nick for the person in question, $channel, $ident, etc. Nothing special you would think.

The real power becomes clear when you dive into the help file. There is actually a whole wealth of variables you can use which range from counters, to identifiers for seeing if a user is added to the bot, to blowfish encoding and decoding. Add to this the ability to use the partyline commands and you can write scripts to add users, write .ini files, etc. etc. A heck more then the simple editor would let you believe when you first see it. The install comes with a few example scripts that demonstrate several useful, and some less useful possibilities with scripting.

The bot will also allow Perl coders to make scripts in Perl, to takes things even to a higher level. To run Perl scripts in WinBot you will need to install active Perl for Windows, and the Perl plugin for WinBot, available from their site.

Besides its scripting abilities, WinBots can also be enhanced with plugins. The before mentioned Perl plugin for example, who make it possible to add Perl scripting to WinBot. Not something entirely insignificant.
Another plugin that is delivered with WinBot is a Socks-scanner, which will probe users who join the channel if they are running from a open socks. Nice way to prevent floodbots to join the channel. Example sources are provided, and more help is in the help file for those who fancy some coding for this bot.


Oddities
I was very surprised to see a row of IRC operator commands. Become IRCop, kill, kline, rehash, and even a restart server... I am a oper on 2 networks, but I wouldn't dare to have this bot being a opered program, where I could accidentally hit a button, and restart a server...
Also the placement of the help button right besides the exit buttons seems weird. In case you want to make a quick lookup in the help file, and accidentally hit the exit button, you might loose ops (don't expect a single bot to be enough to keep ops though!) accidentally. Luckily a confirmation requester comes up who asks you if you are *sure* you want to disconnect.

Anyone who is a bit into IRC you would expect from he knows what a smiley is, and would probably dislike any images based smilies. SO why the makes decided to use image based smilies is beyond my comprehension, heck, the ! smiley is sure a little over the top for me!


Conclusion
This is something different definitely. This bot has some features that sure make it unique. And the easy to use GUI interface will make it accessible to a lot of users who cant be bothered to pay for, or learn how to use a *nix shell. This bot sure has potential to keep ops on a channel if combined with bots on other machines, with the bots auto-opping each other. Personally I would not trust 2 or 3 WinBots to hold ops over a longer period of time on a channel. Not necessarily because of WinBot's limitations, but more of the OS it is running at. I had the bot crashing on me once sofar, by simply pressing the users button which made the program just crash, and dissapear, *poof* gone.

Personally I had much fun exploring it's features and abilities. And features like the channel mirroring make it a serious candidate even for more experienced IRC users who have access to eggdrops to do that task. Since it will prevent them to have to setup a botnet for the bots on several networks, and setting up the tcl's doing the task, with the overhead they bring as well. It's a fun toy I might have a function for in the near future...


» Discuss This Article here.