Skip to content

v1.3.0

Choose a tag to compare

@xchwarze xchwarze released this 31 Jul 17:04
· 10 commits to master since this release

Magic Extractor 1.3.0 — Better workflows and sturdier detection

This release makes Magic Extractor easier to use and maintain. The GUI now
exposes carving and bruteforce detection, full-file PureMagic analysis is the
default, Inno Setup support has been modernized, and the bundled detector and
extractor tools now have a repeatable update workflow.

New: carve and bruteforce in the GUI

The graphical interface now exposes two workflows that were previously limited
to the CLI:

  • Carve mode uses binwalk's offset map to find embedded archives and extract
    them from firmware images or other container files.
  • Bruteforce mode disables detector early-exit and tries every handler
    suggested by DIE, Magika and the other detectors.

The Preferences dialog can also remember the last 10 source and destination
paths, making repeated extraction jobs quicker to set up.

New: reproducible bundled-tool updates

The new update/ workflow vendors universal-tool-updater and a configuration
for refreshing the external tools shipped under cli/bin/:

  • DIE, Magika, 7-Zip, innounp, lessmsi, unshield and PeaZip.
  • The eight bundled tc4shell plugins used for forensic images, disc images,
    mail stores, application packages and modern codecs.
  • Per-tool cleanup scripts keep only the required binaries and preserve the
    directory layout expected by Magic Extractor.

Run update/updater.exe --dry-run on Windows to check for available updates
without downloading anything. See update/UPDATING.md for the complete workflow
and the known caveats for each source.

Detection changes

  • Full-file PureMagic analysis is now the default. PureMagic 2.x can perform
    content-aware deep scanning when it receives the complete file, improving
    detection when the useful signature is not near the beginning.
  • --fast-check is now an explicit opt-in and examines the first 64 KiB.
    This is substantially more useful than the previous small prefix while still
    avoiding a full-file scan when startup speed matters most.
  • The Python runtime dependencies were refreshed, including PureMagic 2.2+,
    Send2Trash 2.1+ and tkinterdnd2 0.6.2+.

Inno Setup improvements

  • The bundled Inno Setup Unpacker was updated from the old 0.50 build to
    2.70-beta, adding support through Inno Setup 7.0.1-beta.
  • Extraction now uses batch mode, disables colored console output and passes the
    supplied password directly to innounp.
  • Duplicate and embedded files continue to be extracted without interactive
    prompts.

Reliability and interface fixes

  • --fix-file-extensions now adds an extension only to extensionless files; it
    never replaces a real extension that is already present.
  • The About dialog follows the selected theme, Windows dialog title bars support
    dark mode, and menus/dialogs stay above a window configured as always-on-top.
  • The required Microsoft runtime DLLs are now bundled with DIE and Magika, so
    clean Windows systems do not need to supply them separately.
  • Corrected the bundled unshield link filename.

Under the hood

The former 470-line cli/main.py has been reduced to a small entry point. Its
argument parsing, detection, extraction, read-only commands, carving and path
resolution now live in focused modules. Existing imports from main.py remain
available for compatibility, and direct workflow tests cover detector early-exit
and bruteforce behavior, handler extraction lifecycle and carving edge cases.

Notes

Full-file detection can take longer on very large inputs. Use --fast-check
when the first 64 KiB are sufficient and lower startup latency is preferable to
PureMagic's deep scan.

The updater is a maintainer workflow rather than an in-application auto-update
feature. Updated binaries should still be tested before publishing a release,
especially the architecture-sensitive 7-Zip plugins.

Full Changelog: 1.2.0...1.3.0