' CryptoAnnihilator Documentation — Installation, CLI Flags, FAQ | ScannerSend

Documentation

Complete guide to CryptoAnnihilator v2.0.0 by ScannerSend

Contents

Quick Start

Requirements: Linux (any distro) + Python 3.6+. Root access for full protection.
Uses /proc, iptables, and systemd — Linux only. Not compatible with Windows or macOS.

One-liner install (recommended)

curl -sS https://scannersend.org/install.sh | sudo bash

This downloads the script, copies it to /usr/local/bin/, creates a systemd service, and starts it immediately. One command, done.

Manual install

wget https://scannersend.org/download/crypto_annihilator.py
chmod +x crypto_annihilator.py
sudo python3 crypto_annihilator.py --kill --daemon

Scan only (no kill)

sudo python3 crypto_annihilator.py

Runs a single scan and reports findings without killing anything. Good for a first look.

Detection Layers

Layer 1: Network Protocol Detection

Monitors all TCP connections via ss and reads /proc/PID/cmdline and /proc/PID/environ for Stratum mining protocol patterns: mining.subscribe, mining.submit, mining.authorize. No legitimate software uses these JSON-RPC methods. If a process speaks Stratum, it is mining.

Layer 2: Behavioral CPU Analysis

Measures CPU usage over a configurable window (default: 5 seconds). A process that sustains high CPU (default: 80%+) AND has outbound network connections to non-whitelisted destinations matches the behavioral profile of a crypto miner. This catches miners that use custom binaries, renamed executables, or novel algorithms with no known signature.

Layer 3: Known Signatures & DNS Blocking

Maintains a list of 22+ mining pool domains and common miner process names. With --install-dns-block, these domains are poisoned in /etc/hosts. With --install-firewall, iptables rules block the Stratum protocol at the kernel level.

Layer 4: Connection Behavioral Fingerprinting

The zero-day killer. Even if a miner throttles CPU below Layer 2’s threshold, encrypts Stratum with TLS to hide from Layer 1, and renames itself to dodge Layer 3 — it still needs a persistent outbound connection to submit shares. Layer 4 correlates moderate CPU usage (20%+) with long-lived connections to mining-associated ports. This behavioral fingerprint catches evasive miners that defeat every other layer simultaneously.

All CLI Flags

FlagDescription
--killKill detected miners with SIGKILL (default: alert only)
--daemonRun continuously, scanning at regular intervals
--interval NScan interval in seconds (default: 30)
--cpu-threshold NCPU percentage threshold for behavioral detection (default: 80)
--cpu-window NCPU measurement window in seconds (default: 5)
--whitelist namesComma-separated process names to skip
--event-dir pathSkip processes running from this directory
--install-firewallInstall iptables rules to block Stratum protocol
--install-dns-blockBlock mining pool domains in /etc/hosts
--fortifyEnable self-healing persistence (5 layers)
--uninstallCleanly remove CryptoAnnihilator and all persistence layers
--statusShow current protection status
--verboseVerbose output with debug information
--versionShow version number
--persistEnable persistence (auto-restart on reboot via cron + systemd)
--install-networkDownload and install the ScannerSend Network plugin for wallet reporting
--no-networkDisable ScannerSend Network reporting even if plugin is installed
--network-trackEnable Tier 2 contribution tracking (receipts, history). Requires plugin.
--install-updaterDownload and install the auto-update plugin (consent gate)
--check-updateCheck for and apply available updates (requires update plugin)

Self-Healing Persistence

When run with --fortify, CryptoAnnihilator installs 5 independent persistence layers that self-repair on every scan cycle:

LayerMechanismIf removed...
1chattr +i on binaryBlocks deletion, even by root
2systemd Restart=always, RestartSec=1Process restarts in 1 second
3Cron watchdog (every 60s)Restarts if service was stopped
4rc.local boot fallbackStarts on boot if systemd disabled
5Self-copying binaryRunning process restores deleted files

To cleanly remove everything: sudo crypto_annihilator.py --uninstall

ScannerSend Network (Plugin)

Optional plugin for crowd-sourced wallet reporting. Every detection extracts the miner's wallet address and can report it to a central database.

Install Plugin

sudo crypto_annihilator.py --install-network

Or manually:

wget https://scannersend.org/download/scannersend_network.py -O /usr/local/bin/scannersend_network.py

New CLI Flags

FlagEffect
--install-networkDownload and install the ScannerSend Network plugin
--no-networkDisable network reporting for this run

Layer 5: Wallet Forensics

Extracts wallet addresses from detected miners before killing them:

SourceMethod
/proc/PID/cmdlineParse -u WALLET and --user WALLET flags
/proc/PID/environCheck WALLET, POOL_USER, XMRIG_USER env vars
Config filesScan CWD for config.json, pools.txt with wallet patterns

Supports: XMR (Monero), BTC, ETH, LTC, DOGE, ZEC wallet formats.

What Gets Reported

Wallet address, coin type, pool host/port, process name, detection layer, timestamp. Nothing else.

No IP, hostname, system info, usernames, or file paths. Full details →

Architecture

CryptoAnnihilator is one base tool plus optional, independent plugins. Each piece is a separate download with its own consent gate.

🛡Base Tool crypto_annihilator.py

1,591 lines of Python. All 5 detection layers, kill logic, persistence, uninstall. Never phones home. Ever. This is the only required piece.

📡Plugin 1: scannersend_network.py — optional

Wallet reporting. Sends detected wallet addresses to net.scannersend.org. Tier 1 (anonymous) or Tier 2 (contribution tracking). Does not require Plugin 2.

Install: --install-network  |  Disable: --no-network or delete the file

🔄Plugin 2: scannersend_update.py — optional

Auto-updates. Checks for new versions, verifies SHA256 before applying. Does not require Plugin 1.

Install: --install-updater  |  Disable: delete the file

Every outbound connection is a conscious choice. Mix and match any combination:

SetupPhones Home?What You Get
Base onlyNeverFull detection + kill. Zero outbound.
Base + Network pluginOnly wallet reportsDetection + kill + wallet reporting
Base + Update pluginOnly version checksDetection + kill + auto-updates
Base + both pluginsWallet reports + version checksFull suite, fully opt-in

CryptoAnnihilator is built on explicit consent. Every capability beyond basic scanning requires a deliberate flag.

ActionFlag RequiredWhat Happens
Scan onlyNone (default)Detects miners, prints results. No kills, no network, no persistence.
Kill miners--killTerminates detected miners with SIGKILL
Auto-restart--persist or --fortifyInstalls systemd/cron watchdog to survive reboots
Report wallets--install-networkDownloads plugin, sends wallet data to net.scannersend.org
Track contributions--network-trackEnables receipts and contribution history (Tier 2)

Network Reporting Tiers

Tier 1 (plugin installed, default): Reports wallet address, pool, process name, detection layer. Anonymous. No tracking.

Tier 2 (--network-track): Everything in Tier 1, plus a contributor hash and receipt ID. You can check your report status and see if reported wallets get confirmed. Still no PII — the hash is SHA256 of your IP + salt, not reversible.

The base tool never phones home. Only the explicitly installed plugin makes outbound connections.

Root Requirements

CryptoAnnihilator works best with sudo. Without root:

CapabilityRootNon-root
Read all process cmdlines❌ Only your user
Kill any process❌ Only your user
Full network table⚠ Partial
Install persistence⚠ User crontab only
CPU monitoring

Miners dropped by attackers almost never run as your user. Without root, you'll miss most threats.

⚠ Warning: Legitimate Miners

If you run a legitimate, authorized crypto mining operation on the same server, CryptoAnnihilator will detect and kill your miners. If you also have the ScannerSend Network plugin installed, it will report your own wallet. This tool cannot distinguish between authorized and unauthorized mining — that is by design. Do not install this on a machine where you intentionally mine cryptocurrency.

Verification

SHA256 Checksum

Always verify downloads:

sha256sum crypto_annihilator.py

Compare against the checksum published on this page and in the source view.

FAQ

Is this safe to run on my server?

Yes. It has zero dependencies beyond Python 3.6+ stdlib. No pip install, no network calls, no telemetry. Read the full source before running — it's 1,591 lines of readable Python.

Will it kill legitimate processes?

No. Layer 1 only triggers on Stratum mining protocol (no legitimate software uses mining.subscribe). Layer 2 requires BOTH sustained high CPU AND suspicious outbound connections. Use --whitelist to exempt specific processes if needed.

How do I update to a new version?

If you used --fortify, the binary is immutable. Run: sudo chattr -i /usr/local/bin/crypto_annihilator.py, then reinstall normally. The installer handles this automatically.

How do I completely remove it?

sudo crypto_annihilator.py --uninstall removes everything: service files, cron watchdog, rc.local entry, immutable flags, and the binary itself. Logs are preserved at /var/log/crypto_annihilator/.

Does it phone home or send telemetry?

The detection engine makes zero outbound connections. It reads /proc and runs ss. The only outbound code in the base tool is in the --install-network and --install-updater handlers, which run once when you explicitly ask to download a plugin. Verify: grep -n "urlopen" crypto_annihilator.py — you'll see it's only inside the plugin installer functions, never in the scan loop.

What Python version does it need?

Python 3.6 or newer. Uses only stdlib modules: subprocess, os, re, json, pathlib, logging, argparse, and others. All Python stdlib — no pip install needed.

What about Docker containers?

CryptoAnnihilator runs on the host and monitors all processes, including those inside containers. It reads /proc which spans all namespaces.

My antivirus flagged this file. Is it malware?

No. CryptoAnnihilator uses the same persistence techniques (systemd services, cron watchdogs, immutable file attributes) that real malware uses — because those techniques work. Security tools like Metasploit and Mimikatz face the same issue. Your AV is doing its job; it just can't tell the difference between a tool that uses persistence for defense vs. offense. You can verify the source code yourself, or use --no-persist for detection-only mode that skips all persistence layers.

What is --no-persist mode?

Running with --no-persist disables all 5 persistence layers (chattr, systemd, cron, rc.local, self-copy). The tool still detects and kills miners, but won't install itself permanently. This is useful for one-off scans, testing, or environments where your EDR would flag persistence behavior.