add README

This commit is contained in:
Grigoryev Ilya Alekseevich
2026-04-01 00:05:59 +05:00
parent 9af8091edd
commit 5d5dc0d33a
3 changed files with 47 additions and 32 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -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 <command> [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 <path> [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 <path> <entry> [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 <path>
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 <path> [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 <path> [flags]
Parse $Boot. CSV output is optional, matching MFTECmd behavior
debug Show debug information during processing
trace Show trace information during processing
sds parse <path> [flags]
Parse $SDS and write CSV output
sds show <path> <security-id>
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 <path> [flags]
Parse $I30 and write CSV output
Short options (single letter) are prefixed with a single dash. Long commands are prefixed with two dashes
logfile parse <path>
Recognize $LogFile input, but report that parsing is not supported yet
```
## Документация
[Introducing MFTECmd](https://binaryforay.blogspot.com/2018/06/introducing-mftecmd.html)

View File

@@ -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(),
)