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,
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
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.
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
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.
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
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,
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.
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
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.