从ntfs文件系统分析$mft。
parseMFT的Python项目详细描述
parse mft
==
parsemft.py旨在从ntfs文件系统完全解析mft文件,并以多种格式尽可能准确地显示结果。其目的是安全使用。大型mft可能需要许多gb的ram才能完全
加载到内存中,因此在默认情况下,mft分为两个过程进行解析:一次将
所有记录名称加载到内存中并构建完整的文件路径,另一次
一次只加载一条记录并将其打印出来。
很自然,一个单独的pass更快:处理mft所需的时间
部分取决于输出格式,但一次通过大约需要
标准两次通过方法时间的一半。为了利用速度增加的优势,请使用--inmemory选项。但是,如果parsemft认为
这样做可能需要的内存超过最大允许内存(默认为4 GB),它将中止并报告它认为需要处理的内存量。
请注意,实际内存需求可能要少得多:
估计有意保守,尤其是对于大型mft来说,
可能会大大高估实际内存需求。
安装
==
您应该很快就可以使用pip安装parsemft:
g i t clone https://github.com/thoromyr/parsemft.git
cd parsemft
python setup.py安装(或者,从该目录运行它)
usage
===
<;pre>;
用法:parsemft.py[-h](-c-j-b-g-t)[-o文件][-e][-i缩进]
[-s[-l][-k][--legacy_u date][-f][-x string][-w]
[--max_u memory max_u memory][-a][-m]
[--estimate_u memory_u only][-p][-d][-v][-q][-v]
mft_file
parse windows mft and output timeline
positional arguments:
mft_文件读取mft from file
可选参数:
-h,--帮助显示此帮助消息并退出
-c,--csv csv格式输出
-j,--json json格式输出[使用--inmemory获取所有数据]
-b,--bodyfile bodyfile格式输出将
-g,--timesketch timesketch兼容输出
-t,--timeline plaso/log2timeline兼容输出
-o文件,--output文件
write结果到文件[默认为stdout]
-e,--excel使输出excel友好,通常与-c
-i indent,-indent indent
json输出中要缩进的空格数;只有与-j
-s一起使用时才有意义,-std info更喜欢std_info timestamps而不是filename timestamps
-l,-localtz使用loca的报告时间l时区
-k,--保留分数秒
保留日期/时间戳中的分数秒
--传统的L2T日期使用传统的L2T"mm/dd/yyyy"日期格式
-f,--完整路径正文文件使用完整路径而不仅仅是文件名;
ignor不带-b
-x字符串的ed,--无效的_数据字符串
用于无效或丢失数据的文本,例如,当
时间为零(1601-01-01 00:00:00)时[默认为
空字符串]
-w,--windows_路径文件路径应为ld使用windows路径分隔符
而不是linux
--max_memory max_memory
设置--inmemory的最大内存[默认值为4
gb]
-a,--异常打开异常检测
-m,--inmemory一次装载。更快但占用更多内存。
--仅估算内存量
估算所需内存量后终止。
-p,--progress显示系统进度报告
-d,--调试打开调试输出[表示-v v v,使用-q来
抑制详细输出]
-v,--详细显示非致命错误
-q,--安静抑制错误消息
-v,--版本显示程序的版本号并退出
以避免控制台中出现Unicode错误:"export pythonionecoding=utf-8"
<;/pre>;
output
===
plaso/l2t或timesketch。
csv虽然json被认为是权威的输出格式,但是csv更常用。从技术上讲,csv代表"逗号分隔值"
格式是通用的,其他字符(如管道)可以用作值
分隔符。通过这个镜头看,bodyfile格式是一个csv,带有
一个管道分隔符和一组特定的字段。
,与bodyfile、timeline和timesketch不同。
历史
==
[见changes.txt]
-版本0.2:csv、plaso/l2t和timesketch工作正常
-版本0.1:正文文件输出工作正常
-版本0.0:返工,以便内部表示可以转储为json
灵感
==/>最初的事件响应分类是提取mft,但需要一种快速的
方法来分析它。为此,需要比
plaso更快/更简单的东西,但也可以转储到timesketch中。
不起动器。但它仍然是一个很好的基础。
已经努力保留相同的选项,但是一些选项(例如使用-v
for--version而不是--verbose)已经更改,以更好地遵守
常见的约定。
s to internal representation
-完全实现选项
-修复json输出
-从stdin读取
-验证输出
有用的文档
======
1)http://dubeyko.com/development/filesystems/ntfs/ntfsdoc.pdf
==
parsemft.py旨在从ntfs文件系统完全解析mft文件,并以多种格式尽可能准确地显示结果。其目的是安全使用。大型mft可能需要许多gb的ram才能完全
加载到内存中,因此在默认情况下,mft分为两个过程进行解析:一次将
所有记录名称加载到内存中并构建完整的文件路径,另一次
一次只加载一条记录并将其打印出来。
很自然,一个单独的pass更快:处理mft所需的时间
部分取决于输出格式,但一次通过大约需要
标准两次通过方法时间的一半。为了利用速度增加的优势,请使用--inmemory选项。但是,如果parsemft认为
这样做可能需要的内存超过最大允许内存(默认为4 GB),它将中止并报告它认为需要处理的内存量。
请注意,实际内存需求可能要少得多:
估计有意保守,尤其是对于大型mft来说,
可能会大大高估实际内存需求。
安装
==
您应该很快就可以使用pip安装parsemft:
g i t clone https://github.com/thoromyr/parsemft.git
cd parsemft
python setup.py安装(或者,从该目录运行它)
usage
===
<;pre>;
用法:parsemft.py[-h](-c-j-b-g-t)[-o文件][-e][-i缩进]
[-s[-l][-k][--legacy_u date][-f][-x string][-w]
[--max_u memory max_u memory][-a][-m]
[--estimate_u memory_u only][-p][-d][-v][-q][-v]
mft_file
parse windows mft and output timeline
positional arguments:
mft_文件读取mft from file
可选参数:
-h,--帮助显示此帮助消息并退出
-c,--csv csv格式输出
-j,--json json格式输出[使用--inmemory获取所有数据]
-b,--bodyfile bodyfile格式输出将
-g,--timesketch timesketch兼容输出
-t,--timeline plaso/log2timeline兼容输出
-o文件,--output文件
write结果到文件[默认为stdout]
-e,--excel使输出excel友好,通常与-c
-i indent,-indent indent
json输出中要缩进的空格数;只有与-j
-s一起使用时才有意义,-std info更喜欢std_info timestamps而不是filename timestamps
-l,-localtz使用loca的报告时间l时区
-k,--保留分数秒
保留日期/时间戳中的分数秒
--传统的L2T日期使用传统的L2T"mm/dd/yyyy"日期格式
-f,--完整路径正文文件使用完整路径而不仅仅是文件名;
ignor不带-b
-x字符串的ed,--无效的_数据字符串
用于无效或丢失数据的文本,例如,当
时间为零(1601-01-01 00:00:00)时[默认为
空字符串]
-w,--windows_路径文件路径应为ld使用windows路径分隔符
而不是linux
--max_memory max_memory
设置--inmemory的最大内存[默认值为4
gb]
-a,--异常打开异常检测
-m,--inmemory一次装载。更快但占用更多内存。
--仅估算内存量
估算所需内存量后终止。
-p,--progress显示系统进度报告
-d,--调试打开调试输出[表示-v v v,使用-q来
抑制详细输出]
-v,--详细显示非致命错误
-q,--安静抑制错误消息
-v,--版本显示程序的版本号并退出
以避免控制台中出现Unicode错误:"export pythonionecoding=utf-8"
<;/pre>;
output
===
csv虽然json被认为是权威的输出格式,但是csv更常用。从技术上讲,csv代表"逗号分隔值"
格式是通用的,其他字符(如管道)可以用作值
分隔符。通过这个镜头看,bodyfile格式是一个csv,带有
一个管道分隔符和一组特定的字段。
历史
==
[见changes.txt]
-版本0.2:csv、plaso/l2t和timesketch工作正常
-版本0.1:正文文件输出工作正常
-版本0.0:返工,以便内部表示可以转储为json
灵感
==/>最初的事件响应分类是提取mft,但需要一种快速的
方法来分析它。为此,需要比
plaso更快/更简单的东西,但也可以转储到timesketch中。
不起动器。但它仍然是一个很好的基础。
已经努力保留相同的选项,但是一些选项(例如使用-v
for--version而不是--verbose)已经更改,以更好地遵守
常见的约定。
s to internal representation
-完全实现选项
-修复json输出
-从stdin读取
-验证输出
有用的文档
======
1)http://dubeyko.com/development/filesystems/ntfs/ntfsdoc.pdf