从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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java能否使用OpenJPA将一个实体持久化到多个持久化单元?   java如何访问当前按下的键   java singleton是否意味着哈希代码总是返回相同的值?   inputstream无法在Java中同时使用STDIN和STDERR读取程序输出   java运行时有多贵。getRuntime()与获取内存度量相结合   java AndroidStudio ListView适配器更新   java小程序请求未扩展实时会话   java是设置布尔值所必需的关键部分?   java比较两个字符串,并突出显示发现的不匹配项   java带抽屉布局,无论哪个屏幕处于活动状态,如何在按下后退键时关闭应用程序?   爪哇:颜色有什么区别。黑色和彩色。黑色   Velocity模板中子类的java访问方法   java如何快速学习Drools或其他规则引擎   从Java应用程序访问时缓存数据库查询结果   java cassandra nodetool JPLISAgent。c错误   java我正在解析一个没有pubDate的RSS提要,有没有其他方法可以确定一个项目是何时发布的?