Skip to content

Add Acronis TIBX loader#1882

Open
falklindner wants to merge 1 commit into
fox-it:mainfrom
falklindner:feature/tibx-loader
Open

Add Acronis TIBX loader#1882
falklindner wants to merge 1 commit into
fox-it:mainfrom
falklindner:feature/tibx-loader

Conversation

@falklindner

Copy link
Copy Markdown

Add a loader for Acronis CyberBackup/CyberProtect TIBX backup archives.

Depends on the TIBX parser in fox-it/dissect.archive (PR fox-it/dissect.archive#30)

Add Acronis TIBX loader

Each backed-up partition in a TIBX archive is mapped as a volume, letting filesystem and OS detection take over — the same pattern as VbkLoader.

Proposed changes

  • dissect/target/loaders/tibx.py — the TibxLoader class
  • dissect/target/loader.py — register the loader (after vbk)
  • tests/loaders/test_tibx.py — 6 tests

Features

  • Auto-detection by .tibx extension + ARCH magic bytes
  • Split archives auto-stitched when the first part is opened
  • Encrypted archives take their password from the keychain (-K / -Kv)
  • Recovery-point selection via tibx:// scheme URI query parameter (?recovery-point=N)

Testing

6 tests: detection (positive + negative), volume mapping with filesystem verification (FAT12), Target.open integration, encrypted archive handling (missing password + keychain lookup), and error handling. Tests build synthetic archives inline — no binary fixtures.

Note on exFAT

exFAT volumes in TIBX archives will produce correct file reads once fox-it/dissect.fat#37 and #1466 merge. Until then, directory listing works but file content reads are affected by the known block-size issue. NTFS and FAT32 volumes work fully.

Acknowledgments

Thanks to @mniedermaier for his contributions and support.

Checklist

  • PR title is descriptive of the changes
  • The description is descriptive of the changes
  • Tests are included and pass
  • Closes fox-it/dissect.archive#20 (parser PR)

Add a loader for Acronis CyberBackup/CyberProtect TIBX backup
archives. Each backed-up partition is mapped as a volume, letting
filesystem and OS detection take over.

Supports split archives (auto-stitched), encrypted archives
(password from the keychain via -K/-Kv), and recovery-point
selection via the tibx:// scheme URI query parameter.

Depends on dissect.archive with the tibx subpackage.

Co-Authored-By: Matthias Niedermaier <matthias.niedermaier@hs-augsburg.de>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant