# Cross-Platform Physical Disk Dumper Utility

A specialized low-level utility designed to analyze physical storage devices on Windows and Linux systems. By bypassing the filesystem layer, this tool interacts directly with raw disk sectors to facilitate deep forensic examination and structural validation.

It serves as a critical companion for ROSE SWE antivirus solutions (including rms, mpscan, rhbvs and VirScan Plus). The workflow involves dumping raw disk sectors to .bin files, which are then scanned by these virus scanners to detect malware residing in unallocated space, MBR, boot sectors, or hidden partitions that traditional file-scanning methods might miss.

Purpose

This tool provides a precise snapshot of the physical layout of every disk connected to the system. It is designed to assist developers and system administrators in:

Architecture & Cross-Platform Support

mbrdumper is written in Go and compiles to native executables for both Windows and Linux:

Both implementations are built from a single codebase using Go build tags (//go:build windows and //go:build linux), ensuring consistent functionality across platforms. The tool is compatible with 64-bit architectures on both operating systems.

Key Features

Physical Drive Enumeration

Windows: Automatically detects and lists all accessible \\.\PhysicalDriveX devices on the system.

Linux: Enumerates disks by accessing /dev/sdX device files (where X is a, b, c, etc.). The -d flag maps disk numbers to letters (0 → sda, 1 → sdb, etc.).

Structural Analysis

Feature Description
Partition Scheme Detection Automatically identifies whether a disk uses MBR or GPT partitioning
Capacity & Offset Reporting Displays total disk capacity and calculates precise partition start/end offsets
Type Identification Displays human-readable partition type names (e.g., "EFI System", "Linux Root (x86-64)", "NTFS/exFAT") for both MBR and GPT partitions, with fallback to hex codes or GUIDs for unknown types

Binary Dumping Capabilities

Target Size Description
MBR 8KB (16 sectors) Captures the boot code and partition table
GPT Variable Automatically extracts the GPT Header and Partition Table if detected
Partitions 8KB each Dumps the first 8KB of every detected partition for immediate header analysis

File Handling

Limitations & Scope

Limitation Details
Stealth Malware This tool performs a static dump of physical sectors. It does not currently include active evasion techniques to bypass stealth viruses, Rootkits, or MBR-based bootkits that actively hide their presence from the OS or low-level readers
Read-Only Operation While the tool reads raw sectors, it does not modify disk data. However, users should exercise caution when running low-level utilities on production systems

Typical Workflow

┌─────────────┐     ┌──────────────┐     ┌─────────────┐     ┌─────────────┐
│   Execute   │ ──► │   Analyze    │ ──► │    Dump     │ ──► │    Scan     │
└─────────────┘     └──────────────┘     └─────────────┘     └─────────────┘
       │                    │                    │                   │
       ▼                    ▼                    ▼                   ▼
Run with Admin      Review console        Generates .bin        Pass to ROSE SWE
privileges          output for            files for             malware scanners
                    partition schemes     MBR/GPT/partitions    (rms, mpscan,
                                                                 VirScan Plus)

RequirementDetails

Platform Requirements
Windows OS: Windows XP SP3 or later (32-bit or 64-bit)
Privileges: Administrator rights required for physical drive access
Dependencies: None (standalone executable)
Linux OS: Linux (kernel 2.6+)
Privileges: Root privileges required for physical drive access
Dependencies: None (statically linked executable)
Safety Warnings

⚠️ Important: This tool operates at the sector level. Ensure you are reading from the correct device identifier to avoid accidental data modification or system instability.
⚠️ Elevated Privileges Required: This tool requires elevated privileges (Administrator on Windows, root on Linux) to open handles to physical drives.

Usage

Windows

Important

Administrative Privileges Required
Windows restricts raw disk access to elevated processes. You must run this tool from an Administrator terminal.

  1. Open PowerShell or Command Prompt as Administrator.
  2. Navigate to the directory containing mbrdumper.exe.
  3. Execute the program with desired options (see Command-Line Options below).

Linux

Important

Root Privileges Required
Linux restricts raw disk access to the root user. Run this tool with sudo or as the root user.

  1. Open a terminal.
  2. Navigate to the directory containing mbrdumper.
  3. Execute with sudo ./mbrdumper [options] or run as root.

Command-Line Options

Option Aliases Purpose Example
-h -?, --help Display help and usage information mbrdumper -h
-l --list List all known GPT and MBR partition types mbrdumper -l
-d --disk N Analyze only disk number N (0-based) mbrdumper -d 0
-o --output DIR Specify output directory for binary dumps. Must exist! mbrdumper -o C:\\Dumps
-n --no-dump Skip binary file creation, show partition info only mbrdumper -n
-v --verbose Enable verbose output with additional details mbrdumper -v

Option Examples

Windows:

# Show help
mbrdumper -h
mbrdumper --help
mbrdumper -?

# List all known partition types (sorted)
mbrdumper -l
mbrdumper --list

# Analyze disk 0 only
mbrdumper -d 0
mbrdumper --disk 1

# Quick analysis without creating binary files
mbrdumper -n

# Save dumps to custom directory
mbrdumper -o C:\Dumps
mbrdumper -d 0 --output D:\Analysis

# Combine options: disk 1, custom output, verbose, no binary dumps
mbrdumper -d 1 -o C:\Dumps -n -v

Linux:

# Show help (as root)
sudo ./mbrdumper -h
sudo ./mbrdumper --help

# List all known partition types (sorted)
sudo ./mbrdumper -l
sudo ./mbrdumper --list

# Analyze disk 0 only (/dev/sda)
sudo ./mbrdumper -d 0

# Quick analysis without creating binary files
sudo ./mbrdumper -n

# Save dumps to custom directory
sudo ./mbrdumper -o /tmp/dumps
sudo ./mbrdumper -d 0 --output /mnt/analysis

# Combine options: disk 1, custom output, verbose, no binary dumps
sudo ./mbrdumper -d 1 -o /tmp/dumps -n -v

Usage Examples

Windows Examples

Windows 11/64, physical hardware

MBRDumper.exe
=======================================================
| PHYSICAL DISK ANALYZER & DUMPER CLI UTILITY (Windows) |
=======================================================
(c) by ROSE SWE, Ralph Roth - $Revision: 1.11 $
[✓] Administrator elevation confirmed.

DISK #0 =====
  Path:       \\.\PhysicalDrive0
  Total Size: 476.94 GB
  Scheme:     GPT
  ----------------------------------------------------
  [+] Saved: [disk0_mbr_8k.bin]
  [+] Saved: [disk0_gpt_table.bin]
  No.  Type                 Offset (Bytes)  Size
  1    EFI System           1048576         100.00 MB
  [+] Saved: [disk0_part1_8k.bin]
  2    Microsoft Reserved   105906176       16.00 MB
  [+] Saved: [disk0_part2_8k.bin]
  3    Basic Data           122683392       475.97 GB
  [+] Saved: [disk0_part3_8k.bin]
  4    Windows Recovery     511188140032    878.00 MB
  [+] Saved: [disk0_part4_8k.bin]


MBRDumper.exe -n
=======================================================
| PHYSICAL DISK ANALYZER & DUMPER CLI UTILITY (Windows) |
=======================================================
(c) by ROSE SWE, Ralph Roth - $Revision: 1.11 $
[✓] Administrator elevation confirmed.

DISK #0 =====
  Path:       \\.\PhysicalDrive0
  Total Size: 476.94 GB
  Scheme:     GPT
  ----------------------------------------------------
  No.  Type                 Offset (Bytes)  Size
  1    EFI System           1048576         100.00 MB
  2    Microsoft Reserved   105906176       16.00 MB
  3    Basic Data           122683392       475.97 GB
  4    Windows Recovery     511188140032    878.00 MB

Windows 8.1, KVM Image

C:\temp\windows>MBRDumper.exe -n
=======================================================
| PHYSICAL DISK ANALYZER & DUMPER CLI UTILITY (Windows) |
=======================================================
(c) by ROSE SWE, Ralph Roth - $Revision: 1.11 $
[✓] Administrator elevation confirmed.

DISK #0 =====
  Path:       \\.\PhysicalDrive0
  Total Size: 71.00 GB
  Scheme:     MBR
  ----------------------------------------------------
  No.  Type                 Offset (Bytes)  Size
  1    NTFS/exFAT           1048576         350.00 MB
  2    NTFS/exFAT           368050176       70.66 GB
  0    [Empty Partition]
  0    [Empty Partition]

DISK #1 =====
  Path:       \\.\PhysicalDrive1
  Total Size: 32.00 GB
  Scheme:     MBR
  ----------------------------------------------------
  No.  Type                 Offset (Bytes)  Size
  1    NTFS/exFAT           1048576         12.47 GB
  2    NTFS/exFAT           13386121216     19.53 GB
  0    [Empty Partition]
  0    [Empty Partition]

Linux Examples

Ubuntu 22.04 LTS, physical hardware

$ sudo ./mbrdumper
=======================================================
| PHYSICAL DISK ANALYZER & DUMPER CLI UTILITY (Linux) |
=======================================================
(c) by ROSE SWE, Ralph Roth - $Revision: 1.11 $
[] Root privilege confirmed.

DISK #0 =====
  Path:       /dev/sda
  Total Size: 238.47 GB
  Scheme:     (MBR/GPT detection requires parsing)
  --------------------------------------------------
  [+] Saved: [disk0_mbr_8k.bin]
  [+] Saved: [disk0_gpt_table.bin]
  No.  Type                 Offset (Bytes)  Size
  1    EFI System           1048576         512.00 MB
  [+] Saved: [disk0_part1_8k.bin]
  2    Linux Root (x86-64)  538017792       237.96 GB
  [+] Saved: [disk0_part2_8k.bin]

DISK #1 =====
  Path:       /dev/sdb
  Total Size: 1024.00 GB
  Scheme:     (MBR/GPT detection requires parsing)
  --------------------------------------------------
  [+] Saved: [disk1_mbr_8k.bin]
  No.  Type                 Offset (Bytes)  Size
  1    Linux Filesystem     1048576         1023.99 GB
  [+] Saved: [disk1_part1_8k.bin]

Ubuntu 22.04 LTS with -n (no binary dumps)

$ sudo ./mbrdumper -d 0 -n
=======================================================
| PHYSICAL DISK ANALYZER & DUMPER CLI UTILITY (Linux) |
=======================================================
(c) by ROSE SWE, Ralph Roth - $Revision: 1.11 $
[] Root privilege confirmed.

DISK #0 =====
  Path:       /dev/sda
  Total Size: 238.47 GB
  Scheme:     (MBR/GPT detection requires parsing)
  --------------------------------------------------
  No.  Type                 Offset (Bytes)  Size
  1    EFI System           1048576         512.00 MB
  2    Linux Root (x86-64)  538017792       237.96 GB

Output Files

By default, the program generates binary files in the current working directory. Use the -o or --output flag to specify a custom output directory.

Use the -n or --no-dump flag to skip binary file generation and only display partition information.

Partition Type Recognition

The utility includes comprehensive lookup tables for both MBR and GPT partition types. Use mbrdumper -l or mbrdumper --list to display all supported partition types (sorted alphabetically for GPT, numerically for MBR).

Supported GPT Types (46+ entries)

Includes: EFI System, Microsoft Reserved, Basic Data, Windows Recovery, Linux Root (x86/x86-64/ARM/ARM64), Linux Swap, Linux Home, Linux Extended Boot, Linux Plain dm-crypt, Linux LUKS, Apple APFS/HFS+/UFS/Boot, Apple RAID, FreeBSD (Boot/Data/Swap/UFS/VINUM/ZFS), OpenBSD, NetBSD (Swap/FFS/LFS/RAID), Solaris, Ceph (OSD/Journal/Block), VMware VMFS, ChromeOS (Kernel/Rootfs), and more.

Supported MBR Types (70+ entries)

Includes: FAT12/16/32 (including hidden variants and LBA), Extended/Extended LBA, NTFS/exFAT, HPFS, Linux (Swap, Ext4, LVM, RAID, PA-RISC boot), Linux Extended, BSD variants (FreeBSD, OpenBSD, NetBSD, Darwin), Solaris, AIX, IBM GPFS, Minix, BeFS, Plan 9, PartitionMagic, EZ-Drive, OnTrack variants, SpeedStor, VMware (VMFS/VMKCORE), and many legacy system types.

Safety Note

This tool performs read-only operations on physical sectors. It does not modify the disk structure or write data to the physical drives. Third party solutions may trigger a false positive when the program tries to access the disks.

Platform-Specific Notes

Windows:
When you run this on Windows, make sure you're running it from a folder where the Administrator has write permissions (like C:\Dumps\ or a dedicated project folder), otherwise the saveToFile function might hit a "Permission Denied" error when trying to write the binary files to disk.

Linux:
When running on Linux with sudo, output files are created with permissions 0666 (readable/writable by all users) to ensure they remain accessible after the sudo command completes. Ensure you have sufficient disk space in the output directory.