dissect.target 3.20.dev40__tar.gz → 3.20.dev43__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 (654) hide show
  1. {dissect_target-3.20.dev40/dissect.target.egg-info → dissect_target-3.20.dev43}/PKG-INFO +1 -1
  2. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/data/windowsZones.xml +19 -23
  3. dissect_target-3.20.dev43/dissect/target/plugins/general/loaders.py +39 -0
  4. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/plugins.py +50 -11
  5. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/query.py +15 -6
  6. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43/dissect.target.egg-info}/PKG-INFO +1 -1
  7. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/general/test_plugins.py +4 -4
  8. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_query.py +54 -0
  9. dissect_target-3.20.dev40/dissect/target/plugins/general/loaders.py +0 -26
  10. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/COPYRIGHT +0 -0
  11. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/LICENSE +0 -0
  12. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/MANIFEST.in +0 -0
  13. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/README.md +0 -0
  14. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/__init__.py +0 -0
  15. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/container.py +0 -0
  16. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/__init__.py +0 -0
  17. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/asdf.py +0 -0
  18. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/ewf.py +0 -0
  19. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/fortifw.py +0 -0
  20. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/hdd.py +0 -0
  21. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/hds.py +0 -0
  22. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/qcow2.py +0 -0
  23. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/raw.py +0 -0
  24. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/split.py +0 -0
  25. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/vdi.py +0 -0
  26. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/vhd.py +0 -0
  27. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/vhdx.py +0 -0
  28. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/containers/vmdk.py +0 -0
  29. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/data/autocompletion/target_bash_completion.sh +0 -0
  30. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/exceptions.py +0 -0
  31. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystem.py +0 -0
  32. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/__init__.py +0 -0
  33. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/ad1.py +0 -0
  34. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/btrfs.py +0 -0
  35. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/cb.py +0 -0
  36. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/config.py +0 -0
  37. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/cpio.py +0 -0
  38. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/dir.py +0 -0
  39. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/exfat.py +0 -0
  40. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/extfs.py +0 -0
  41. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/fat.py +0 -0
  42. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/ffs.py +0 -0
  43. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/itunes.py +0 -0
  44. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/jffs.py +0 -0
  45. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/ntfs.py +0 -0
  46. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/overlay.py +0 -0
  47. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/smb.py +0 -0
  48. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/squashfs.py +0 -0
  49. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/tar.py +0 -0
  50. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/vmfs.py +0 -0
  51. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/vmtar.py +0 -0
  52. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/xfs.py +0 -0
  53. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/filesystems/zip.py +0 -0
  54. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/__init__.py +0 -0
  55. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/cache.py +0 -0
  56. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/compat/__init__.py +0 -0
  57. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/compat/path_310.py +0 -0
  58. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/compat/path_311.py +0 -0
  59. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/compat/path_312.py +0 -0
  60. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/compat/path_39.py +0 -0
  61. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/compat/path_common.py +0 -0
  62. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/config.py +0 -0
  63. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/configutil.py +0 -0
  64. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/cyber.py +0 -0
  65. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/descriptor_extensions.py +0 -0
  66. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/docs.py +0 -0
  67. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/fsutil.py +0 -0
  68. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/hashutil.py +0 -0
  69. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/keychain.py +0 -0
  70. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/lazy.py +0 -0
  71. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/loaderutil.py +0 -0
  72. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/localeutil.py +0 -0
  73. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/mount.py +0 -0
  74. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/mui.py +0 -0
  75. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/polypath.py +0 -0
  76. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/protobuf.py +0 -0
  77. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/record.py +0 -0
  78. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/record_modifier.py +0 -0
  79. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/regutil.py +0 -0
  80. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/shell_application_ids.py +0 -0
  81. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/shell_folder_ids.py +0 -0
  82. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/helpers/utils.py +0 -0
  83. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loader.py +0 -0
  84. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/__init__.py +0 -0
  85. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/ab.py +0 -0
  86. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/ad1.py +0 -0
  87. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/asdf.py +0 -0
  88. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/cb.py +0 -0
  89. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/cyber.py +0 -0
  90. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/dir.py +0 -0
  91. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/hyperv.py +0 -0
  92. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/itunes.py +0 -0
  93. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/kape.py +0 -0
  94. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/libvirt.py +0 -0
  95. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/local.py +0 -0
  96. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/log.py +0 -0
  97. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/mqtt.py +0 -0
  98. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/multiraw.py +0 -0
  99. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/ova.py +0 -0
  100. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/overlay.py +0 -0
  101. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/ovf.py +0 -0
  102. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/phobos.py +0 -0
  103. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/profile.py +0 -0
  104. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/pvm.py +0 -0
  105. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/pvs.py +0 -0
  106. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/raw.py +0 -0
  107. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/remote.py +0 -0
  108. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/res.py +0 -0
  109. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/smb.py +0 -0
  110. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/tanium.py +0 -0
  111. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/tar.py +0 -0
  112. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/target.py +0 -0
  113. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/utm.py +0 -0
  114. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/vb.py +0 -0
  115. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/vbox.py +0 -0
  116. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/velociraptor.py +0 -0
  117. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/vma.py +0 -0
  118. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/vmwarevm.py +0 -0
  119. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/vmx.py +0 -0
  120. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/loaders/xva.py +0 -0
  121. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugin.py +0 -0
  122. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/__init__.py +0 -0
  123. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/__init__.py +0 -0
  124. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/av/__init__.py +0 -0
  125. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/av/mcafee.py +0 -0
  126. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/av/sophos.py +0 -0
  127. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/av/symantec.py +0 -0
  128. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/av/trendmicro.py +0 -0
  129. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/browser/__init__.py +0 -0
  130. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/browser/brave.py +0 -0
  131. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/browser/browser.py +0 -0
  132. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/browser/chrome.py +0 -0
  133. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/browser/chromium.py +0 -0
  134. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/browser/edge.py +0 -0
  135. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/browser/firefox.py +0 -0
  136. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/browser/iexplore.py +0 -0
  137. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/container/__init__.py +0 -0
  138. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/container/docker.py +0 -0
  139. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/editor/__init__.py +0 -0
  140. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/editor/editor.py +0 -0
  141. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/editor/windowsnotepad.py +0 -0
  142. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/other/__init__.py +0 -0
  143. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/other/env.py +0 -0
  144. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/remoteaccess/__init__.py +0 -0
  145. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/remoteaccess/anydesk.py +0 -0
  146. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/remoteaccess/remoteaccess.py +0 -0
  147. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/remoteaccess/teamviewer.py +0 -0
  148. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/shell/__init__.py +0 -0
  149. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/shell/powershell.py +0 -0
  150. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/shell/wget.py +0 -0
  151. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/ssh/__init__.py +0 -0
  152. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/ssh/openssh.py +0 -0
  153. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/ssh/opensshd.py +0 -0
  154. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/ssh/putty.py +0 -0
  155. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/ssh/ssh.py +0 -0
  156. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/virtualization/__init__.py +0 -0
  157. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/virtualization/vmware_workstation.py +0 -0
  158. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/vpn/__init__.py +0 -0
  159. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/vpn/openvpn.py +0 -0
  160. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/vpn/wireguard.py +0 -0
  161. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webhosting/__init__.py +0 -0
  162. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webhosting/cpanel.py +0 -0
  163. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webserver/__init__.py +0 -0
  164. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webserver/apache.py +0 -0
  165. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webserver/caddy.py +0 -0
  166. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webserver/citrix.py +0 -0
  167. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webserver/iis.py +0 -0
  168. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webserver/nginx.py +0 -0
  169. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/apps/webserver/webserver.py +0 -0
  170. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/__init__.py +0 -0
  171. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/docker.py +0 -0
  172. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/esxi.py +0 -0
  173. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/hyperv.py +0 -0
  174. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/parallels.py +0 -0
  175. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/qemu.py +0 -0
  176. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/virtuozzo.py +0 -0
  177. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/vmware_workstation.py +0 -0
  178. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/child/wsl.py +0 -0
  179. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/__init__.py +0 -0
  180. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/acquire_handles.py +0 -0
  181. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/acquire_hash.py +0 -0
  182. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/icat.py +0 -0
  183. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/ntfs/__init__.py +0 -0
  184. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/ntfs/mft.py +0 -0
  185. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/ntfs/mft_timeline.py +0 -0
  186. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/ntfs/usnjrnl.py +0 -0
  187. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/ntfs/utils.py +0 -0
  188. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/resolver.py +0 -0
  189. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/unix/__init__.py +0 -0
  190. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/unix/capability.py +0 -0
  191. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/unix/suid.py +0 -0
  192. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/walkfs.py +0 -0
  193. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/filesystem/yara.py +0 -0
  194. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/__init__.py +0 -0
  195. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/config.py +0 -0
  196. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/default.py +0 -0
  197. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/example.py +0 -0
  198. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/network.py +0 -0
  199. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/osinfo.py +0 -0
  200. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/scrape.py +0 -0
  201. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/general/users.py +0 -0
  202. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/__init__.py +0 -0
  203. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/__init__.py +0 -0
  204. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/_os.py +0 -0
  205. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/applications.py +0 -0
  206. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/__init__.py +0 -0
  207. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/_os.py +0 -0
  208. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/citrix/__init__.py +0 -0
  209. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/citrix/_os.py +0 -0
  210. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/citrix/history.py +0 -0
  211. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/freebsd/__init__.py +0 -0
  212. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/freebsd/_os.py +0 -0
  213. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/ios/__init__.py +0 -0
  214. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/ios/_os.py +0 -0
  215. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/openbsd/__init__.py +0 -0
  216. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/openbsd/_os.py +0 -0
  217. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/osx/__init__.py +0 -0
  218. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/osx/_os.py +0 -0
  219. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/osx/network.py +0 -0
  220. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/bsd/osx/user.py +0 -0
  221. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/cronjobs.py +0 -0
  222. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/datetime.py +0 -0
  223. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/esxi/__init__.py +0 -0
  224. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/esxi/_os.py +0 -0
  225. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/etc/__init__.py +0 -0
  226. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/etc/etc.py +0 -0
  227. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/generic.py +0 -0
  228. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/history.py +0 -0
  229. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/__init__.py +0 -0
  230. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/_os.py +0 -0
  231. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/android/__init__.py +0 -0
  232. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/android/_os.py +0 -0
  233. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/cmdline.py +0 -0
  234. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/debian/__init__.py +0 -0
  235. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/debian/_os.py +0 -0
  236. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/debian/apt.py +0 -0
  237. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/debian/dpkg.py +0 -0
  238. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/debian/snap.py +0 -0
  239. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/debian/vyos/__init__.py +0 -0
  240. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/debian/vyos/_os.py +0 -0
  241. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/environ.py +0 -0
  242. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/fortios/__init__.py +0 -0
  243. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/fortios/_keys.py +0 -0
  244. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/fortios/_os.py +0 -0
  245. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/fortios/generic.py +0 -0
  246. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/fortios/locale.py +0 -0
  247. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/iptables.py +0 -0
  248. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/modules.py +0 -0
  249. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/netstat.py +0 -0
  250. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/network_managers.py +0 -0
  251. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/proc.py +0 -0
  252. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/processes.py +0 -0
  253. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/redhat/__init__.py +0 -0
  254. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/redhat/_os.py +0 -0
  255. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/redhat/yum.py +0 -0
  256. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/services.py +0 -0
  257. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/sockets.py +0 -0
  258. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/suse/__init__.py +0 -0
  259. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/suse/_os.py +0 -0
  260. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/linux/suse/zypper.py +0 -0
  261. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/locale.py +0 -0
  262. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/locate/__init__.py +0 -0
  263. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/locate/gnulocate.py +0 -0
  264. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/locate/locate.py +0 -0
  265. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/locate/mlocate.py +0 -0
  266. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/locate/plocate.py +0 -0
  267. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/log/__init__.py +0 -0
  268. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/log/atop.py +0 -0
  269. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/log/audit.py +0 -0
  270. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/log/auth.py +0 -0
  271. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/log/journal.py +0 -0
  272. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/log/lastlog.py +0 -0
  273. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/log/messages.py +0 -0
  274. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/log/utmp.py +0 -0
  275. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/packagemanager.py +0 -0
  276. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/shadow.py +0 -0
  277. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/unix/trash.py +0 -0
  278. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/__init__.py +0 -0
  279. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/_os.py +0 -0
  280. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/activitiescache.py +0 -0
  281. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/adpolicy.py +0 -0
  282. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/amcache.py +0 -0
  283. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/catroot.py +0 -0
  284. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/cim.py +0 -0
  285. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/clfs.py +0 -0
  286. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/credential/__init__.py +0 -0
  287. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/credential/credhist.py +0 -0
  288. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/credential/lsa.py +0 -0
  289. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/credential/sam.py +0 -0
  290. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/datetime.py +0 -0
  291. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/defender.py +0 -0
  292. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/defender_helpers/__init__.py +0 -0
  293. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/defender_helpers/defender_patterns.py +0 -0
  294. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/defender_helpers/defender_records.py +0 -0
  295. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/__init__.py +0 -0
  296. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/blob.py +0 -0
  297. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/crypto.py +0 -0
  298. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/dpapi.py +0 -0
  299. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/keyprovider/__init__.py +0 -0
  300. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/keyprovider/credhist.py +0 -0
  301. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/keyprovider/empty.py +0 -0
  302. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/keyprovider/keychain.py +0 -0
  303. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/keyprovider/keyprovider.py +0 -0
  304. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/keyprovider/lsa.py +0 -0
  305. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/dpapi/master_key.py +0 -0
  306. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/env.py +0 -0
  307. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/exchange/__init__.py +0 -0
  308. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/exchange/exchange.py +0 -0
  309. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/generic.py +0 -0
  310. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/jumplist.py +0 -0
  311. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/lnk.py +0 -0
  312. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/locale.py +0 -0
  313. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/log/__init__.py +0 -0
  314. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/log/amcache.py +0 -0
  315. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/log/etl.py +0 -0
  316. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/log/evt.py +0 -0
  317. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/log/evtx.py +0 -0
  318. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/log/pfro.py +0 -0
  319. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/log/schedlgu.py +0 -0
  320. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/network.py +0 -0
  321. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/notifications.py +0 -0
  322. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/prefetch.py +0 -0
  323. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/recyclebin.py +0 -0
  324. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/7zip.py +0 -0
  325. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/__init__.py +0 -0
  326. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/applications.py +0 -0
  327. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/appxdebugkeys.py +0 -0
  328. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/auditpol.py +0 -0
  329. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/bam.py +0 -0
  330. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/cit.py +0 -0
  331. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/clsid.py +0 -0
  332. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/firewall.py +0 -0
  333. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/mru.py +0 -0
  334. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/muicache.py +0 -0
  335. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/nethist.py +0 -0
  336. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/recentfilecache.py +0 -0
  337. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/regf.py +0 -0
  338. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/runkeys.py +0 -0
  339. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/shellbags.py +0 -0
  340. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/shimcache.py +0 -0
  341. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/trusteddocs.py +0 -0
  342. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/usb.py +0 -0
  343. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/regf/userassist.py +0 -0
  344. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/registry.py +0 -0
  345. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/services.py +0 -0
  346. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/sru.py +0 -0
  347. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/startupinfo.py +0 -0
  348. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/syscache.py +0 -0
  349. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/task_helpers/__init__.py +0 -0
  350. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/task_helpers/tasks_job.py +0 -0
  351. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/task_helpers/tasks_records.py +0 -0
  352. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/task_helpers/tasks_xml.py +0 -0
  353. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/tasks.py +0 -0
  354. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/thumbcache.py +0 -0
  355. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/ual.py +0 -0
  356. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/wer.py +0 -0
  357. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/plugins/os/windows/wua_history.py +0 -0
  358. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/report.py +0 -0
  359. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/target.py +0 -0
  360. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/__init__.py +0 -0
  361. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/build_pluginlist.py +0 -0
  362. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/dd.py +0 -0
  363. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/dump/__init__.py +0 -0
  364. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/dump/run.py +0 -0
  365. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/dump/state.py +0 -0
  366. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/dump/utils.py +0 -0
  367. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/fs.py +0 -0
  368. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/fsutils.py +0 -0
  369. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/info.py +0 -0
  370. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/logging.py +0 -0
  371. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/mount.py +0 -0
  372. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/reg.py +0 -0
  373. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/shell.py +0 -0
  374. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/utils.py +0 -0
  375. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/tools/yara.py +0 -0
  376. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volume.py +0 -0
  377. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volumes/__init__.py +0 -0
  378. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volumes/bde.py +0 -0
  379. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volumes/ddf.py +0 -0
  380. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volumes/disk.py +0 -0
  381. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volumes/luks.py +0 -0
  382. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volumes/lvm.py +0 -0
  383. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volumes/md.py +0 -0
  384. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect/target/volumes/vmfs.py +0 -0
  385. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect.target.egg-info/SOURCES.txt +0 -0
  386. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect.target.egg-info/dependency_links.txt +0 -0
  387. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect.target.egg-info/entry_points.txt +0 -0
  388. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect.target.egg-info/requires.txt +0 -0
  389. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/dissect.target.egg-info/top_level.txt +0 -0
  390. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/pyproject.toml +0 -0
  391. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/setup.cfg +0 -0
  392. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/__init__.py +0 -0
  393. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/_docs/Makefile +0 -0
  394. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/_docs/conf.py +0 -0
  395. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/_docs/index.rst +0 -0
  396. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/_utils.py +0 -0
  397. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/conftest.py +0 -0
  398. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/containers/__init__.py +0 -0
  399. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/containers/test_fortifw.py +0 -0
  400. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/containers/test_split.py +0 -0
  401. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/__init__.py +0 -0
  402. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_btrfs.py +0 -0
  403. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_cb.py +0 -0
  404. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_config.py +0 -0
  405. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_cpio.py +0 -0
  406. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_dir.py +0 -0
  407. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_exfat.py +0 -0
  408. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_extfs.py +0 -0
  409. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_fat.py +0 -0
  410. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_jffs2.py +0 -0
  411. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_ntfs.py +0 -0
  412. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_overlay.py +0 -0
  413. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_smb.py +0 -0
  414. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_tar.py +0 -0
  415. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_vmtar.py +0 -0
  416. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_xfs.py +0 -0
  417. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/filesystems/test_zip.py +0 -0
  418. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/__init__.py +0 -0
  419. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_cache.py +0 -0
  420. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_config.py +0 -0
  421. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_configutil.py +0 -0
  422. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_docs.py +0 -0
  423. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_fsutil.py +0 -0
  424. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_hashutil.py +0 -0
  425. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_keychain.py +0 -0
  426. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_loaderutil.py +0 -0
  427. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_localeutil.py +0 -0
  428. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_modifier.py +0 -0
  429. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_protobuf.py +0 -0
  430. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_record.py +0 -0
  431. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_regutil.py +0 -0
  432. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/helpers/test_utils.py +0 -0
  433. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/__init__.py +0 -0
  434. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_ab.py +0 -0
  435. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_asdf.py +0 -0
  436. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_cb.py +0 -0
  437. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_dir.py +0 -0
  438. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_hyperv.py +0 -0
  439. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_kape.py +0 -0
  440. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_libvirt.py +0 -0
  441. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_local.py +0 -0
  442. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_log.py +0 -0
  443. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_mqtt.py +0 -0
  444. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_multiraw.py +0 -0
  445. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_ova.py +0 -0
  446. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_overlay.py +0 -0
  447. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_ovf.py +0 -0
  448. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_phobos.py +0 -0
  449. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_pvm.py +0 -0
  450. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_pvs.py +0 -0
  451. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_remote.py +0 -0
  452. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_smb.py +0 -0
  453. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_tanium.py +0 -0
  454. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_tar.py +0 -0
  455. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_utm.py +0 -0
  456. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_vbox.py +0 -0
  457. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_velociraptor.py +0 -0
  458. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/loaders/test_vmwarevm.py +0 -0
  459. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/__init__.py +0 -0
  460. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/__init__.py +0 -0
  461. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/av/__init__.py +0 -0
  462. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/av/test_mcafee.py +0 -0
  463. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/av/test_sophos.py +0 -0
  464. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/av/test_symantec.py +0 -0
  465. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/av/test_trendmicro.py +0 -0
  466. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/browser/__init__.py +0 -0
  467. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/browser/test_brave.py +0 -0
  468. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/browser/test_chrome.py +0 -0
  469. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/browser/test_chromium.py +0 -0
  470. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/browser/test_edge.py +0 -0
  471. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/browser/test_firefox.py +0 -0
  472. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/browser/test_iexplore.py +0 -0
  473. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/container/__init__.py +0 -0
  474. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/container/test_docker.py +0 -0
  475. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/editor/__init__.py +0 -0
  476. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/editor/test_windowsnotepad.py +0 -0
  477. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/other/__init__.py +0 -0
  478. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/other/test_envfile.py +0 -0
  479. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/remoteaccess/__init__.py +0 -0
  480. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/remoteaccess/test_anydesk.py +0 -0
  481. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/remoteaccess/test_teamviewer.py +0 -0
  482. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/shell/__init__.py +0 -0
  483. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/shell/test_powershell.py +0 -0
  484. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/shell/test_wget.py +0 -0
  485. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/ssh/__init__.py +0 -0
  486. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/ssh/test_openssh.py +0 -0
  487. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/ssh/test_opensshd.py +0 -0
  488. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/ssh/test_putty.py +0 -0
  489. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/virtualization/__init__.py +0 -0
  490. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/virtualization/test_vmware_workstation.py +0 -0
  491. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/vpn/__init__.py +0 -0
  492. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/vpn/test_openvpn.py +0 -0
  493. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/vpn/test_wireguard.py +0 -0
  494. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webhosting/__init__.py +0 -0
  495. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webhosting/test_cpanel.py +0 -0
  496. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webserver/__init__.py +0 -0
  497. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webserver/test_apache.py +0 -0
  498. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webserver/test_caddy.py +0 -0
  499. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webserver/test_citrix.py +0 -0
  500. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webserver/test_iis.py +0 -0
  501. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webserver/test_nginx.py +0 -0
  502. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/apps/webserver/test_webserver.py +0 -0
  503. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/child/__init__.py +0 -0
  504. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/child/test_docker.py +0 -0
  505. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/child/test_hyperv.py +0 -0
  506. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/child/test_parallels.py +0 -0
  507. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/child/test_qemu.py +0 -0
  508. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/child/test_virtuozzo.py +0 -0
  509. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/child/test_vmware_workstation.py +0 -0
  510. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/child/test_wsl.py +0 -0
  511. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/__init__.py +0 -0
  512. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/ntfs/__init__.py +0 -0
  513. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/ntfs/test_mft.py +0 -0
  514. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/ntfs/test_usnjrnl.py +0 -0
  515. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/test_acquire_handles.py +0 -0
  516. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/test_acquire_hash.py +0 -0
  517. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/test_icat.py +0 -0
  518. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/test_resolver.py +0 -0
  519. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/test_walkfs.py +0 -0
  520. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/test_yara.py +0 -0
  521. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/unix/__init__.py +0 -0
  522. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/unix/test_capability.py +0 -0
  523. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/filesystem/unix/test_suid.py +0 -0
  524. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/general/__init__.py +0 -0
  525. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/general/test_config.py +0 -0
  526. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/general/test_default.py +0 -0
  527. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/general/test_network.py +0 -0
  528. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/general/test_scrape.py +0 -0
  529. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/general/test_users.py +0 -0
  530. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/__init__.py +0 -0
  531. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/__init__.py +0 -0
  532. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/bsd/__init__.py +0 -0
  533. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/bsd/citrix/__init__.py +0 -0
  534. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/bsd/citrix/test__os.py +0 -0
  535. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/bsd/citrix/test_history.py +0 -0
  536. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/bsd/osx/__init__.py +0 -0
  537. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/bsd/osx/test__os.py +0 -0
  538. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/bsd/osx/test_network.py +0 -0
  539. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/bsd/osx/test_user.py +0 -0
  540. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/esxi/__init__.py +0 -0
  541. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/esxi/test__os.py +0 -0
  542. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/__init__.py +0 -0
  543. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/android/__init__.py +0 -0
  544. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/android/test__os.py +0 -0
  545. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/debian/__init__.py +0 -0
  546. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/debian/test_apt.py +0 -0
  547. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/debian/test_dpkg.py +0 -0
  548. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/debian/test_snap.py +0 -0
  549. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/fortios/test_keys.py +0 -0
  550. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/redhat/__init__.py +0 -0
  551. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/redhat/test_yum.py +0 -0
  552. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/suse/__init__.py +0 -0
  553. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/suse/test_zypper.py +0 -0
  554. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test__os.py +0 -0
  555. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_cmdline.py +0 -0
  556. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_environ.py +0 -0
  557. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_iptables.py +0 -0
  558. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_modules.py +0 -0
  559. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_netstat.py +0 -0
  560. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_proc.py +0 -0
  561. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_processes.py +0 -0
  562. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_services.py +0 -0
  563. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/linux/test_sockets.py +0 -0
  564. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/locate/__init__.py +0 -0
  565. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/locate/test_gnulocate.py +0 -0
  566. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/locate/test_mlocate.py +0 -0
  567. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/locate/test_plocate.py +0 -0
  568. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/log/__init__.py +0 -0
  569. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/log/test_atop.py +0 -0
  570. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/log/test_audit.py +0 -0
  571. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/log/test_auth.py +0 -0
  572. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/log/test_journal.py +0 -0
  573. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/log/test_lastlog.py +0 -0
  574. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/log/test_messages.py +0 -0
  575. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/log/test_utmp.py +0 -0
  576. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test__os.py +0 -0
  577. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_applications.py +0 -0
  578. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_generic.py +0 -0
  579. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_history.py +0 -0
  580. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_ips.py +0 -0
  581. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_locale.py +0 -0
  582. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_packagemanager.py +0 -0
  583. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_shadow.py +0 -0
  584. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_trash.py +0 -0
  585. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_users.py +0 -0
  586. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/unix/test_version.py +0 -0
  587. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/__init__.py +0 -0
  588. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/credential/__init__.py +0 -0
  589. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/credential/test_credhist.py +0 -0
  590. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/credential/test_lsa.py +0 -0
  591. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/credential/test_sam.py +0 -0
  592. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/log/test_etl.py +0 -0
  593. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/log/test_evt.py +0 -0
  594. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/log/test_evtx.py +0 -0
  595. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/log/test_schedlgu.py +0 -0
  596. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/__init__.py +0 -0
  597. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_applications.py +0 -0
  598. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_appxdebugkeys.py +0 -0
  599. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_cit.py +0 -0
  600. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_clsid.py +0 -0
  601. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_muicache.py +0 -0
  602. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_shellbags.py +0 -0
  603. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_trusteddocs.py +0 -0
  604. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_usb.py +0 -0
  605. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/regf/test_userassist.py +0 -0
  606. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test__os.py +0 -0
  607. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_adpolicy.py +0 -0
  608. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_amcache.py +0 -0
  609. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_catroot.py +0 -0
  610. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_clfs.py +0 -0
  611. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_datetime.py +0 -0
  612. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_defender.py +0 -0
  613. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_dpapi.py +0 -0
  614. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_env.py +0 -0
  615. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_generic.py +0 -0
  616. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_jumplist.py +0 -0
  617. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_lnk.py +0 -0
  618. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_locale.py +0 -0
  619. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_mru.py +0 -0
  620. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_network.py +0 -0
  621. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_notifications.py +0 -0
  622. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_prefetch.py +0 -0
  623. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_recyclebin.py +0 -0
  624. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_registry.py +0 -0
  625. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_shimcache.py +0 -0
  626. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_sru.py +0 -0
  627. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_syscache.py +0 -0
  628. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_tasks.py +0 -0
  629. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_thumbcache.py +0 -0
  630. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_ual.py +0 -0
  631. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_wer.py +0 -0
  632. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/plugins/os/windows/test_wua_history.py +0 -0
  633. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/test_container.py +0 -0
  634. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/test_filesystem.py +0 -0
  635. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/test_plugin.py +0 -0
  636. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/test_registration.py +0 -0
  637. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/test_report.py +0 -0
  638. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/test_target.py +0 -0
  639. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/test_tests.py +0 -0
  640. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/test_volume.py +0 -0
  641. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/__init__.py +0 -0
  642. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_dump.py +0 -0
  643. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_fs.py +0 -0
  644. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_fsutils.py +0 -0
  645. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_info.py +0 -0
  646. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_mount.py +0 -0
  647. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_reg.py +0 -0
  648. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_shell.py +0 -0
  649. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_utils.py +0 -0
  650. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/tools/test_yara.py +0 -0
  651. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/volumes/__init__.py +0 -0
  652. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/volumes/test_bde.py +0 -0
  653. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tests/volumes/test_md.py +0 -0
  654. {dissect_target-3.20.dev40 → dissect_target-3.20.dev43}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.20.dev40
3
+ Version: 3.20.dev43
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
@@ -5,8 +5,9 @@ Copyright © 1991-2013 Unicode, Inc.
5
5
  CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
6
6
  For terms of use, see http://www.unicode.org/copyright.html
7
7
 
8
- NOTE: This file should be updated every ~6 months.
9
- Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/windowsZones.xml
8
+ NOTE: This file should be updated every ~6 months.
9
+ Updated at: 2024-10-28
10
+ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/windowsZones.xml
10
11
  -->
11
12
 
12
13
  <supplementalData>
@@ -33,7 +34,6 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
33
34
  <mapZone other="Hawaiian Standard Time" territory="001" type="Pacific/Honolulu"/>
34
35
  <mapZone other="Hawaiian Standard Time" territory="CK" type="Pacific/Rarotonga"/>
35
36
  <mapZone other="Hawaiian Standard Time" territory="PF" type="Pacific/Tahiti"/>
36
- <mapZone other="Hawaiian Standard Time" territory="UM" type="Pacific/Johnston"/>
37
37
  <mapZone other="Hawaiian Standard Time" territory="US" type="Pacific/Honolulu"/>
38
38
  <mapZone other="Hawaiian Standard Time" territory="ZZ" type="Etc/GMT+10"/>
39
39
 
@@ -52,7 +52,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
52
52
 
53
53
  <!-- (UTC-08:00) Baja California -->
54
54
  <mapZone other="Pacific Standard Time (Mexico)" territory="001" type="America/Tijuana"/>
55
- <mapZone other="Pacific Standard Time (Mexico)" territory="MX" type="America/Tijuana America/Santa_Isabel"/>
55
+ <mapZone other="Pacific Standard Time (Mexico)" territory="MX" type="America/Tijuana"/>
56
56
 
57
57
  <!-- (UTC-08:00) Coordinated Universal Time-08 -->
58
58
  <mapZone other="UTC-08" territory="001" type="Etc/GMT+8"/>
@@ -63,7 +63,6 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
63
63
  <mapZone other="Pacific Standard Time" territory="001" type="America/Los_Angeles"/>
64
64
  <mapZone other="Pacific Standard Time" territory="CA" type="America/Vancouver"/>
65
65
  <mapZone other="Pacific Standard Time" territory="US" type="America/Los_Angeles"/>
66
- <mapZone other="Pacific Standard Time" territory="ZZ" type="PST8PDT"/>
67
66
 
68
67
  <!-- (UTC-07:00) Arizona -->
69
68
  <mapZone other="US Mountain Standard Time" territory="001" type="America/Phoenix"/>
@@ -73,15 +72,14 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
73
72
  <mapZone other="US Mountain Standard Time" territory="ZZ" type="Etc/GMT+7"/>
74
73
 
75
74
  <!-- (UTC-07:00) Chihuahua, La Paz, Mazatlan -->
76
- <mapZone other="Mountain Standard Time (Mexico)" territory="001" type="America/Chihuahua"/>
77
- <mapZone other="Mountain Standard Time (Mexico)" territory="MX" type="America/Chihuahua America/Mazatlan"/>
75
+ <mapZone other="Mountain Standard Time (Mexico)" territory="001" type="America/Mazatlan"/>
76
+ <mapZone other="Mountain Standard Time (Mexico)" territory="MX" type="America/Mazatlan"/>
78
77
 
79
78
  <!-- (UTC-07:00) Mountain Time (US & Canada) -->
80
79
  <mapZone other="Mountain Standard Time" territory="001" type="America/Denver"/>
81
- <mapZone other="Mountain Standard Time" territory="CA" type="America/Edmonton America/Cambridge_Bay America/Inuvik America/Yellowknife"/>
82
- <mapZone other="Mountain Standard Time" territory="MX" type="America/Ojinaga"/>
80
+ <mapZone other="Mountain Standard Time" territory="CA" type="America/Edmonton America/Cambridge_Bay America/Inuvik"/>
81
+ <mapZone other="Mountain Standard Time" territory="MX" type="America/Ciudad_Juarez"/>
83
82
  <mapZone other="Mountain Standard Time" territory="US" type="America/Denver America/Boise"/>
84
- <mapZone other="Mountain Standard Time" territory="ZZ" type="MST7MDT"/>
85
83
 
86
84
  <!-- (UTC-07:00) Yukon -->
87
85
  <mapZone other="Yukon Standard Time" territory="001" type="America/Whitehorse"/>
@@ -100,10 +98,9 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
100
98
 
101
99
  <!-- (UTC-06:00) Central Time (US & Canada) -->
102
100
  <mapZone other="Central Standard Time" territory="001" type="America/Chicago"/>
103
- <mapZone other="Central Standard Time" territory="CA" type="America/Winnipeg America/Rainy_River America/Rankin_Inlet America/Resolute"/>
104
- <mapZone other="Central Standard Time" territory="MX" type="America/Matamoros"/>
101
+ <mapZone other="Central Standard Time" territory="CA" type="America/Winnipeg America/Rankin_Inlet America/Resolute"/>
102
+ <mapZone other="Central Standard Time" territory="MX" type="America/Matamoros America/Ojinaga"/>
105
103
  <mapZone other="Central Standard Time" territory="US" type="America/Chicago America/Indiana/Knox America/Indiana/Tell_City America/Menominee America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem"/>
106
- <mapZone other="Central Standard Time" territory="ZZ" type="CST6CDT"/>
107
104
 
108
105
  <!-- (UTC-06:00) Easter Island -->
109
106
  <mapZone other="Easter Island Standard Time" territory="001" type="Pacific/Easter"/>
@@ -111,7 +108,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
111
108
 
112
109
  <!-- (UTC-06:00) Guadalajara, Mexico City, Monterrey -->
113
110
  <mapZone other="Central Standard Time (Mexico)" territory="001" type="America/Mexico_City"/>
114
- <mapZone other="Central Standard Time (Mexico)" territory="MX" type="America/Mexico_City America/Bahia_Banderas America/Merida America/Monterrey"/>
111
+ <mapZone other="Central Standard Time (Mexico)" territory="MX" type="America/Mexico_City America/Bahia_Banderas America/Merida America/Monterrey America/Chihuahua "/>
115
112
 
116
113
  <!-- (UTC-06:00) Saskatchewan -->
117
114
  <mapZone other="Canada Central Standard Time" territory="001" type="America/Regina"/>
@@ -136,9 +133,8 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
136
133
  <!-- (UTC-05:00) Eastern Time (US & Canada) -->
137
134
  <mapZone other="Eastern Standard Time" territory="001" type="America/New_York"/>
138
135
  <mapZone other="Eastern Standard Time" territory="BS" type="America/Nassau"/>
139
- <mapZone other="Eastern Standard Time" territory="CA" type="America/Toronto America/Iqaluit America/Montreal America/Nipigon America/Pangnirtung America/Thunder_Bay"/>
136
+ <mapZone other="Eastern Standard Time" territory="CA" type="America/Toronto America/Iqaluit"/>
140
137
  <mapZone other="Eastern Standard Time" territory="US" type="America/New_York America/Detroit America/Indiana/Petersburg America/Indiana/Vincennes America/Indiana/Winamac America/Kentucky/Monticello America/Louisville"/>
141
- <mapZone other="Eastern Standard Time" territory="ZZ" type="EST5EDT"/>
142
138
 
143
139
  <!-- (UTC-05:00) Haiti -->
144
140
  <mapZone other="Haiti Standard Time" territory="001" type="America/Port-au-Prince"/>
@@ -424,7 +420,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
424
420
  <mapZone other="FLE Standard Time" territory="FI" type="Europe/Helsinki"/>
425
421
  <mapZone other="FLE Standard Time" territory="LT" type="Europe/Vilnius"/>
426
422
  <mapZone other="FLE Standard Time" territory="LV" type="Europe/Riga"/>
427
- <mapZone other="FLE Standard Time" territory="UA" type="Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye"/>
423
+ <mapZone other="FLE Standard Time" territory="UA" type="Europe/Kiev"/>
428
424
 
429
425
  <!-- (UTC+02:00) Jerusalem -->
430
426
  <mapZone other="Israel Standard Time" territory="001" type="Asia/Jerusalem"/>
@@ -541,7 +537,8 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
541
537
  <!-- (UTC+05:00) Ashgabat, Tashkent -->
542
538
  <mapZone other="West Asia Standard Time" territory="001" type="Asia/Tashkent"/>
543
539
  <mapZone other="West Asia Standard Time" territory="AQ" type="Antarctica/Mawson"/>
544
- <mapZone other="West Asia Standard Time" territory="KZ" type="Asia/Oral Asia/Aqtau Asia/Aqtobe Asia/Atyrau"/>
540
+ <!-- Microsoft may create a new zone dedicated for Almaty and Qostanay. -->
541
+ <mapZone other="West Asia Standard Time" territory="KZ" type="Asia/Oral Asia/Almaty Asia/Aqtau Asia/Aqtobe Asia/Atyrau Asia/Qostanay"/>
545
542
  <mapZone other="West Asia Standard Time" territory="MV" type="Indian/Maldives"/>
546
543
  <mapZone other="West Asia Standard Time" territory="TF" type="Indian/Kerguelen"/>
547
544
  <mapZone other="West Asia Standard Time" territory="TJ" type="Asia/Dushanbe"/>
@@ -573,13 +570,12 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
573
570
  <mapZone other="Nepal Standard Time" territory="001" type="Asia/Katmandu"/>
574
571
  <mapZone other="Nepal Standard Time" territory="NP" type="Asia/Katmandu"/>
575
572
 
576
- <!-- (UTC+06:00) Astana -->
577
- <mapZone other="Central Asia Standard Time" territory="001" type="Asia/Almaty"/>
573
+ <!-- (UTC+06:00) Astana --> <!-- Microsoft probably keeps Central Asia Standard Time, but change Astana to something else. -->
574
+ <mapZone other="Central Asia Standard Time" territory="001" type="Asia/Bishkek"/>
578
575
  <mapZone other="Central Asia Standard Time" territory="AQ" type="Antarctica/Vostok"/>
579
576
  <mapZone other="Central Asia Standard Time" territory="CN" type="Asia/Urumqi"/>
580
577
  <mapZone other="Central Asia Standard Time" territory="IO" type="Indian/Chagos"/>
581
578
  <mapZone other="Central Asia Standard Time" territory="KG" type="Asia/Bishkek"/>
582
- <mapZone other="Central Asia Standard Time" territory="KZ" type="Asia/Almaty Asia/Qostanay"/>
583
579
  <mapZone other="Central Asia Standard Time" territory="ZZ" type="Etc/GMT-6"/>
584
580
 
585
581
  <!-- (UTC+06:00) Dhaka -->
@@ -656,7 +652,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
656
652
 
657
653
  <!-- (UTC+08:00) Ulaanbaatar -->
658
654
  <mapZone other="Ulaanbaatar Standard Time" territory="001" type="Asia/Ulaanbaatar"/>
659
- <mapZone other="Ulaanbaatar Standard Time" territory="MN" type="Asia/Ulaanbaatar Asia/Choibalsan"/>
655
+ <mapZone other="Ulaanbaatar Standard Time" territory="MN" type="Asia/Ulaanbaatar"/>
660
656
 
661
657
  <!-- (UTC+08:45) Eucla -->
662
658
  <mapZone other="Aus Central W. Standard Time" territory="001" type="Australia/Eucla"/>
@@ -713,7 +709,7 @@ Source: https://github.com/unicode-org/cldr/blob/main/common/supplemental/window
713
709
 
714
710
  <!-- (UTC+10:00) Hobart -->
715
711
  <mapZone other="Tasmania Standard Time" territory="001" type="Australia/Hobart"/>
716
- <mapZone other="Tasmania Standard Time" territory="AU" type="Australia/Hobart Australia/Currie Antarctica/Macquarie"/>
712
+ <mapZone other="Tasmania Standard Time" territory="AU" type="Australia/Hobart Antarctica/Macquarie"/>
717
713
 
718
714
  <!-- (UTC+10:00) Vladivostok -->
719
715
  <mapZone other="Vladivostok Standard Time" territory="001" type="Asia/Vladivostok"/>
@@ -0,0 +1,39 @@
1
+ import json
2
+
3
+ from dissect.target.helpers.docs import INDENT_STEP, get_docstring
4
+ from dissect.target.loader import LOADERS_BY_SCHEME
5
+ from dissect.target.plugin import Plugin, arg, export
6
+
7
+
8
+ class LoaderListPlugin(Plugin):
9
+ """Plugin to list the available loaders."""
10
+
11
+ def check_compatible(self) -> None:
12
+ pass
13
+
14
+ @export(output="none")
15
+ # NOTE: We would prefer to re-use arguments across plugins from argparse in query.py, but that is not possible yet.
16
+ # For now we use --as-json, but in the future this should be changed to inherit --json from target-query.
17
+ # https://github.com/fox-it/dissect.target/pull/841
18
+ # https://github.com/fox-it/dissect.target/issues/889
19
+ @arg("--as-json", dest="as_json", action="store_true")
20
+ def loaders(self, as_json: bool = False) -> None:
21
+ """List the available loaders."""
22
+
23
+ loaders_info = {}
24
+ for key, loader in LOADERS_BY_SCHEME.items():
25
+ try:
26
+ docstring = get_docstring(loader, "No documentation.").splitlines()[0].strip()
27
+ loaders_info[key] = docstring
28
+ except ImportError:
29
+ continue
30
+
31
+ loaders = sorted(loaders_info.items())
32
+
33
+ if as_json:
34
+ print(json.dumps([{"name": name, "description": desc} for name, desc in loaders]), end="")
35
+
36
+ else:
37
+ print("Available loaders:")
38
+ for loader_name, loader_description in loaders:
39
+ print(f"{INDENT_STEP}{loader_name} - {loader_description}")
@@ -1,5 +1,8 @@
1
+ from __future__ import annotations
2
+
3
+ import json
1
4
  import textwrap
2
- from typing import Dict, List, Type, Union
5
+ from typing import Iterator, Type
3
6
 
4
7
  from dissect.target import plugin
5
8
  from dissect.target.helpers.docs import INDENT_STEP, get_plugin_overview
@@ -23,7 +26,8 @@ def categorize_plugins(plugins_selection: list[dict] = None) -> dict:
23
26
  return output_dict
24
27
 
25
28
 
26
- def get_exported_plugins():
29
+ def get_exported_plugins() -> list:
30
+ """Returns list of exported plugins."""
27
31
  return [p for p in plugin.plugins() if len(p["exports"])]
28
32
 
29
33
 
@@ -50,10 +54,10 @@ def update_dict_recursive(source_dict: dict, updated_dict: dict) -> dict:
50
54
 
51
55
 
52
56
  def output_plugin_description_recursive(
53
- structure_dict: Union[Dict, Plugin],
57
+ structure_dict: dict | Plugin,
54
58
  print_docs: bool,
55
- indentation_step=0,
56
- ) -> List[str]:
59
+ indentation_step: int = 0,
60
+ ) -> list[str]:
57
61
  """Create plugin overview with identations."""
58
62
 
59
63
  if isinstance(structure_dict, type) and issubclass(structure_dict, Plugin):
@@ -78,10 +82,10 @@ def get_plugin_description(
78
82
 
79
83
 
80
84
  def get_description_dict(
81
- structure_dict: Dict,
85
+ structure_dict: dict,
82
86
  print_docs: bool,
83
87
  indentation_step: int,
84
- ) -> List[str]:
88
+ ) -> list[str]:
85
89
  """Returns a list of indented descriptions."""
86
90
 
87
91
  output_descriptions = []
@@ -105,10 +109,17 @@ class PluginListPlugin(Plugin):
105
109
 
106
110
  @export(output="none", cache=False)
107
111
  @arg("--docs", dest="print_docs", action="store_true")
108
- def plugins(self, plugins: list[dict] = None, print_docs: bool = False) -> None:
109
- """Print all registered plugins to stdout."""
112
+ # NOTE: We would prefer to re-use arguments across plugins from argparse in query.py, but that is not possible yet.
113
+ # For now we use --as-json, but in the future this should be changed to inherit --json from target-query.
114
+ # https://github.com/fox-it/dissect.target/pull/841
115
+ # https://github.com/fox-it/dissect.target/issues/889
116
+ @arg("--as-json", dest="as_json", action="store_true")
117
+ def plugins(self, plugins: list[Plugin] = None, print_docs: bool = False, as_json: bool = False) -> None:
118
+ """Print all available plugins."""
119
+
120
+ dict_plugins = list({p.path: p.plugin_desc for p in plugins}.values())
121
+ categorized_plugins = dict(sorted(categorize_plugins(dict_plugins).items()))
110
122
 
111
- categorized_plugins = dict(sorted(categorize_plugins(plugins).items()))
112
123
  plugin_descriptions = output_plugin_description_recursive(categorized_plugins, print_docs)
113
124
 
114
125
  plugins_list = textwrap.indent(
@@ -142,4 +153,32 @@ class PluginListPlugin(Plugin):
142
153
  "Failed to load:",
143
154
  failed_list,
144
155
  ]
145
- print("\n".join(output_lines))
156
+
157
+ if as_json:
158
+ out = {"loaded": list(generate_plugins_json(plugins))}
159
+
160
+ if failed_plugins := plugin.failed():
161
+ out["failed"] = [
162
+ {"module": p["module"], "stacktrace": "".join(p["stacktrace"])} for p in failed_plugins
163
+ ]
164
+
165
+ print(json.dumps(out), end="")
166
+
167
+ else:
168
+ print("\n".join(output_lines))
169
+
170
+
171
+ def generate_plugins_json(plugins: list[Plugin]) -> Iterator[dict]:
172
+ """Generates JSON output of a list of :class:`Plugin`s."""
173
+
174
+ for p in plugins:
175
+ func = getattr(p.class_object, p.method_name)
176
+ description = getattr(func, "__doc__", None)
177
+ summary = description.split("\n\n", 1)[0].strip() if description else None
178
+
179
+ yield {
180
+ "name": p.name,
181
+ "output": p.output_type,
182
+ "description": summary,
183
+ "path": p.path,
184
+ }
@@ -169,31 +169,40 @@ def main():
169
169
  # Show the list of available plugins for the given optional target and optional
170
170
  # search pattern, only display plugins that can be applied to ANY targets
171
171
  if args.list:
172
- collected_plugins = {}
172
+ collected_plugins = []
173
173
 
174
174
  if targets:
175
175
  for plugin_target in Target.open_all(targets, args.children):
176
176
  funcs, _ = find_plugin_functions(plugin_target, args.list, compatibility=True, show_hidden=True)
177
177
  for func in funcs:
178
- collected_plugins[func.path] = func.plugin_desc
178
+ collected_plugins.append(func)
179
179
  else:
180
180
  funcs, _ = find_plugin_functions(Target(), args.list, compatibility=False, show_hidden=True)
181
181
  for func in funcs:
182
- collected_plugins[func.path] = func.plugin_desc
182
+ collected_plugins.append(func)
183
183
 
184
- # Display in a user friendly manner
185
184
  target = Target()
186
185
  fparser = generate_argparse_for_bound_method(target.plugins, usage_tmpl=USAGE_FORMAT_TMPL)
187
186
  fargs, rest = fparser.parse_known_args(rest)
188
187
 
188
+ # Display in a user friendly manner
189
189
  if collected_plugins:
190
- target.plugins(list(collected_plugins.values()))
190
+ if args.json:
191
+ print('{"plugins": ', end="")
192
+ target.plugins(collected_plugins, as_json=args.json)
191
193
 
192
194
  # No real targets specified, show the available loaders
193
195
  if not targets:
194
196
  fparser = generate_argparse_for_bound_method(target.loaders, usage_tmpl=USAGE_FORMAT_TMPL)
195
197
  fargs, rest = fparser.parse_known_args(rest)
196
- target.loaders(**vars(fargs))
198
+ del fargs.as_json
199
+ if args.json:
200
+ print(', "loaders": ', end="")
201
+ target.loaders(**vars(fargs), as_json=args.json)
202
+
203
+ if args.json:
204
+ print("}")
205
+
197
206
  parser.exit()
198
207
 
199
208
  if not targets:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.20.dev40
3
+ Version: 3.20.dev43
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
@@ -29,7 +29,7 @@ def test_update_dict():
29
29
 
30
30
  def test_plugin_description():
31
31
  description = [x for x in output_plugin_description_recursive(PluginListPlugin, False)]
32
- assert description == ["plugins - Print all registered plugins to stdout. (output: no output)"]
32
+ assert description == ["plugins - Print all available plugins. (output: no output)"]
33
33
 
34
34
 
35
35
  def test_plugin_description_compacting():
@@ -39,7 +39,7 @@ def test_plugin_description_compacting():
39
39
  assert description == [
40
40
  "hello:",
41
41
  " world:",
42
- " plugins - Print all registered plugins to stdout. (output: no output)",
42
+ " plugins - Print all available plugins. (output: no output)",
43
43
  ]
44
44
 
45
45
 
@@ -54,9 +54,9 @@ def test_plugin_description_in_dict_multiple():
54
54
  "hello:",
55
55
  " world:",
56
56
  " data:",
57
- " plugins - Print all registered plugins to stdout. (output: no output)",
57
+ " plugins - Print all available plugins. (output: no output)",
58
58
  " data2:",
59
- " plugins - Print all registered plugins to stdout. (output: no output)",
59
+ " plugins - Print all available plugins. (output: no output)",
60
60
  ]
61
61
 
62
62
 
@@ -1,3 +1,4 @@
1
+ import json
1
2
  import os
2
3
  import re
3
4
  from typing import Any, Optional
@@ -244,3 +245,56 @@ def test_target_query_dry_run(capsys: pytest.CaptureFixture, monkeypatch: pytest
244
245
  " execute: network.interfaces (general.network.interfaces)\n"
245
246
  " execute: osinfo (general.osinfo.osinfo)\n"
246
247
  )
248
+
249
+
250
+ def test_target_query_list_json(capsys: pytest.CaptureFixture, monkeypatch: pytest.MonkeyPatch) -> None:
251
+ """test if target-query --list --json output is formatted as we expect it to be."""
252
+
253
+ with monkeypatch.context() as m:
254
+ m.setattr("sys.argv", ["target-query", "-l", "-j"])
255
+ with pytest.raises((SystemExit, IndexError, ImportError)):
256
+ target_query()
257
+ out, _ = capsys.readouterr()
258
+
259
+ try:
260
+ output = json.loads(out)
261
+ except json.JSONDecodeError:
262
+ pass
263
+
264
+ # test the generic structure of the returned dictionary.
265
+ assert isinstance(output, dict), "Could not load JSON output of 'target-query --list --json'"
266
+ assert output["plugins"], "Expected a dictionary of plugins"
267
+ assert output["loaders"], "Expected a dictionary of loaders"
268
+ assert len(output["plugins"]["loaded"]) > 200, "Expected more loaded plugins"
269
+ assert not output["plugins"].get("failed"), "Some plugin(s) failed to initialize"
270
+
271
+ def get_plugin(plugins: list[dict], needle: str) -> dict:
272
+ match = [p for p in output["plugins"]["loaded"] if p["name"] == needle]
273
+ return match[0] if match else False
274
+
275
+ # general plugin
276
+ users_plugin = get_plugin(output, "users")
277
+ assert users_plugin == {
278
+ "name": "users",
279
+ "description": "Return the users available in the target.",
280
+ "output": "record",
281
+ "path": "general.default.users",
282
+ }
283
+
284
+ # namespaced plugin
285
+ plocate_plugin = get_plugin(output, "plocate.locate")
286
+ assert plocate_plugin == {
287
+ "name": "plocate.locate",
288
+ "description": "Yield file and directory names from the plocate.db.",
289
+ "output": "record",
290
+ "path": "os.unix.locate.plocate.locate",
291
+ }
292
+
293
+ # regular plugin
294
+ sam_plugin = get_plugin(output, "sam")
295
+ assert sam_plugin == {
296
+ "name": "sam",
297
+ "description": "Dump SAM entries",
298
+ "output": "record",
299
+ "path": "os.windows.credential.sam.sam",
300
+ }
@@ -1,26 +0,0 @@
1
- from dissect.target.helpers.docs import INDENT_STEP, get_docstring
2
- from dissect.target.loader import LOADERS_BY_SCHEME
3
- from dissect.target.plugin import Plugin, export
4
-
5
-
6
- class LoaderListPlugin(Plugin):
7
- """Plugin to list the available loaders."""
8
-
9
- def check_compatible(self) -> None:
10
- pass
11
-
12
- @export(output="none")
13
- def loaders(self) -> None:
14
- """List the available loaders."""
15
-
16
- loaders_info = {}
17
- for key, loader in LOADERS_BY_SCHEME.items():
18
- try:
19
- docstring = get_docstring(loader, "No documentation.").splitlines()[0].strip()
20
- loaders_info[key] = docstring
21
- except ImportError:
22
- continue
23
-
24
- print("Available loaders:")
25
- for loader_name, loader_description in sorted(loaders_info.items()):
26
- print(f"{INDENT_STEP}{loader_name} - {loader_description}")