From 5d5dc0d33a454650874c7e275c213cec4c05bac5 Mon Sep 17 00:00:00 2001 From: Grigoryev Ilya Alekseevich Date: Wed, 1 Apr 2026 00:05:59 +0500 Subject: [PATCH] add README --- .DS_Store | Bin 10244 -> 10244 bytes README.md | 77 ++++++++++++++++++++++++----------------- internal/cmd/render.go | 2 +- 3 files changed, 47 insertions(+), 32 deletions(-) diff --git a/.DS_Store b/.DS_Store index 5c5146962428e67854f5892387b17ff77db43b27..d3af40c55d6c5924f5d9a65d290dd861b90e79a4 100644 GIT binary patch delta 14 VcmZn(XbIRbSAfxS^E`nxaR4ep1s(tZ delta 16 XcmZn(XbIRbS736tpu^_70_x%bI_U;e diff --git a/README.md b/README.md index 1e4ee5a..c988e5d 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,61 @@ # MFTECmd -## Command Line Interface +[![Golang](https://go.dev/)] [![Source](https://github.com/EricZimmerman/MFTECmd)] +Утилита является портированной под Linux версией утилиты [Эрика Циммермана](https://github.com/EricZimmerman). При портировании была пересмотрена структура флагов и для более простого взаимодействия с программой. + +--- + +## Поддерживаемые форматы файлов +В качестве входных файлов утилита поддерживает: +- `$MFT` - системный файл в файловой системе NTFS, в котором хранится информация о содержимом тома. +- `$J` (USN Journal) -системный файл в файловой системе NTFS, который хранит журнал изменений на томе. +- `$Boot` - системный файл в файловой системе NTFS, содержащий загрузочный сектор и код запуска. +- `$SDS` - системный файл в файловой системе NTFS, содержит список дескрипторов безопасности для всех файлов и каталогов на томе. +- `$I30` - атрибут индекса размещения. Связан с каталогами и содержит информацию о файлах и подкаталогах, содержащихся в каталоге. +- `$LogFile` - системный файл в файловой системе NTFS, содержащий журнал транзакций. + +Для экспорта доступны форматы: CSV, JSON и Bodyfile. + +### CLI ```sh -MFTECmd version 0.5.0.1 +Usage: mftecmd [flags] - f File to process ($MFT | $J | $LogFile | $Boot | $SDS). Required +Utility for processing $MFT, $J, $LogFile, $Boot, $SDS, $I30 - json Directory to save JSON formatted results to. This or --csv required unless --de or --body is specified - jsonf File name to save JSON formatted results to. When present, overrides default name - csv Directory to save CSV formatted results to. This or --json required unless --de or --body is specified - csvf File name to save CSV formatted results to. When present, overrides default name +Flags: + -h, --help Show context-sensitive help. + --debug Show debug information during processing + --trace Show trace information during processing - body Directory to save bodyfile formatted results to. --bdl is also required when using this option - bodyf File name to save body formatted results to. When present, overrides default name - bdl Drive letter (C, D, etc.) to use with bodyfile. Only the drive letter itself should be provided - blf When true, use LF vs CRLF for newlines. Default is FALSE +Commands: + mft parse [flags] + Parse $MFT and write CSV, JSON, or bodyfile output - dd Directory to save exported FILE record. --do is also required when using this option - do Offset of the FILE record to dump as decimal or hex. Ex: 5120 or 0x1400 Use --de or --vl 1 to see offsets + mft show [flags] + Show full details for a specific $MFT entry or entry-sequence - de Dump full details for entry/sequence #. Format is 'Entry' or 'Entry-Seq' as decimal or hex. Example: 5, 624-5 or 0x270-0x5. - fls When true, displays contents of directory specified by --de. Ignored when --de points to a file. - ds Dump full details for Security Id as decimal or hex. Example: 624 or 0x270 + mft export-record --offset=STRING --out=STRING + Export one raw $MFT FILE record by offset - dt The custom date/time format to use when displaying time stamps. Default is: yyyy-MM-dd HH:mm:ss.fffffff - sn Include DOS file name types. Default is FALSE - fl Generate condensed file listing. Requires --csv. Default is FALSE - at When true, include all timestamps from 0x30 attribute vs only when they differ from 0x10. Default is FALSE + j parse [flags] + Parse $J and write CSV or JSON output - vss Process all Volume Shadow Copies that exist on drive specified by -f . Default is FALSE - dedupe Deduplicate -f & VSCs based on SHA-1. First file found wins. Default is FALSE + boot parse [flags] + Parse $Boot. CSV output is optional, matching MFTECmd behavior - debug Show debug information during processing - trace Show trace information during processing + sds parse [flags] + Parse $SDS and write CSV output + sds show + Show full details for a specific Security ID from $SDS - Examples: MFTECmd -f "C:\Temp\SomeMFT" --csv "c:\temp\out" --csvf MyOutputFile.csv - MFTECmd -f "C:\Temp\SomeMFT" --csv "c:\temp\out" - MFTECmd -f "C:\Temp\SomeMFT" --json "c:\temp\jsonout" - MFTECmd -f "C:\Temp\SomeMFT" --body "c:\temp\bout" --bdl c - MFTECmd -f "C:\Temp\SomeMFT" --de 5-5 + i30 parse [flags] + Parse $I30 and write CSV output - Short options (single letter) are prefixed with a single dash. Long commands are prefixed with two dashes -``` \ No newline at end of file + logfile parse + Recognize $LogFile input, but report that parsing is not supported yet +``` + +## Документация +[Introducing MFTECmd](https://binaryforay.blogspot.com/2018/06/introducing-mftecmd.html) \ No newline at end of file diff --git a/internal/cmd/render.go b/internal/cmd/render.go index 3be5c38..3e30645 100644 --- a/internal/cmd/render.go +++ b/internal/cmd/render.go @@ -19,7 +19,7 @@ func NewCLI() *CLI { c.parser = kong.Must( &c.cmd, kong.Name("mftecmd"), - kong.Description("Utility for processing $MFT, $J, $LogFile, $Boot, $SDS"), + kong.Description("Utility for processing $MFT, $J, $LogFile, $Boot, $SDS, $I30"), kong.UsageOnError(), )