Permalink
Fetching contributors…
Cannot retrieve contributors at this time
122 lines (111 sloc) 6 KB

Features

General

  • Bot is written in a C/C++ mix. (slowly merging into a C++ OOP design)
  • Code base of Eggdrop 1.6.12 (The code has evolved so much that it can't even be compared to a stock Eggdrop anymore.)
  • TCL is '''not''' required nor is it supported.
  • No module support
  • Initially influenced by the ghost botpack
  • There is only one version of a binary for each Operating System (i.e. hub and leaf binaries are identical).
  • Leaf bots act like dummy drones and save no botnet settings or files locally.
  • Only hubs store userfiles and temp data on shell; userfiles are sent to leafs during link and stored in runtime memory (1.3).
  • Userfiles store information about channels, users, and settings.
  • Binaries store information about bots [wiki:BotConfig internally]; no config files used.
  • One binary [wiki:BotConfig stores multiple bots inside it]. (Each bot gets its own process id)
  • Bots are quick and easy to [wiki:BotnetSetup setup]
  • A botnet can be '''easily''' updated with new binaries from the hub. (see [wiki:Updating])
  • Customizable DCC cmd prefix (i.e. !cmd %cmd *cmd)
  • IPv6 support for IRC/botnet
  • Asynchronous DNS
  • Easy default channel setting modifying with pseudo channel 'default'
  • No extra ports needed for userfile sharing, only the HUB port needs to be opened.
  • Passwords are stored in a SaltedSHA1 format.

Encryption

  • All botnet traffic/files are encrypted with AES-256+base64.
  • Binaries store an assortment of MD5 checksums internally and verify them upon starting.
  • Binaries store data about bots internally with AES-256 encryption.
  • Botnet keys are randomly regenerated.
  • Preliminary support for FiSH

DCC

  • Secure login using AuthSystem
  • Separation of cmds on hub and leaf bots
  • Remote control of leaf bots from hubs
  • Users cannot access/view users of higher level (see WhoisRestrictions).
  • Encrypted .relay between bots

IRC

  • Hubs do not connect to IRC.
  • Autoaway at random intervals
  • Client cloaking (CTCPs / version)
  • Mass op/deop protections
  • Manual op protections
  • [wiki:CookieOps Op cookies] using custom hash/encryption scheme to protect from network stream hijack.
  • [wiki:CookieOps Op cookies] support opping multiple clients.
  • +take channel flag to quickly op botnet and mass deop channel
  • No user exemptions with flags or otherwise: I.e. if you manually op in a channel set to +dk, nobody -- including you -- is exempt.
  • +bitch channel flag uses multiple methods of protection.
  • Pre-defined list of kick reasons
  • Auto-limiter algorithm sets channel limit only when needed.
  • Configurable auto-voicer
  • Bots automatically assign roles to manage channel (limit, voice, kicks, bans, etc)
  • CIDR ban support
  • Bots DNS clients to see if they match users/bans. (+r)
  • Bots prefer requesting op from bots on same server or from a list of bots sorted by hops.
  • Bots regain nicks automatically.
  • Jupenick is used for regaining your own nick, without the bot alternating on that nick.
  • [wiki:Homechan Home channel] support.
  • RBL banning support.
  • In-channel control of bots via AuthSystem.
  • Native support for floodless ilines.
  • Bot is optimized for IRCD-Ratbox and EFNet, but should work on most IRCDs fine.
  • 005 numeric support. All on by default, if supported:
  • CALLERID support. Users are automatically accepted.
  • DEAF support. No channel text is sent to bot unless it has [wiki:AuthSystem authed] users on it.
  • MONITOR support.
  • KNOCK support.
  • CPRIVMSG/CNOTICE support.
  • WHOX support. (Can help the bot know the IPs of clients without DNSing them)
  • Easy nickname release commands for regaining your nickname from a bot.
  • Voicebitch support for enforcing only certain users/hostmasks being voiced.
  • Protection from MAX SendQ from WHO requests replies.

Users

  • CIDR hostmask support
  • Multiple levels of control through flags
  • "Perm" owners are statically defined in the binaries.
  • Sensitive control is through userflag +a (admin -- shell access, bot configuration, etc.).
  • Botnet control is through userflag +n (owner).
  • User control is through userflag +m (master).
  • Channel control is through userflag +o (op).

Leaf Bots

  • Botnet list is not visible.
  • Hubs are not visible.
  • Hostmask not visible in whois
  • Only bots with +c flag will accept /dcc chat or /ctcp CHAT.
  • No static telnet access
  • Ports opened for /ctcp CHAT are automatically closed after a minute.
  • Cloaked responses for /dcc chat and /ctcp CHAT
  • Userfile and other settings are not saved locally.
  • Bot data (bot.conf) stored [wiki:BotConfig internally in binary]
  • One binary may contain multiple bots..
  • One binary may spawn multiple bots..
  • Each bot gets its own process. (Not emech style or threaded)

Shells

  • Bot config is password protected.
  • Bot automatically sets up a crontab entry.
  • All bots on the shell go into 1 binary. Each bots spawns its own process.
  • Bots on the same shell will link to the first bot in the binary (the localhub). The only the localhub links to the actual hubs.

Botnet

  • All user/channel settings are shared automatically.
  • Users need userflag +j to access leaf bots.
  • Users need userflag +i to access hub bots through telnet or .relay.
  • Users need userflag +p to speak on partyline.

Removed eggdrop features

  • Modules
  • TCL
  • File area (filesys.mod)
  • Greet
  • userflag +f (friend)
  • userflag +t (botmaster)
  • userflag +a (auto-op, replaced by +O)
  • Misc. channel flags
  • Blowfish
  • Assoc.mod
  • Seen.mod