Skip to main content

AnalyzeMFT

AnalyzeMFT is a Python script designed to translate the NTFS Master File Table (MFT) into a human-readable and searchable format, such as CSV. This tool is useful for digital forensics, file system analysis, and understanding the structure of NTFS volumes.

AnalyzeMFT Derivatives

Rather than clutter up the main project with features people may not want, I will be releasing two sister projects this week:

  1. AnalyzeMFT-SQLite which adds SQL tables as an export option. I found that when working with very large MFT files, it's often easier to get them into a database such as SQLite or PostgreSQL and perform queries/searches using those tools. This also lets us cut down on the total size of the eventual export with large MFT files because we can reuse values and attributes.

  2. CanalyzeMFT - This is a C/C++ port of the project. The goal is to increase the performance on *nix systems (or Windows if you want to build it there). I'm aiming to leave out system dependent libraries (cough Windows.h) so it's easily built everywhere.

Features

  • Parse NTFS MFT files
  • Generate CSV output of MFT records
  • Create timeline in CSV format
  • Produce bodyfile output for timeline analysis
  • Support for local timezone reporting
  • Many output formats - CSV, Body Files, JSON
  • Anomaly detection (optional)
  • Debugging output (optional)

Requirements

  • Python 3.x

Installation

  1. Clone this repository or download the script files.
  2. Ensure you have Python 3.x installed on your system.

Basic usage:

Usage: analyzeMFT.py -f <mft_file> -o <output_file> [options]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -f FILE, --file=FILE  MFT file to analyze
  -o FILE, --output=FILE
                        Output file
  -H, --hash            Compute hashes (MD5, SHA256, SHA512, CRC32)

  Export Options:
    --csv               Export as CSV (default)
    --json              Export as JSON
    --xml               Export as XML
    --excel             Export as Excel
    --body              Export as body file (for mactime)
    --timeline          Export as TSK timeline
    --l2t               Export as log2timeline CSV

  Verbosity Options:
    -v                  Increase output verbosity (can be used multiple times)
    -d                  Increase debug output (can be used multiple times)

Error: No input file specified. Use -f or --file to specify an MFT file.

Output

Starting MFT analysis...
Processing MFT file: D:\ISOs\MFT_Images\MFT
Processed 10000 records...
Processed 20000 records...
Processed 30000 records...

 .......[CUT].........

Processed 310000 records...
MFT processing complete. Total records processed: 314880
Writing output in csv format to X:\extracted.csv
Analysis complete.

MFT Analysis Statistics:
Total records processed: 314880
Active records: 171927
Directories: 99512
Files: 215368
Analysis complete. Results written to X:\extracted.csv

Versioning

Current version: 3.0.6.6

Author

Benjamin Cance (bjc@tdx.li)

License

Copyright Benjamin Cance 2024

Contributing

If you'd like to contribute to this project, please submit a pull request or open an issue on the project's repository.

Disclaimer

This tool is provided as-is, without any warranties. Use at your own risk and ensure you have the necessary permissions before analyzing any file systems or MFT data.

Metadata

Release files for analyzeMFT 3.0.6.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for analyzeMFT 3.0.6.7
File Size Uploaded
analyzemft-3.0.6.7.tar.gz 24.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for analyzeMFT 3.0.6.7
File Interpreter ABI Platform
analyzeMFT-3.0.6.7-py3-none-any.whl Python 3 none any Details

Total release size: 42.4 kB

Release files / analyzemft-3.0.6.7.tar.gz

Download URL analyzemft-3.0.6.7.tar.gz
Size 24.9 kB
Tags Source
SHA-256 checksum
How to use checksums
82fc1cf973bf63ec02674cf119e3e3fbe26b3d3b1801a58a37c929b0df0e87ba
BLAKE2b-256 checksum
How to use checksums
c09d8984462646fbef956cdb383189a83d30a45c9783157823b8c68379358658
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release files / analyzeMFT-3.0.6.7-py3-none-any.whl

Download URL analyzeMFT-3.0.6.7-py3-none-any.whl
Size 17.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8439efece6cb028e18621cabe85928e127bf39a5acbb099045b974e304850e74
BLAKE2b-256 checksum
How to use checksums
fecb8572e7b8611a969564732e7256478d2a41d57bfc352c9a40441543bbac7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release history Release notifications | RSS feed

3.1.1

2 release files

This release

3.0.6.7 This release

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.2

2 release files

3.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.19

1 release file

2.0.18

1 release file

2.0.17

1 release file

2.0.16

1 release file

2.0.15

1 release file

2.0.14

1 release file

2.0.13

1 release file

2.0.12

1 release file

2.0.10

1 release file

2.0.9

1 release file

2.0.8

1 release file

2.0.6

1 release file

2.0.5

1 release file

2.0.4

1 release file

2.0.3

1 release file

2.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page