# Eggdrop 1.5.2 Botnet Core

**Category:** Eggdrop_Bot
**Original Author:** Eggheads (Unknown)

## Description
Eggdrop 1.5.2 is a core IRC bot designed to operate in a botnet environment, providing extensive automation and management capabilities for channels.

## Key Features
- **Channel Management**: Auto-op, auto-deop, and channel protection.
- **Flood Protection**: Channel CTCP flood protection, channel avalanche flood protection, and join-part flood protection.
- **User Tracking**: User ignores, bans, and automatic linking of bots in the botnet.
- **File Transfer**: XDCC service for file sharing.
- **Command Handling**: Custom commands via `.cmd` and `!cmd`.
- **Botnet Networking**: Linking, unlinking, and relaying to other bots.

## File Analysis
- **acconfig.h** — Template configuration file used during build process.
- **action.fix.tcl** — Fixes for handling `/me` actions in DCC sessions and Telnet connections.
- **alltools.tcl** — Collection of utility procedures for the bot, including user management and channel operations.
- **compat.tcl** — Compatibility script to map old Tcl functions to new ones.
- **getops-2.2d.tcl** — Script for requesting and giving ops in a botnet.
- **klined.tcl** — Handles removal of k-lined servers from the bot's server list.
- **notes2.tcl** — Notes management script with indexing and logging capabilities.
- **ques5.tcl** — Web scraping and indexing script, used to gather and display information from web pages.
- **sentinel1.54.tcl** — Flood protection system for Eggdrop 1.3.17+ versions.
- **userinfo1.0.tcl** — Script providing user information commands.
- **botcmd.c** — Handles botnet command processing, userfile transfer, and update commands.
- **botmsg.c** — Manages message formatting and sending to different versioned bots.
- **botnet.c** — Tracks connected bots in the chain, manages channel name associations, and handles pinging.
- **chan.h** — Common header file for `chan.c` and `mode.c`.
- **chanprog.c** — Maintains server lists, handles revenge punishment, timers, and tcl script initialization.
- **cmds.c** — Handles commands from users via DCC connections.
- **cmdt.h** — Header file containing command definitions.
- **dcc.c** — Manages activity on DCC sockets.
- **dccutil.c** — Provides functions for sending formatted text to various types of connections and manages DCC structures.
- **dns.c** — Handles DNS resolve calls and provides Tcl commands related to DNS.
- **eggdrop.h** — Compile-time settings for the bot.
- **flags.c** — Handles flag matching and conversion functions.
- **flags.h** — Header file containing definitions for flags used in the bot.
- **language.c** — Handles language support code.
- **main.c** — Core event handling, signal handling, command line arguments, and context debugging.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation management.
- **misc.c** — Handles logging, queueing output, help system, MOTD display, and variable substitution.
- **modules.c** — Supports modules in Eggdrop.
- **net.c** — Manages raw network I/O operations.
- **patch.h** — Header file for adding patches to the bot's version string.
- **proto.h** — Prototypes for functions used outside their own module.
- **rfc1459.c** — Implements RFC 1459 protocol handling, with some deviations from strict compliance.
- **stat.h** — File attributes management.
- **tcl.c** — Handles Tcl commands and initialization.
- **tcldcc.c** — Tcl stubs for DCC commands.
- **tclegg.h** — Header file used by `tcl.c` and `tclhash.c`.
- **tclhash.c** — Manages bindings, triggers, and procedures for msg/dcc/file commands.
- **tclmisc.c** — Handles Tcl stubs for file system commands and other miscellaneous operations.
- **tcluser.c** — Tcl stubs for user-record-oriented commands.
- **userent.c** — User entry handling with a more versatile approach.
- **userrec.c** — Functions to find, change, and manage user records.
- **users.c** — Handles testing, enforcing ignores, adding/removing ignores, listing ignores, auto-linking bots, sending/receiving userfiles, and performing WHOIS and MATCH operations.
- **users.h** — Structures and definitions used by `users.c` and `userrec.c`.
- **global.h** — RSAREF types and constants.
- **md5.h** — Header file for MD5 message-digest algorithm.
- **md5c.c** — Implements the MD5 message-digest algorithm.
- **module.h** — Header file for module support in Eggdrop.
- **modvals.h** — Header file containing module values.
- **assoc.c** — Part of `assoc.mod`, handles association code moved from `botnet.c` for module work.
- **bf_tab.h** — Blowfish P-box and S-box tables.
- **blowfish.c** — Encryption and decryption of passwords using the Blowfish algorithm.
- **blowfish.h** — Header file containing definitions for the Blowfish algorithm.