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 [options] filename

Options:
  -h, --help            show this help message and exit
  -f FILE, --file=FILE  Read MFT from FILE
  -a, --anomaly         Turn on anomaly detection
  -l, --localtz         Report times using local timezone
  -d, --debug           Turn on debugging output
  -v, --version         Report version and exit
  -V, --verbose         Provide additional output as the program runs (Dangerous, can produce a lot of information)

  Output Options:
    -o FILE, --output=FILE
                        Write results to CSV FILE
    -b FILE, --bodyfile=FILE
                        Write MAC information to bodyfile
    -c FILE, --csvtimefile=FILE
                        Write CSV format timeline file

  Body File Options:
    --bodystd           Use STD_INFO timestamps for body file rather than FN     
                        timestamps
    --bodyfull          Use full path name + filename rather than just
                        filename

  Performance Options:
    --threads=THREAD_COUNT
                        Number of threads to use for parsing (default: 1)

Versioning

Current version: 3.0

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

analyzemft-3.0.2.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

analyzeMFT-3.0.2-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file analyzemft-3.0.2.tar.gz.

File metadata

  • Download URL: analyzemft-3.0.2.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for analyzemft-3.0.2.tar.gz
Algorithm Hash digest
SHA256 9abd9f710c06aad4b8cd88bf11c17d4347cccfed9717d29c6b662f9c6a1dc7c0
MD5 b1c0bd4f05704997141efa4071f44301
BLAKE2b-256 f4cedc9c3bf8b5942577e787250d21a664be2386d824195d5b07e3d21e1e624b

See more details on using hashes here.

File details

Details for the file analyzeMFT-3.0.2-py3-none-any.whl.

File metadata

  • Download URL: analyzeMFT-3.0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for analyzeMFT-3.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2b0b0aed68b295326f85e60c4f304a6c68558a63d66248970b6ff9ee29ee0c7a
MD5 aa7127cb36eb187e20d8d3374fcd3799
BLAKE2b-256 2f54ebf3d460a5ddfcff4163a2190cee9018f6ba54a30f0bc6431e9faeb997f8

See more details on using hashes here.

Release history Release notifications | RSS feed

3.1.1

2 files

3.0.6.7

2 files

3.0.6.6

2 files

3.0.6.3

2 files

3.0.6.2

2 files

3.0.6

2 files

3.0.5

2 files

This release

3.0.2 This release

2 files

3.0

2 files

2.1.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.19

1 file

2.0.18

1 file

2.0.17

1 file

2.0.16

1 file

2.0.15

1 file

2.0.14

1 file

2.0.13

1 file

2.0.12

1 file

2.0.10

1 file

2.0.9

1 file

2.0.8

1 file

2.0.6

1 file

2.0.5

1 file

2.0.4

1 file

2.0.3

1 file

2.0.0

1 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