Dancer - an IRC bot

Hosted by SourceForge | Last update: 01 Jan 1970 | Project page | Valid HTML 4!

Navigate [ About | News | License | Download | Documentation | Support | Testimonials | Contribute | Credits ]


What is Dancer?

Dancer is an IRC bot. A bot is an automated client for Internet Relay Chat networks, which stays online after its owner leaves. It was designed to protect and serve. Your faithful, strong (but humble) servant. Yes, ladies. This is one bot who will not cheat on you.

Dancer was developed in C, and is mostly POSIX compliant. It runs on most of the UNIX flavors you have used, and a few you haven't heard of. It also runs on Win32 and AmigaOS.


Recent changes

8 Februrary 2002:

A source code patch which filters input is available. This updates your copy of Dancer to 4.16p1. Please see the top of the file for instructions on how to apply it.

Source patch for Exec() vulnerability

The next release of Dancer will ship with a safe Exec() implementation.

5 Februrary 2002: Remote security vulnerability in Dancer

A remote security vulnerability exists in all recent versions of Dancer's command execution code. Please note that in the default install command execution is disabled, and requires the attacker to have at least level 10.

The problem is due to insufficient input validation of arguments passed to commands such as CALC, EXCHANGE, etc. The problem could allow an attacker to execute arbitrary commands as the userid under which Dancer is running.

A source patch that implements proper input validation will be available shortly. Until then, we recommend you set EXECPROTECT to on.


Terms & Conditions

Dancer is released under the GNU Public License. The license is included in the .tar.gz archive as LICENSE, and it's available online.


Current version

Version is available in source format from:

Other formats

Other people have made Dancer available in various formats, eg. pre-compiled binaries for certain platforms. These may not always be available in the latest version.


For information on retrieving the Dancer source via anonymous CVS, or for setting up your developer account, see the SourceForge CVS repository information.

When you have done this, you may checkout a released or a current copy of the Dancer source. The following tags exist in Dancer's repository.

  • DANCER_4_16, source for 4.16 release
  • DANCER_4_15B6, source for 4.15b6

To checkout a released version:

$ cvs co -r DANCER_4_15B6 dancer

To checkout the head of the trunk, which may or may not work or even compile.

$ cvs co dancer


Dancer documentation

Developer documentation

  • Coding guidelines
  • Building releases


Getting support

If you run into a problem you can not solve after thinking about it, and reading the documentation carefully, you may send a detailed description to the Dancer users mailing list. Make sure you include a description of what you are trying to do, how you are doing it, and what the outcome is.

Don't forget to include the uname -a output from your system, and tell us which version of Dancer you are running.

Dancer users

To join the Dancer users mailing list, simply use the GNU Mailman web interface.

An archive of previous messages is available online.

Dancer developers

If you wish to discuss development aspects of Dancer, please join the developer list.

dancer-dev also has an archive available online.

If you wish to recieve email notification of source changes that take place in Dancer, please join the dancer-changes list

dancer-changes also has an archive available online.


From the real world

The following extracts of logs shows the efficiency of Dancer.

  • Usually clone bot attacks comes in waves of 4-6 clone bots. This log file (4142 bytes) shows how Dancer handles a "standard" attack by 6 clone bots.

  • One of the biggest challenges is the handle an attack by 20 clone bots. This log file (46017 bytes) shows that Dancer handles it properly - user interaction messed it up a bit though.

  • This is the record so far: 44 clone bots. Luckily there were two Dancers present on the channel. This log file (139430 bytes) shows how they handled it beautifully.


Contributions are welcome

If you wish to contribute, there are many ways to do so..

  • Subscribe to the users mailing list and answer users queries
  • Submit patches for bug fixes or feature additions
  • Provide documentation for inclusion in the distribution


Thanks for all the fish..

The following people have contributed to Dancer with their time and skills:

  • Bjørn Reese (breese/stderr) - Originator
  • Daniel Stenberg (Bagder) - co-author
  • Tero Jänkä (gr8ron) - current Project Maintainer
  • Alex Holst - current webpage maintainer
  • Björn Stenberg (Zagor)
  • Philippe Brand (PhB)
  • Eetu Martola (Eetu)
  • Chris Larsen (Vader)
  • Andrew Gray - Amiga adaption
  • (DarkDesgn) - Amiga adaption
  • Keith Derek Blakemore - Amiga adaption
  • Kelly Cochran (Trolan) - Amiga adaption
  • Ray Darrah(Exec) - former maintainer of ftp site and mailing-list
  • Bobby Billingsley - former Maintainer of mailing-list
  • Hans Hasselaar (Argus) - Dutch translations
  • Martin Galipeau - French translations
  • Marcus A. Hofmann (NTony) - German translations
  • Ronny Bangsund - Norwegian translations
  • Alain Penders <> - FPL scripts and patches