Turn data into unreadable noise.

Documentation

CIVersionTarget Rust Lint InstallerLicense

Introduction

Smog is a data sanitization utility designed to saturate files, directories, and entire volumes, transforming them into an impenetrable and unrecoverable digital fog.

While conventional deletion only removes pointers, smog attacks the physical structure of the information. It injects “particles” of random noise through layers of deliberate overwriting, ensuring that visibility to forensic tools is reduced to zero. The result is not just an empty file, but a dense cloud of entropy where recovery is statistically impossible.

Built to be more ruthless than traditional utilities, smog treats data destruction like an industrial pollution event: a precise, low-visibility, and absolutely effective operation.

With Smog, you can:

  • Smother Information: Overwrite sensitive data with algorithms that guarantee maximum entropy.
  • Dissipate Evidence: Clean free space and entire devices, eliminating latent traces.
  • Zero Visibility: Prevent reconstruction by digital forensics and forensic analysis methods.
  • Controlled Pollution: Apply deterministic or random destruction patterns as needed.
  • Leave nothing behind: Ensure what remains on disk is pure noise — not recoverable information

Smog doesn’t just erase the past. It vaporizes it into a toxic fog for any data recovery specialist.

Overview

Smog is a command‑line utility for controlled data overwriting across files, directories, free space, and entire storage devices.

While common deletion mechanisms remove only filesystem references, Smog operates at the data layer by performing repeated overwrite passes intended to eliminate recoverable remnants from the underlying storage medium. Its purpose is to reduce the feasibility of practical forensic recovery through deterministic, operator‑controlled overwrite procedures.

The tool is designed around explicit execution and observable behavior. Each operation targets specific paths or devices, applies a defined number of overwrite iterations, and provides progress feedback so the operator can verify that the destruction process has been completed as intended.

Smog supports:

  • Secure overwriting of individual files and directory trees
  • Free space wiping to remove traces of previously deleted data
  • Full device wiping using the same overwrite methodology
  • Configurable iteration counts to match different sensitivity requirements
  • Terminal‑based progress output or optional GUI feedback

Smog is intended for environments where sensitive data must be removed with stronger guarantees than standard deletion provides, without relying on implicit behavior or opaque utilities.

The objective is not file removal, but data neutralization through entropy‑driven overwriting.

Requirements

Smog uses zenity for window display, so zenity is optional and only required when using SMOG_USE_ZENITY=1.

Install

Automatic Installation (Any Linux Distribution)

You can install without downloading anything by running the script directly from the official repository:

bash <(curl -fsSL https://evolvbits.github.io/smog/installer/linux.sh)

Arch Linux Installation (AUR)

You can install it on Arch Linux using a package manager from the AUR. In this example, using yay:

yay -S smog-bin

Note: We only provide the binary in AUR; if you find another one, it’s not part of the EvolvBits project.

The installer downloads binaries from the public distribution branch binaries in evolvbits/smog.

Usage

You can use the built-in CLI options to target specific files, change iterations, or let it auto-clean all trash directories detected:

smog [OPTIONS] [TARGETS]...

Options

  • [TARGETS]...: one or more files/folders/glob/device patterns (for example *.txt or my/folder/*.txt)
  • --trash: empty the trash securely
  • --confirm: ask for confirmation before removing
  • -n, --iterations <N>: overwrite iterations (3 by default for files/folders and 1 for block devices)
  • --mode <MODE>: block device mode (overwrite or discard, default is internal auto)
  • -k, --kill: safely remove and close the terminal (terminal only)
  • -c, --credits: show credits
  • -V, --version: display the version

Examples

# Remove file without confirmation
smog file.txt

# Remove folder with confirmation
smog my_folder --confirm

# Remove files in batch using glob patterns
smog '*.txt'
smog 'my/folder/*.txt'

# Empty trash without confirmation
smog --trash

# Empty trash with confirmation
smog --trash --confirm

# Wipe block device (root only, mode auto) [EXPERIMENTAL]
sudo smog /dev/sdX

# Force device wipe mode [EXPERIMENTAL]
sudo smog /dev/sdX --mode overwrite
sudo smog /dev/sdX --mode discard

Disk Wiper Safety Model

Note: If you use Smog for devices (HDD, SSD or Flash drive), remember that perfect disk wiping today depends heavily on the hardware, not just the software. Therefore, we cannot guarantee complete security in this mode. The disk wiping mode is set to EXPERIMENTAL.

When the target is a block device, Smog runs in disk-wipe mode with strict safeguards:

  • Requires root privileges for device wipe operations
  • Uses auto mode internally when --mode is not specified:
    • HDD: overwrite
    • SSD: discard (with fallback to overwrite when discard is unavailable)
  • Requires explicit destructive confirmation:
    • Type "WIPE /dev/sdX" to continue
  • Refuses dangerous targets:
    • refuses /
    • refuses devices that appear to back the current root filesystem
  • Prints technical warning for discard behavior:
    • Warning: discard support may vary depending on device.

Environment Variables

Smog supports the following environment variables to control its user interface and progress bar behavior:

  • SMOG_USE_ZENITY=1: Use Zenity dialogs for confirmation and progress (GUI mode)
  • SMOG_USE_PROGRESSBAR=1: Use only one terminal progress bar from indicatif, based on the total number of files

If SMOG_USE_PROGRESSBAR=1 is set, it takes precedence over SMOG_USE_ZENITY=1. Without SMOG_USE_PROGRESSBAR=1, the default terminal progress remains:

smog: file.txt ▓▓▓▓▓▓▓▓▓▓  100%

Example Usage

SMOG_USE_ZENITY=1 smog ~/my_folder
SMOG_USE_PROGRESSBAR=1 smog ~/my_folder

These variables are optional and can be set for a better user experience. See smog --help for more details.

Verifying Binary Integrity

For each published version, the distribution bundle includes a SHA256SUMS file in the public binary channel.

# Example for version 0.1.0
curl -fsSLO https://raw.githubusercontent.com/evolvbits/smog/binaries/v0.1.0/smog-0.1.0-linux-x86_64
curl -fsSLO https://raw.githubusercontent.com/evolvbits/smog/binaries/v0.1.0/SHA256SUMS

sha256sum -c SHA256SUMS

Uninstall

Uninstalling is as easy as installing, just use the --uninstall flag:

bash <(curl -fsSL https://evolvbits.github.io/smog/installer/linux.sh) --uninstall

Community


© Evolvbits - All rights reserved.