dissect.thumbcache 1.8.dev4__tar.gz → 1.9.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. {dissect.thumbcache-1.8.dev4/dissect.thumbcache.egg-info → dissect_thumbcache-1.9.dev1}/PKG-INFO +6 -3
  2. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/c_thumbcache.py +2 -3
  3. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/index.py +8 -5
  4. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/thumbcache_file.py +5 -5
  5. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1/dissect.thumbcache.egg-info}/PKG-INFO +6 -3
  6. dissect_thumbcache-1.9.dev1/dissect.thumbcache.egg-info/requires.txt +6 -0
  7. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/pyproject.toml +8 -2
  8. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tox.ini +1 -0
  9. dissect.thumbcache-1.8.dev4/dissect.thumbcache.egg-info/requires.txt +0 -2
  10. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/COPYRIGHT +0 -0
  11. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/LICENSE +0 -0
  12. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/MANIFEST.in +0 -0
  13. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/README.md +0 -0
  14. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/__init__.py +0 -0
  15. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/exceptions.py +0 -0
  16. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/thumbcache.py +0 -0
  17. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/tools/__init__.py +0 -0
  18. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/tools/extract_images.py +0 -0
  19. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/tools/extract_with_index.py +0 -0
  20. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/tools/utils.py +0 -0
  21. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect/thumbcache/util.py +0 -0
  22. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect.thumbcache.egg-info/SOURCES.txt +0 -0
  23. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect.thumbcache.egg-info/dependency_links.txt +0 -0
  24. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect.thumbcache.egg-info/entry_points.txt +0 -0
  25. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/dissect.thumbcache.egg-info/top_level.txt +0 -0
  26. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/setup.cfg +0 -0
  27. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/__init__.py +0 -0
  28. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_1280.db +0 -0
  29. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_16.db +0 -0
  30. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_1920.db +0 -0
  31. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_256.db +0 -0
  32. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_2560.db +0 -0
  33. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_32.db +0 -0
  34. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_48.db +0 -0
  35. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_768.db +0 -0
  36. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_96.db +0 -0
  37. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_custom_stream.db +0 -0
  38. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_exif.db +0 -0
  39. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_idx.db +0 -0
  40. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_sr.db +0 -0
  41. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_wide.db +0 -0
  42. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_10/thumbcache_wide_alternate.db +0 -0
  43. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_1280.db +0 -0
  44. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_16.db +0 -0
  45. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_1920.db +0 -0
  46. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_256.db +0 -0
  47. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_2560.db +0 -0
  48. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_32.db +0 -0
  49. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_48.db +0 -0
  50. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_768.db +0 -0
  51. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_96.db +0 -0
  52. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_custom_stream.db +0 -0
  53. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_exif.db +0 -0
  54. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_idx.db +0 -0
  55. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_sr.db +0 -0
  56. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_wide.db +0 -0
  57. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_11/thumbcache_wide_alternate.db +0 -0
  58. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_7/thumbcache_1024.db +0 -0
  59. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_7/thumbcache_256.db +0 -0
  60. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_7/thumbcache_32.db +0 -0
  61. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_7/thumbcache_96.db +0 -0
  62. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_7/thumbcache_idx.db +0 -0
  63. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_7/thumbcache_sr.db +0 -0
  64. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_1024.db +0 -0
  65. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_16.db +0 -0
  66. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_1600.db +0 -0
  67. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_256.db +0 -0
  68. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_32.db +0 -0
  69. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_48.db +0 -0
  70. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_96.db +0 -0
  71. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_exif.db +0 -0
  72. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_idx.db +0 -0
  73. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_sr.db +0 -0
  74. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_wide.db +0 -0
  75. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_81/thumbcache_wide_alternate.db +0 -0
  76. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_vista/thumbcache_1024.db +0 -0
  77. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_vista/thumbcache_256.db +0 -0
  78. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_vista/thumbcache_32.db +0 -0
  79. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_vista/thumbcache_96.db +0 -0
  80. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_vista/thumbcache_idx.db +0 -0
  81. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/data/windows_vista/thumbcache_sr.db +0 -0
  82. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/docs/Makefile +0 -0
  83. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/docs/conf.py +0 -0
  84. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/docs/index.rst +0 -0
  85. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/test_index.py +0 -0
  86. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/test_thumbcache.py +0 -0
  87. {dissect.thumbcache-1.8.dev4 → dissect_thumbcache-1.9.dev1}/tests/test_thumbcachefile.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.thumbcache
3
- Version: 1.8.dev4
3
+ Version: 1.9.dev1
4
4
  Summary: A Dissect module implementing parsers for the thumbcache of Windows systems.
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License: Affero General Public License v3
@@ -22,8 +22,11 @@ Requires-Python: ~=3.9
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  License-File: COPYRIGHT
25
- Requires-Dist: dissect.cstruct<4.0.dev,>=3.0.dev
26
- Requires-Dist: dissect.util<4.0.dev,>=3.0.dev
25
+ Requires-Dist: dissect.cstruct<5,>=4.0.dev
26
+ Requires-Dist: dissect.util<4,>=3
27
+ Provides-Extra: dev
28
+ Requires-Dist: dissect.cstruct<5.0.dev,>=4.0.dev; extra == "dev"
29
+ Requires-Dist: dissect.util<4.0.dev,>=3.0.dev; extra == "dev"
27
30
 
28
31
  # dissect.thumbcache
29
32
 
@@ -1,6 +1,6 @@
1
1
  from dissect.cstruct import cstruct
2
2
 
3
- c_thumbcache_index_def = """
3
+ thumbcache_index_def = """
4
4
  struct INDEX_HEADER_V1 {
5
5
  char Signature[4]; // 0x00
6
6
  uint32 Version; // 0x04
@@ -75,5 +75,4 @@ struct CACHE_ENTRY_VISTA {
75
75
  uint32 Unknown; // 0x28
76
76
  }; // 0x2C
77
77
  """
78
- c_thumbcache_index = cstruct()
79
- c_thumbcache_index.load(c_thumbcache_index_def)
78
+ c_thumbcache_index = cstruct().load(thumbcache_index_def)
@@ -3,7 +3,6 @@ from __future__ import annotations
3
3
  from datetime import datetime
4
4
  from typing import BinaryIO, Iterator
5
5
 
6
- from dissect.cstruct import Structure
7
6
  from dissect.util import ts
8
7
 
9
8
  from dissect.thumbcache.c_thumbcache import c_thumbcache_index
@@ -30,12 +29,12 @@ class ThumbnailIndex:
30
29
  self._header = None
31
30
 
32
31
  @property
33
- def header(self) -> Structure:
32
+ def header(self) -> c_thumbcache_index.INDEX_HEADER_V1 | c_thumbcache_index.INDEX_HEADER_V2:
34
33
  if self._header is None:
35
34
  self._header = self._find_header(self.fh)
36
35
  return self._header
37
36
 
38
- def _find_header(self, fh: BinaryIO) -> Structure:
37
+ def _find_header(self, fh: BinaryIO) -> c_thumbcache_index.INDEX_HEADER_V1 | c_thumbcache_index.INDEX_HEADER_V2:
39
38
  """Searches for the header signature, and puts ``fh`` at the correct position.
40
39
 
41
40
  From Windows 8.1 onward, the two fields seem to use a 64-bit format field
@@ -118,12 +117,16 @@ class IndexEntry:
118
117
  self._data = None
119
118
 
120
119
  @property
121
- def header(self) -> Structure:
120
+ def header(
121
+ self,
122
+ ) -> c_thumbcache_index.VISTA_ENTRY | c_thumbcache_index.WINDOWS7_ENTRY | c_thumbcache_index.WINDOWS8_ENTRY:
122
123
  if not self._header:
123
124
  self._header = self._select_header()
124
125
  return self._header
125
126
 
126
- def _select_header(self) -> Structure:
127
+ def _select_header(
128
+ self,
129
+ ) -> c_thumbcache_index.VISTA_ENTRY | c_thumbcache_index.WINDOWS7_ENTRY | c_thumbcache_index.WINDOWS8_ENTRY:
127
130
  """Selects header version according to the thumbnailtype."""
128
131
  if self.type == ThumbnailType.WINDOWS_VISTA:
129
132
  return c_thumbcache_index.VISTA_ENTRY(self.fh)
@@ -2,8 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Any, BinaryIO
4
4
 
5
- from dissect.cstruct import Structure
6
-
7
5
  from dissect.thumbcache.c_thumbcache import c_thumbcache_index
8
6
  from dissect.thumbcache.exceptions import (
9
7
  InvalidSignatureError,
@@ -41,7 +39,7 @@ class ThumbcacheFile:
41
39
  self._header = self._get_header_type(self.fh)
42
40
  self._cached_entries: dict[int, ThumbcacheEntry] = {}
43
41
 
44
- def _get_header_type(self, fh: BinaryIO) -> Structure:
42
+ def _get_header_type(self, fh: BinaryIO) -> c_thumbcache_index.CACHE_HEADER_VISTA | c_thumbcache_index.CACHE_HEADER:
45
43
  tmp_header = c_thumbcache_index.CACHE_HEADER(fh)
46
44
 
47
45
  if self._signature != tmp_header.Signature:
@@ -55,7 +53,7 @@ class ThumbcacheFile:
55
53
  return tmp_header
56
54
 
57
55
  @property
58
- def header(self) -> Structure:
56
+ def header(self) -> c_thumbcache_index.CACHE_HEADER_VISTA | c_thumbcache_index.CACHE_HEADER:
59
57
  return self._header
60
58
 
61
59
  @property
@@ -134,7 +132,9 @@ class ThumbcacheEntry:
134
132
 
135
133
  self._data = fh.read(self._header.Size - header_size)
136
134
 
137
- def _get_header(self, thumbnail_type: ThumbnailType) -> type[Structure]:
135
+ def _get_header(
136
+ self, thumbnail_type: ThumbnailType
137
+ ) -> type[c_thumbcache_index.CACHE_ENTRY_VISTA | c_thumbcache_index.CACHE_ENTRY]:
138
138
  if thumbnail_type == ThumbnailType.WINDOWS_VISTA:
139
139
  return c_thumbcache_index.CACHE_ENTRY_VISTA
140
140
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.thumbcache
3
- Version: 1.8.dev4
3
+ Version: 1.9.dev1
4
4
  Summary: A Dissect module implementing parsers for the thumbcache of Windows systems.
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License: Affero General Public License v3
@@ -22,8 +22,11 @@ Requires-Python: ~=3.9
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  License-File: COPYRIGHT
25
- Requires-Dist: dissect.cstruct<4.0.dev,>=3.0.dev
26
- Requires-Dist: dissect.util<4.0.dev,>=3.0.dev
25
+ Requires-Dist: dissect.cstruct<5,>=4.0.dev
26
+ Requires-Dist: dissect.util<4,>=3
27
+ Provides-Extra: dev
28
+ Requires-Dist: dissect.cstruct<5.0.dev,>=4.0.dev; extra == "dev"
29
+ Requires-Dist: dissect.util<4.0.dev,>=3.0.dev; extra == "dev"
27
30
 
28
31
  # dissect.thumbcache
29
32
 
@@ -0,0 +1,6 @@
1
+ dissect.cstruct<5,>=4.0.dev
2
+ dissect.util<4,>=3
3
+
4
+ [dev]
5
+ dissect.cstruct<5.0.dev,>=4.0.dev
6
+ dissect.util<4.0.dev,>=3.0.dev
@@ -25,8 +25,8 @@ classifiers = [
25
25
  "Topic :: Utilities",
26
26
  ]
27
27
  dependencies = [
28
- "dissect.cstruct>=3.0.dev,<4.0.dev",
29
- "dissect.util>=3.0.dev,<4.0.dev",
28
+ "dissect.cstruct>=4.0.dev,<5",
29
+ "dissect.util>=3,<4",
30
30
  ]
31
31
  dynamic = ["version"]
32
32
 
@@ -35,6 +35,12 @@ homepage = "https://dissect.tools"
35
35
  documentation = "https://docs.dissect.tools/en/latest/projects/dissect.thumbcache"
36
36
  repository = "https://github.com/fox-it/dissect.thumbcache"
37
37
 
38
+ [project.optional-dependencies]
39
+ dev = [
40
+ "dissect.cstruct>=4.0.dev,<5.0.dev",
41
+ "dissect.util>=3.0.dev,<4.0.dev",
42
+ ]
43
+
38
44
  [project.scripts]
39
45
  thumbcache-extract = "dissect.thumbcache.tools.extract_images:main"
40
46
  thumbcache-extract-indexed = "dissect.thumbcache.tools.extract_with_index:main"
@@ -11,6 +11,7 @@ minversion = 4.4.3
11
11
  requires = virtualenv>=20.16.6
12
12
 
13
13
  [testenv]
14
+ extras = dev
14
15
  deps =
15
16
  pytest
16
17
  pytest-cov
@@ -1,2 +0,0 @@
1
- dissect.cstruct<4.0.dev,>=3.0.dev
2
- dissect.util<4.0.dev,>=3.0.dev