Skip to content

iron-hope-shop/nHale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

nHale - A Modular, High-Performance Steganography Library

GitHub Release License: MIT


πŸ“– Contents

Getting Started
Core Documentation
Project Information

1. Introduction

1.1 Overview

nHale is an open-source advanced steganography toolkit designed for secure message embedding, extraction, and analysis across various file formats. It is a Rust-first project, providing a lightweight, efficient, and modular implementation of steganographic algorithms. This tool is aimed at cybersecurity professionals, privacy advocates, and digital forensics experts.

1.2 Objectives

  • Develop a high-performance, lightweight Rust-based steganography library.
  • Provide native embedding and extraction capabilities for multiple file types.
  • Implement strong encryption before embedding data for enhanced security.
  • Ensure robust metadata and watermarking functionalities.
  • Integrate comprehensive steganalysis capabilities to detect hidden data through statistical analysis, anomaly detection, and optional machine learning-based methods.
  • Maintain strict software development best practices.

2. System Architecture

2.1 High-Level Design

  • Core Engine: Rust-based steganography algorithms.
  • CLI Interface: Rust-based command-line interface with comprehensive options.

2.2 Supported File Formats

Currently Implemented

  • Images: PNG (fully implemented), JPG (partially implemented)
  • Documents: PDF (fully implemented)

Planned for Future Implementation

  • Images: BMP, GIF
  • Audio: WAV, MP3
  • Video: MP4

2.3 Core Modules

Currently Implemented

  • Embedding Module: Hides encrypted data inside PNG, JPG, and PDF files.
  • Extraction Module: Recovers hidden messages from PNG, JPG, and PDF files.
  • Integrity Checker Module: Ensures hidden data has not been modified (implemented for PDF).
  • Encryption Module: AES-256, ChaCha20, and RSA encryption support.
  • Error Correction Module: Reed-Solomon error correction for JPG steganography.

Planned for Future Implementation

  • Watermarking Module: Embeds and verifies digital watermarks.
  • Enhanced Metadata Module: Advanced metadata manipulation for various file formats.
  • PDF Analysis Module: Detects hidden scripts and anomalies.
  • Steganalysis Module:
    • File Preprocessing: Extend file parsers to extract and normalize raw data for analysis.
    • Statistical & Anomaly Analysis: Analyze pixel distributions, noise levels, and DCT coefficients to detect irregularities.
    • Machine Learning-Based Detection (Optional): Integrate models to provide confidence scores on hidden data presence.
    • Visualization Tools: Generate histograms, noise maps, and comparison views for manual forensic inspection.
    • CLI Integration & Reporting: Seamlessly integrate steganalysis commands with detailed reporting for forensic analysis.

3. Quick Start

Installation

From Source

# Clone the repository
git clone https://github.com/iron-hope-shop/nHale.git
cd nhale

# Build the project
cargo build --release

# Run the CLI
./target/release/nhale-cli --help

Basic Usage

Embedding data in a PNG image

nhale-cli embed -i input.png -o output.png -d "Secret message"

Extracting data from a PNG image

nhale-cli extract -i output.png

Using encryption

nhale-cli embed -i input.png -o output.png -d "Secret message" -p "your-secure-password" -a aes256

Embedding data in a PDF

nhale-cli embed -i input.pdf -o output.pdf -d "Secret message"

Extracting data from a PDF

nhale-cli extract -i output.pdf

Running a Steganalysis Scan

nhale-cli analyze -i suspect.png

4. Development

Prerequisites

  • Rust 1.67.0 or higher
  • Cargo

Testing

cargo test

Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.


5. License

This project is licensed under the MIT License - see the LICENSE file for details.


6. Project Status

Implemented Features

  • Rust-based LSB embedding and extraction for PNG images.
  • JPG steganography with DCT coefficient modification (partially implemented).
  • PDF embedding and extraction with integrity checking.
  • AES-256, ChaCha20, and RSA encryption modules.
  • Integrity checking and HMAC verification for PDF files.
  • Reed-Solomon error correction (needs better integration with JPEG).
  • Basic CLI commands and argument parsing.
  • Advanced configuration options for steganography techniques.

In Progress / Planned Features

  • Improved JPEG steganography with better error correction integration.
  • Complete metadata manipulation utilities.
  • BMP and GIF image processing.
  • Audio processing utilities (WAV, MP3).
  • Video processing utilities (MP4).
  • Watermarking functionality (visible and invisible).
  • Batch processing capabilities.
  • Enhanced CLI documentation and help.
  • Performance optimization and security auditing.
  • End-to-end integration tests.
  • Packaging and release for various platforms.
  • Steganalysis Module Integration: File preprocessing, statistical and anomaly analysis, optional machine learning-based detection, visualization tools, and detailed CLI reporting for forensic analysis.

7. Current Code Structure

nHale/
β”œβ”€β”€ Cargo.toml             # Project dependencies and configuration
β”œβ”€β”€ Cargo.lock             # Locked dependencies
β”œβ”€β”€ LICENSE                # MIT license
β”œβ”€β”€ CHANGELOG.md           # Version history
β”œβ”€β”€ CONTRIBUTING.md        # Contribution guidelines
β”œβ”€β”€ README.md             # Project documentation
β”œβ”€β”€ images/
β”‚   └── banner.gif         # Project banner image
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ jpeg_steganography.md    # JPEG steganography documentation
β”‚   β”œβ”€β”€ error_correction.md      # Error correction documentation
β”‚   └── steganography.md         # General steganography documentation
└── src/
    β”œβ”€β”€ lib.rs             # Core library functionality
    β”œβ”€β”€ embedding.rs       # Embedding module for PNG, JPG, PDF
    β”œβ”€β”€ extraction.rs      # Extraction module for PNG, JPG, PDF
    β”œβ”€β”€ encryption.rs      # Encryption (AES, ChaCha20, RSA)
    β”œβ”€β”€ error_correction.rs# Error correction for lossy formats
    β”œβ”€β”€ integrity.rs       # Integrity checking with HMAC
    β”œβ”€β”€ metadata.rs        # Basic metadata handling
    β”œβ”€β”€ pdf.rs             # PDF steganography
    β”œβ”€β”€ utils.rs           # Helper functions and utilities
    β”œβ”€β”€ watermarking.rs    # Watermarking module
    └── bin/
        β”œβ”€β”€ cli.rs         # CLI implementation
        └── create_test_pdf.rs # Utility for creating test PDFs

See Also

About

A modular, high-performance Rust toolkit for secure steganography and steganalysis. πŸ¦€πŸ¦€

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages