-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathlibphdi.ini
More file actions
86 lines (77 loc) · 2.84 KB
/
libphdi.ini
File metadata and controls
86 lines (77 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
[project]
name: "libphdi"
status: "experimental"
year_of_creation: "2015"
data_format: "Parallels Hard Disk image (PHDI)"
documentation_url: "https://github.com/libyal/libphdi/tree/main/documentation"
features: ["debug_output", "ossfuzz", "python_bindings", "tools"]
[library]
build_dependencies: ["lex", "yacc"]
description: "Library to access the Parallels Hard Disk image (PHDI) format"
features: ["pthread", "wide_character_type"]
public_types: ["extent_descriptor", "handle", "image_descriptor", "snapshot"]
[tools]
build_dependencies: ["fuse"]
description: "Several tools for reading Parallels Hard Disk image (PHDI) files"
names: ["phdiinfo", "phdimount"]
[info_tool]
source_description: "a Parallels Hard Disk image file"
source_type: "image"
[mount_tool]
features: []
file_entry_type: "handle"
file_entry_type_size_value: "media_size"
mounted_description: "a device file that provides the RAW storage media data contained in the PHDI image"
source: "image/DiskDescriptor.xml"
source_description: "a PHDI image"
source_description_long: "a Parallels Hard Disk image file"
source_type: "image"
[troubleshooting]
example: "phdiinfo harddisk.hdd"
[development]
features: ["pytsk3"]
main_object: "handle"
main_object_filename: "harddisk.hdd"
main_object_post_open_python: [
"phdi_handle.open_extent_data_files()"]
main_object_post_open_file_object_python: [
"base_directory = os.path.dirname(filename)",
"",
"extent_data_files = []",
"for extent_descriptor in phdi_handle.extent_descriptors:",
" extent_data_filename = extent_descriptor.filename",
"",
" _, path_separator, filename = extent_data_filename.rpartition(\"/\")",
" if not path_separator:",
" _, path_separator, filename = extent_data_filename.rpartition(\"\\\\\")",
"",
" if not path_separator:",
" filename = extent_data_filename",
"",
" extent_data_file_path = os.path.join(base_directory, filename)",
"",
" if not os.path.exists(extent_data_file_path):",
" break",
"",
" extent_data_files.append(extent_data_file_path)",
"",
"if len(extent_data_files) != phdi_handle.number_of_extents:",
" raise RuntimeError(\"Unable to locate all extent data files.\")",
"",
"file_objects = []",
"for extent_data_file_path in extent_data_files:",
" file_object = open(extent_data_file_path, \"rb\")",
" file_objects.append(file_object)",
"",
"phdi_handle.open_extent_data_files_file_objects(file_objects)"]
main_object_size: "media_size"
[test_data]
path: "test_data/hfsplus.hdd"
repository: "log2timeline/dfvfs"
files: ["DiskDescriptor.xml", "hfsplus.hdd", "hfsplus.hdd.0.{5fbaabe3-6958-40ff-92a7-860e329aab41}.hds"]
[tests]
profiles: ["libphdi", "pyphdi", "phdiinfo"]
info_tool_options_per_profile: [""]
info_tool_profiles: ["phdiinfo"]
example_filename1: "harddisk.hdd"
example_filename2: "removable.hdd"