A modern disk image writing utility for USB drives and SD cards
ImageWriter is a modernized and enhanced version of the dd for Windows utility, originally developed by John Newbigin. This project provides a graphical interface and additional features for writing disk images to removable media.
Original Project: dd for Windows by John Newbigin (jn@chrysocome.net)
Current Developer: Anton Zelenov (tixset@gmail.com)
GitHub: https://github.com/tixset/ImageWriter
License: GNU General Public License v3.0
ImageWriter/
βββ src/ # Source code
β βββ *.pas, *.dfm # Delphi modules and forms
β βββ managers/ # Business logic managers
β β βββ ArchiveHandler.pas # Archive format support
β β βββ DeviceBenchmark.pas # Performance testing
β β βββ DeviceManager.pas # Device operations
β β βββ ... # Other manager modules
β βββ studio/ # Helper modules
β βββ md5/ # MD5 hashing
β βββ random/ # Random number generator
β βββ sha256/ # SHA-256 hashing
βββ tests/ # Automated test suite
β βββ *.pas # Test modules (DUnit)
β βββ ImageWriterTests.dpr # Test runner
β βββ run_tests.bat # Test execution script
β βββ *.ps1 # PowerShell integration tests
β βββ README.md # Test documentation
βββ docs/ # Documentation
β βββ README.md # Main documentation (English)
β βββ README.ru.md # Documentation in Russian
β βββ CODING_STYLE_GUIDE.md # Code style guidelines
β βββ COMMIT_CONVENTIONS.md # Git commit standards
β βββ ... # Other documentation files
βββ resources/ # Application resources
β βββ *.rc # Resource files
β βββ *.RES # Compiled resources
βββ lib/ # External libraries
β βββ zlib1.dll # ZLib compression library
βββ LICENSE # GNU GPL v3.0 license
βββ CHANGELOG.md # Version history
βββ CONTRIBUTING.md # Contribution guidelines
βββ CODE_OF_CONDUCT.md # Community guidelines
βββ ROADMAP.md # Development roadmap
βββ SECURITY.md # Security policy
βββ BUILD_CONFIGURATION.md # Build instructions (IDE + command-line)
βββ *.dpr # Delphi project files
βββ *.dof # Delphi IDE project settings
βββ *.cfg # Compiler configuration (command-line)
βββ build.bat # Build script
βββ .gitignore
- π₯οΈ Graphical User Interface - Easy-to-use Windows GUI
- β¨οΈ Command-Line Interface (CLI) - Console mode for automation and scripting
- πΎ Multiple Image Formats - Support for raw, GZIP (.gz), ZIP (.zip), XZ, BZIP2, 7z, TAR
- β Hash Verification - MD5 and SHA-256 checksums for data integrity
- π Partition Information - Display MBR and GPT partition tables (even from archives!)
- π UAC Elevation - Automatic privilege elevation on Vista and later
- β‘ High Performance - Optimized I/O operations with progress tracking
- π― Drag & Drop - Simple file selection via drag and drop
- π§ Advanced Options - Block size, count, seek, and skip parameters
- π‘οΈ Safe Operations - Volume locking and dismounting for data safety
- π Progress Tracking - Real-time progress bar and status updates with ETA and speed
- π Network Shares - Pro version supports network-mounted drives (UNC paths)
- π Dynamic Loading - On-demand library loading for better startup performance
- π Comprehensive Logging - Detailed operation logs for troubleshooting
- π§ Clean Code Architecture - Modular design with 37+ manager methods
- β Automated Testing - DUnit tests and PowerShell integration tests
- π― Active Development - Recent refactoring and GitHub-ready infrastructure
- π‘οΈ GitHub Ready - Full CI/CD workflows, issue templates, security policy
- π¬ Device Benchmarking - Test disk performance with read/write benchmarks
- π₯ Device Health Monitoring - Automatic diagnostics with WMI, SMART, and partition validation
- π‘οΈ Smart Safety Features - Visual health indicators and write protection for critical devices
- Windows 7 or later (Vista supported with limitations)
- Administrator privileges for writing to disk devices
- zlib1.dll (included, auto-extracted when needed)
build.batRequires: Borland Delphi 7 or compatible compiler
- Run ImageWriter.exe or ImageWriterPro.exe
- Select source image file or device
- Select target device
- Configure options (block size, count, etc.)
- Click "Write" or "Read"
Versions:
- ImageWriter.exe - Standard version for local drives
- ImageWriterPro.exe - Extended version with network share support
List available devices:
ImageWriter.exe --cli --listWrite image to USB drive:
ImageWriter.exe --cli --write --device \\.\PhysicalDrive2 --file ubuntu.iso --verifyRead device to compressed image:
ImageWriter.exe --cli --read --device E:\ --file backup.img.gz --hash md5Verify device against image:
ImageWriter.exe --cli --verify --device E:\ --file backup.img --hash sha256Show help:
ImageWriter.exe --cli --helpCLI Options:
--device <path>- Device path (e.g.,\\.\PhysicalDrive2orE:\)--file <path>- Image file (.img, .iso, .gz, .zip)--bs <size>- Block size in bytes (default: 1048576)--count <n>- Number of blocks to copy--hash <md5|sha256>- Calculate hash after operation--verify- Verify written data--force- Skip safety checks (dangerous!)--quiet- Suppress progress output
See ImageWriter.exe --cli --help for complete documentation.
Full documentation is available in the docs/ directory:
- User Guide (EN)
- Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (RU)
- Coding Style Guide
- Contributing Guidelines
Run automated tests:
cd tests
run_tests.batTests include:
- Unit Tests - DUnit framework for core functionality
- Integration Tests - PowerShell scripts for real-world scenarios
- GUI Automation - UI testing via Windows Automation API
We welcome contributions! Please read CONTRIBUTING.md before submitting pull requests.
GNU General Public License v3.0 - see LICENSE for details.
If you discover a security vulnerability, please see SECURITY.md for responsible disclosure guidelines.
ImageWriter includes an automated test suite:
cd tests
run_tests.batSafety Features:
- Tests ONLY on removable devices (USB drives)
- NEVER tests on fixed disks
- Automatic device type verification
- Safe read-only operations
See tests/README.md for details.
- Delphi 7 (Borland Delphi Version 15.0)
- Win32 API for low-level disk access
- Named Pipes for IPC in Pro version
- ZLib for compressed image support (dynamic loading)
Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
Additional Resources:
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- John Newbigin - Original author of dd for Windows
- The ZLib team for the compression library
- All contributors to this project
- Author: Anton Zelenov
- Email: tixset@gmail.com
- GitHub: https://github.com/tixset/ImageWriter
- Original dd for Windows: John Newbigin (jn@chrysocome.net)
Made with β€οΈ for the open-source community
Note: This is a derivative work based on dd for Windows.
Original project Β© Chrysocome and John Newbigin, available under the GPL license.
