dissect.target 3.19.dev53__py3-none-any.whl → 3.19.dev54__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- dissect/target/plugins/filesystem/ntfs/mft.py +8 -4
- dissect/target/tools/utils.py +14 -2
- {dissect.target-3.19.dev53.dist-info → dissect.target-3.19.dev54.dist-info}/METADATA +1 -1
- {dissect.target-3.19.dev53.dist-info → dissect.target-3.19.dev54.dist-info}/RECORD +9 -9
- {dissect.target-3.19.dev53.dist-info → dissect.target-3.19.dev54.dist-info}/WHEEL +1 -1
- {dissect.target-3.19.dev53.dist-info → dissect.target-3.19.dev54.dist-info}/COPYRIGHT +0 -0
- {dissect.target-3.19.dev53.dist-info → dissect.target-3.19.dev54.dist-info}/LICENSE +0 -0
- {dissect.target-3.19.dev53.dist-info → dissect.target-3.19.dev54.dist-info}/entry_points.txt +0 -0
- {dissect.target-3.19.dev53.dist-info → dissect.target-3.19.dev54.dist-info}/top_level.txt +0 -0
@@ -138,12 +138,18 @@ class MftPlugin(Plugin):
|
|
138
138
|
FilesystemFilenameCompactRecord,
|
139
139
|
]
|
140
140
|
)
|
141
|
-
@arg(
|
141
|
+
@arg(
|
142
|
+
"--compact",
|
143
|
+
group="fmt",
|
144
|
+
action="store_true",
|
145
|
+
help="compacts the MFT entry timestamps into a single record",
|
146
|
+
)
|
142
147
|
@arg("--fs", type=int, default=None, help="optional filesystem index, zero indexed")
|
143
148
|
@arg("--start", type=int, default=0, help="the first MFT segment number")
|
144
149
|
@arg("--end", type=int, default=-1, help="the last MFT segment number")
|
145
150
|
@arg(
|
146
151
|
"--macb",
|
152
|
+
group="fmt",
|
147
153
|
action="store_true",
|
148
154
|
help="compacts the MFT entry timestamps into aggregated records with MACB bitfield",
|
149
155
|
)
|
@@ -171,9 +177,7 @@ class MftPlugin(Plugin):
|
|
171
177
|
|
172
178
|
aggr = noaggr
|
173
179
|
|
174
|
-
if compact
|
175
|
-
raise ValueError("--macb and --compact are mutually exclusive")
|
176
|
-
elif compact:
|
180
|
+
if compact:
|
177
181
|
record_formatter = compacted_formatter
|
178
182
|
elif macb:
|
179
183
|
aggr = macb_aggr
|
dissect/target/tools/utils.py
CHANGED
@@ -95,12 +95,24 @@ def generate_argparse_for_unbound_method(
|
|
95
95
|
parser = argparse.ArgumentParser(description=desc, formatter_class=help_formatter, conflict_handler="resolve")
|
96
96
|
|
97
97
|
fargs = getattr(method, "__args__", [])
|
98
|
+
groups = {}
|
99
|
+
default_group_options = {"required": False}
|
98
100
|
for args, kwargs in fargs:
|
99
|
-
|
101
|
+
if "group" in kwargs:
|
102
|
+
group_name = kwargs.pop("group")
|
103
|
+
options = kwargs.pop("group_options") if "group_options" in kwargs else default_group_options
|
104
|
+
if group_name not in groups:
|
105
|
+
group = parser.add_mutually_exclusive_group(**options)
|
106
|
+
groups[group_name] = group
|
107
|
+
else:
|
108
|
+
group = groups[group_name]
|
109
|
+
|
110
|
+
group.add_argument(*args, **kwargs)
|
111
|
+
else:
|
112
|
+
parser.add_argument(*args, **kwargs)
|
100
113
|
|
101
114
|
usage = parser.format_usage()
|
102
115
|
offset = usage.find(parser.prog) + len(parser.prog)
|
103
|
-
|
104
116
|
func_name = method.__name__
|
105
117
|
usage_tmpl = usage_tmpl or "{prog} {usage}"
|
106
118
|
parser.usage = usage_tmpl.format(prog=parser.prog, name=func_name, usage=usage[offset:])
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dissect.target
|
3
|
-
Version: 3.19.
|
3
|
+
Version: 3.19.dev54
|
4
4
|
Summary: This module ties all other Dissect modules together, it provides a programming API and command line tools which allow easy access to various data sources inside disk images or file collections (a.k.a. targets)
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
6
6
|
License: Affero General Public License v3
|
@@ -172,7 +172,7 @@ dissect/target/plugins/filesystem/resolver.py,sha256=HfyASUFV4F9uD-yFXilFpPTORAs
|
|
172
172
|
dissect/target/plugins/filesystem/walkfs.py,sha256=rklbN805roy2fKAQe5L1JhTvI0qNgGS70ZNGFwevLB0,2740
|
173
173
|
dissect/target/plugins/filesystem/yara.py,sha256=zh4hU3L_egddLqDeaHDVuCWYhTlNzPYPVak36Q6IMxI,6621
|
174
174
|
dissect/target/plugins/filesystem/ntfs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
175
|
-
dissect/target/plugins/filesystem/ntfs/mft.py,sha256=
|
175
|
+
dissect/target/plugins/filesystem/ntfs/mft.py,sha256=6r2uQrvJsuHGpKxx4vQPBuZ9yGLj-d8RS5y289-VoZI,12384
|
176
176
|
dissect/target/plugins/filesystem/ntfs/mft_timeline.py,sha256=vvNFAZbr7s3X2OTYf4ES_L6-XsouTXcTymfxnHfZ1Rw,6791
|
177
177
|
dissect/target/plugins/filesystem/ntfs/usnjrnl.py,sha256=uiT1ipmcAo__6VIUi8R_vvIu22vdnjMACKwLSAbzYjs,3704
|
178
178
|
dissect/target/plugins/filesystem/ntfs/utils.py,sha256=xG7Lgw9NX4tDDrZVRm0vycFVJTOM7j-HrjqzDh0f4uA,3136
|
@@ -342,7 +342,7 @@ dissect/target/tools/mount.py,sha256=L_0tSmiBdW4aSaF0vXjB0bAkTC0kmT2N1hrbW6s5Jow
|
|
342
342
|
dissect/target/tools/query.py,sha256=ONHu2FVomLccikb84qBrlhNmEfRoHYFQMcahk_y2c9A,15580
|
343
343
|
dissect/target/tools/reg.py,sha256=FDsiBBDxjWVUBTRj8xn82vZe-J_d9piM-TKS3PHZCcM,3193
|
344
344
|
dissect/target/tools/shell.py,sha256=dmshIriwdd_UwrdUcTfWkcYD8Z0mjzbDqwyZG-snDdM,50482
|
345
|
-
dissect/target/tools/utils.py,sha256=
|
345
|
+
dissect/target/tools/utils.py,sha256=nnhjNW8v99eVZQ-CgxTbsi8Wa6Z2XKDFr1aWakgq9jc,12191
|
346
346
|
dissect/target/tools/yara.py,sha256=70k-2VMulf1EdkX03nCACzejaOEcsFHOyX-4E40MdQU,2044
|
347
347
|
dissect/target/tools/dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
348
348
|
dissect/target/tools/dump/run.py,sha256=aD84peRS4zHqC78fH7Vd4ni3m1ZmVP70LyMwBRvoDGY,9463
|
@@ -356,10 +356,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
|
|
356
356
|
dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
|
357
357
|
dissect/target/volumes/md.py,sha256=7ShPtusuLGaIv27SvEETtgsuoQyAa4iAAeOR1NEaajI,1689
|
358
358
|
dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
|
359
|
-
dissect.target-3.19.
|
360
|
-
dissect.target-3.19.
|
361
|
-
dissect.target-3.19.
|
362
|
-
dissect.target-3.19.
|
363
|
-
dissect.target-3.19.
|
364
|
-
dissect.target-3.19.
|
365
|
-
dissect.target-3.19.
|
359
|
+
dissect.target-3.19.dev54.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
|
360
|
+
dissect.target-3.19.dev54.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
361
|
+
dissect.target-3.19.dev54.dist-info/METADATA,sha256=-r6p7_zLix0JuJSqAsy6kbYzI0Cqn2w67fYb_DRYGAQ,12897
|
362
|
+
dissect.target-3.19.dev54.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
363
|
+
dissect.target-3.19.dev54.dist-info/entry_points.txt,sha256=BWuxAb_6AvUAQpIQOQU0IMTlaF6TDht2AIZK8bHd-zE,492
|
364
|
+
dissect.target-3.19.dev54.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
|
365
|
+
dissect.target-3.19.dev54.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{dissect.target-3.19.dev53.dist-info → dissect.target-3.19.dev54.dist-info}/entry_points.txt
RENAMED
File without changes
|
File without changes
|