Skip to content

MH4S33B/DataForgeX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β•šβ–ˆβ–ˆβ–ˆβ•”β• 
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•   β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— 
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•—
β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•   β•šβ•β•   β•šβ•β•  β•šβ•β•β•šβ•β•      β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•

High-Performance Forensic Data Suite

Military-grade secure file destruction & advanced signature-based data recovery

C++20 NASM Platform License


Overview β€’ Features β€’ Installation β€’ Usage β€’ Architecture β€’ API β€’ Team


🎯 Overview

DataForgeX is a professional-grade forensic data tool designed for security professionals, digital forensics investigators, and privacy-conscious users. It combines two critical capabilities:

Capability Description
πŸ”₯ Secure File Wiping Permanently destroy files using military-grade algorithms (DoD 5220.22-M, Gutmann 35-pass)
πŸ” Data Recovery Recover deleted files using advanced signature-based carving techniques

Why DataForgeX?

Traditional file deletion leaves recoverable traces on disk. DataForgeX provides:

  • ⚑ High Performance β€” Assembly-optimized I/O with 64KB buffers and 4MB scan blocks
  • πŸ”’ Military-Grade Security β€” DoD 5220.22-M and Gutmann 35-pass algorithms
  • πŸ” Smart Recovery β€” 12+ file type signatures with intelligent size detection
  • 🌐 Modern Interface β€” Responsive web GUI with real-time progress tracking
  • πŸ“‘ RESTful API β€” Full programmatic access for automation

✨ Features

πŸ”₯ Secure File Wiping

Four destruction methods with increasing security levels:

Method Passes Security Speed Description
Single Pass (Zeros) 1 Basic ⚑⚑⚑ Overwrites with zeros
Single Pass (Random) 1 Good ⚑⚑⚑ LFSR pseudo-random data
DoD 5220.22-M 3 High ⚑⚑ US Military standard
Gutmann Algorithm 35 Maximum ⚑ Research-grade security

Key Features:

  • Assembly-optimized LFSR random number generation
  • Direct file I/O with fsync guarantees
  • Automatic file removal after secure wipe
  • Real-time progress monitoring

πŸ” Data Recovery

Signature-based file carving from raw disks and disk images:

Format Signature Extension Size Detection
JPEG FF D8 FF .jpg EOI marker scan
PNG 89 50 4E 47 .png IEND chunk detection
PDF 25 50 44 46 .pdf %%EOF marker
ZIP/DOCX/XLSX 50 4B 03 04 .zip/.docx Central directory
MP3 49 44 33 / FF FB .mp3 Default estimation
WAV 52 49 46 46 .wav RIFF header parsing
7-Zip 37 7A BC AF .7z Default estimation
RAR 52 61 72 21 .rar Default estimation
GIF 47 49 46 38 .gif Default estimation
BMP 42 4D .bmp Header parsing
ELF 7F 45 4C 46 .elf ELF header parsing

⚠️ Note: Plain text files (TXT) cannot be recovered as they have no magic signature. DOCX/XLSX/PPTX files are detected as ZIP archives (rename after recovery).

🎨 User Interface

  • Modern Dark Theme β€” Glassmorphism design with smooth animations
  • Real-Time Progress β€” Live scan and wipe status updates
  • Native Dialogs β€” OS-integrated file/folder browser
  • Toast Notifications β€” Instant feedback for all operations
  • Responsive Design β€” Works on desktop and tablet screens

πŸš€ Installation

Prerequisites

Requirement Version
OS Linux x86_64 (Ubuntu/Debian/Kali) or Windows
CMake 3.10+
Compiler GCC/G++ with C++20 support
Assembler NASM (for Linux builds)

Build from Source

# Install dependencies (Debian/Ubuntu/Kali)
sudo apt update
sudo apt install -y build-essential cmake nasm g++ libpthread-stubs0-dev

# Clone repository
git clone https://github.com/MH4S33B/DataForgeX.git
cd DataForgeX

# Build
mkdir -p build && cd build
cmake ..
make -j$(nproc)

# Run
./DataForgeX

The web interface launches automatically at http://localhost:8080


πŸ“– Usage

Web Interface

  1. Launch β€” Run ./DataForgeX and open http://localhost:8080
  2. Navigate β€” Choose between Dashboard, Secure Wipe, Recovery, or Settings
  3. Configure β€” Select target file or device
  4. Execute β€” Start operation and monitor real-time progress
  5. Verify β€” Check results in the operation log

Secure Wipe Workflow

1. Open "Secure Wipe" tab
2. Click "Browse" to select target file
3. Choose wipe algorithm (Zeros/Random/DoD/Gutmann)
4. Click "START SECURE WIPE"
5. Confirm the operation
6. Monitor progress until complete

Data Recovery Workflow

1. Open "Recovery" tab
2. Enter device path (e.g., /dev/sda1) or browse for disk image
3. Click "SCAN DEVICE"
4. Wait for signature scanning to complete
5. Review discovered files in results table
6. Click "Carve" to recover individual files, or "Recover All"
7. Choose save location when prompted

πŸ’‘ Tip: For testing, create a disk image with dd rather than scanning live partitions.


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    DataForgeX Web Interface                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Secure Wipe    β”‚   Data Recovery  β”‚      Settings       β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚ HTTP REST API (Port 8080)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   C++ HTTP Server (server.cpp)                  β”‚
β”‚     Endpoints: /api/wipe  /api/scan  /api/carve  /api/browse    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Core Backend (backend.cpp)                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  SecureWipe    β”‚   RecoveryMgr   β”‚     FileOperations     β”‚  β”‚
β”‚  β”‚  - Zero/Random β”‚   - Signature   β”‚     - Browse Dialog    β”‚  β”‚
β”‚  β”‚  - DoD/Gutmann β”‚   - Carving     β”‚     - Save Dialog      β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚               Assembly Modules (NASM x86_64)                    β”‚
β”‚         wiper.asm: LFSR PRNG    recovery.asm: Scanner           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Technology Stack

Layer Technology
Core C++20 with modern features
Performance NASM x86_64 assembly modules
I/O POSIX direct file operations
Server Custom HTTP/1.1 implementation
Frontend HTML5, CSS3 (Tailwind), Vanilla JS
Icons Font Awesome 6

πŸ“ Project Structure

DataForgeX/
β”œβ”€β”€ CMakeLists.txt          # Build configuration
β”œβ”€β”€ DataForgeX.h            # Main header exports
β”œβ”€β”€ main.cpp                # Application entry point
β”œβ”€β”€ LICENSE                 # MIT License
β”œβ”€β”€ README.md               # Documentation
β”‚
β”œβ”€β”€ asm/                    # Assembly modules
β”‚   β”œβ”€β”€ wiper.asm           # LFSR random buffer generation
β”‚   └── recovery.asm        # File signature scanning
β”‚
β”œβ”€β”€ backend/                # C++ backend
β”‚   β”œβ”€β”€ backend.h           # Core API declarations
β”‚   β”œβ”€β”€ backend.cpp         # Wipe/recovery implementations
β”‚   β”œβ”€β”€ server.h            # HTTP server declarations
β”‚   └── server.cpp          # HTTP server & API handlers
β”‚
└── gui/                    # Web frontend
    β”œβ”€β”€ index.html          # Main application GUI
    β”œβ”€β”€ index.css           # Application styles
    β”œβ”€β”€ script.js           # Application logic
    β”œβ”€β”€ landing.html        # Landing page
    β”œβ”€β”€ landing.css         # Landing styles
    β”œβ”€β”€ landing.js          # Landing scripts
    └── logo.png            # Project logo

πŸ”§ API Reference

Endpoints

Method Endpoint Description
GET / Serve main application GUI
GET /api/browse Open native file browser dialog
GET /api/progress Get current scan progress (0-100%)
GET /api/results Get scan results with file list
Method Endpoint Request Body
POST /api/wipe {"filepath": "/path/to/file", "method": "0-3"}
POST /api/scan {"devicePath": "/dev/sda1"}
POST /api/carve {"devicePath": "...", "offset": "...", "size": "...", "type": "...", "outputPath": "..."}
POST /api/save-dialog {"type": "JPEG", "offset": "0x1000"}

Response Format

All API responses are JSON:

{
  "status": "success",
  "message": "Operation completed",
  "data": { ... }
}

⚠️ Security Notice

πŸ”΄ CRITICAL WARNING

⚠️ File wiping is PERMANENT and IRREVERSIBLE
οΏ½ Double-check target files before execution
🚫 Wiped data cannot be recovered by any means
🎯 Ensure you have selected the correct file
πŸ” Use recovery features only on authorized devices
βš–οΈ Ensure compliance with local data protection laws

πŸ‘₯ Team

πŸ‘¨β€πŸ’» Developer οΏ½ Connect
Muhammad Haseeb Gmail LinkedIn GitHub Medium
Ahmad Saleem Gmail LinkedIn GitHub
Ahtesham Hussain Gmail LinkedIn GitHub

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  • Fork the repository
  • Open a Pull Request

Made with ❀️

About

Secure Data Wiper and Recovery Tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors