dissect.target 3.13.dev13__tar.gz → 3.14__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (927) hide show
  1. dissect.target-3.14/MANIFEST.in +4 -0
  2. dissect.target-3.14/PKG-INFO +254 -0
  3. dissect.target-3.14/dissect/target/container.py +260 -0
  4. dissect.target-3.14/dissect/target/containers/asdf.py +48 -0
  5. dissect.target-3.14/dissect/target/containers/ewf.py +47 -0
  6. dissect.target-3.14/dissect/target/containers/hdd.py +39 -0
  7. dissect.target-3.14/dissect/target/containers/hds.py +40 -0
  8. dissect.target-3.14/dissect/target/containers/qcow2.py +39 -0
  9. dissect.target-3.14/dissect/target/containers/raw.py +42 -0
  10. dissect.target-3.14/dissect/target/containers/split.py +85 -0
  11. dissect.target-3.14/dissect/target/containers/vdi.py +41 -0
  12. dissect.target-3.14/dissect/target/containers/vhd.py +40 -0
  13. dissect.target-3.14/dissect/target/containers/vhdx.py +35 -0
  14. dissect.target-3.14/dissect/target/containers/vmdk.py +37 -0
  15. dissect.target-3.14/dissect/target/filesystem.py +1574 -0
  16. dissect.target-3.14/dissect/target/filesystems/ad1.py +82 -0
  17. dissect.target-3.14/dissect/target/filesystems/btrfs.py +180 -0
  18. dissect.target-3.14/dissect/target/filesystems/cb.py +151 -0
  19. dissect.target-3.14/dissect/target/filesystems/config.py +300 -0
  20. dissect.target-3.14/dissect/target/filesystems/dir.py +122 -0
  21. dissect.target-3.14/dissect/target/filesystems/exfat.py +151 -0
  22. dissect.target-3.14/dissect/target/filesystems/extfs.py +143 -0
  23. dissect.target-3.14/dissect/target/filesystems/fat.py +115 -0
  24. dissect.target-3.14/dissect/target/filesystems/ffs.py +138 -0
  25. dissect.target-3.14/dissect/target/filesystems/itunes.py +185 -0
  26. dissect.target-3.14/dissect/target/filesystems/ntfs.py +197 -0
  27. dissect.target-3.14/dissect/target/filesystems/smb.py +183 -0
  28. dissect.target-3.14/dissect/target/filesystems/squashfs.py +120 -0
  29. dissect.target-3.14/dissect/target/filesystems/tar.py +171 -0
  30. dissect.target-3.14/dissect/target/filesystems/vmfs.py +138 -0
  31. dissect.target-3.14/dissect/target/filesystems/xfs.py +142 -0
  32. dissect.target-3.14/dissect/target/filesystems/zip.py +136 -0
  33. dissect.target-3.14/dissect/target/helpers/cache.py +231 -0
  34. dissect.target-3.14/dissect/target/helpers/configutil.py +609 -0
  35. dissect.target-3.14/dissect/target/helpers/fsutil.py +1095 -0
  36. dissect.target-3.14/dissect/target/helpers/hashutil.py +127 -0
  37. dissect.target-3.14/dissect/target/helpers/keychain.py +109 -0
  38. dissect.target-3.14/dissect/target/helpers/utils.py +127 -0
  39. dissect.target-3.14/dissect/target/loaders/ad1.py +26 -0
  40. dissect.target-3.14/dissect/target/loaders/asdf.py +34 -0
  41. dissect.target-3.14/dissect/target/loaders/log.py +37 -0
  42. dissect.target-3.14/dissect/target/loaders/smb.py +368 -0
  43. dissect.target-3.14/dissect/target/loaders/targetd.py +221 -0
  44. dissect.target-3.14/dissect/target/loaders/vma.py +25 -0
  45. dissect.target-3.14/dissect/target/loaders/xva.py +27 -0
  46. dissect.target-3.14/dissect/target/plugin.py +1152 -0
  47. dissect.target-3.14/dissect/target/plugins/apps/av/sophos.py +111 -0
  48. dissect.target-3.14/dissect/target/plugins/apps/av/symantec.py +358 -0
  49. dissect.target-3.14/dissect/target/plugins/apps/av/trendmicro.py +121 -0
  50. dissect.target-3.14/dissect/target/plugins/apps/browser/chrome.py +55 -0
  51. dissect.target-3.14/dissect/target/plugins/apps/browser/chromium.py +354 -0
  52. dissect.target-3.14/dissect/target/plugins/apps/browser/edge.py +53 -0
  53. dissect.target-3.14/dissect/target/plugins/apps/browser/firefox.py +221 -0
  54. dissect.target-3.14/dissect/target/plugins/apps/browser/iexplore.py +220 -0
  55. dissect.target-3.14/dissect/target/plugins/apps/remoteaccess/teamviewer.py +111 -0
  56. dissect.target-3.14/dissect/target/plugins/apps/ssh/opensshd.py +180 -0
  57. dissect.target-3.14/dissect/target/plugins/apps/webserver/apache.py +159 -0
  58. dissect.target-3.14/dissect/target/plugins/apps/webserver/caddy.py +148 -0
  59. dissect.target-3.14/dissect/target/plugins/apps/webserver/iis.py +337 -0
  60. dissect.target-3.14/dissect/target/plugins/apps/webserver/nginx.py +93 -0
  61. dissect.target-3.14/dissect/target/plugins/child/hyperv.py +58 -0
  62. dissect.target-3.14/dissect/target/plugins/child/vmware_workstation.py +45 -0
  63. dissect.target-3.14/dissect/target/plugins/filesystem/acquire_handles.py +48 -0
  64. dissect.target-3.14/dissect/target/plugins/filesystem/acquire_hash.py +44 -0
  65. dissect.target-3.14/dissect/target/plugins/filesystem/icat.py +100 -0
  66. dissect.target-3.14/dissect/target/plugins/filesystem/ntfs/mft.py +267 -0
  67. dissect.target-3.14/dissect/target/plugins/filesystem/ntfs/mft_timeline.py +172 -0
  68. dissect.target-3.14/dissect/target/plugins/filesystem/ntfs/usnjrnl.py +77 -0
  69. dissect.target-3.14/dissect/target/plugins/filesystem/resolver.py +108 -0
  70. dissect.target-3.14/dissect/target/plugins/filesystem/unix/capability.py +169 -0
  71. dissect.target-3.14/dissect/target/plugins/filesystem/walkfs.py +70 -0
  72. dissect.target-3.14/dissect/target/plugins/filesystem/yara.py +63 -0
  73. dissect.target-3.14/dissect/target/plugins/general/config.py +94 -0
  74. dissect.target-3.14/dissect/target/plugins/os/unix/_os.py +351 -0
  75. dissect.target-3.14/dissect/target/plugins/os/unix/bsd/osx/user.py +53 -0
  76. dissect.target-3.14/dissect/target/plugins/os/unix/cronjobs.py +106 -0
  77. dissect.target-3.14/dissect/target/plugins/os/unix/esxi/_os.py +450 -0
  78. dissect.target-3.14/dissect/target/plugins/os/unix/generic.py +65 -0
  79. dissect.target-3.14/dissect/target/plugins/os/unix/history.py +195 -0
  80. dissect.target-3.14/dissect/target/plugins/os/unix/linux/_os.py +88 -0
  81. dissect.target-3.14/dissect/target/plugins/os/unix/linux/android/_os.py +70 -0
  82. dissect.target-3.14/dissect/target/plugins/os/unix/linux/services.py +112 -0
  83. dissect.target-3.14/dissect/target/plugins/os/unix/linux/suse/zypper.py +82 -0
  84. dissect.target-3.14/dissect/target/plugins/os/unix/locale.py +108 -0
  85. dissect.target-3.14/dissect/target/plugins/os/unix/log/journal.py +460 -0
  86. dissect.target-3.14/dissect/target/plugins/os/unix/packagemanager.py +81 -0
  87. dissect.target-3.14/dissect/target/plugins/os/unix/shadow.py +112 -0
  88. dissect.target-3.14/dissect/target/plugins/os/windows/_os.py +325 -0
  89. dissect.target-3.14/dissect/target/plugins/os/windows/amcache.py +651 -0
  90. dissect.target-3.14/dissect/target/plugins/os/windows/catroot.py +126 -0
  91. dissect.target-3.14/dissect/target/plugins/os/windows/cim.py +74 -0
  92. dissect.target-3.14/dissect/target/plugins/os/windows/datetime.py +252 -0
  93. dissect.target-3.14/dissect/target/plugins/os/windows/defender.py +566 -0
  94. dissect.target-3.14/dissect/target/plugins/os/windows/generic.py +573 -0
  95. dissect.target-3.14/dissect/target/plugins/os/windows/lnk.py +171 -0
  96. dissect.target-3.14/dissect/target/plugins/os/windows/log/amcache.py +161 -0
  97. dissect.target-3.14/dissect/target/plugins/os/windows/log/pfro.py +76 -0
  98. dissect.target-3.14/dissect/target/plugins/os/windows/prefetch.py +316 -0
  99. dissect.target-3.14/dissect/target/plugins/os/windows/recyclebin.py +138 -0
  100. dissect.target-3.14/dissect/target/plugins/os/windows/regf/7zip.py +107 -0
  101. dissect.target-3.14/dissect/target/plugins/os/windows/regf/bam.py +61 -0
  102. dissect.target-3.14/dissect/target/plugins/os/windows/regf/cit.py +962 -0
  103. dissect.target-3.14/dissect/target/plugins/os/windows/regf/mru.py +420 -0
  104. dissect.target-3.14/dissect/target/plugins/os/windows/regf/muicache.py +94 -0
  105. dissect.target-3.14/dissect/target/plugins/os/windows/regf/recentfilecache.py +65 -0
  106. dissect.target-3.14/dissect/target/plugins/os/windows/regf/runkeys.py +81 -0
  107. dissect.target-3.14/dissect/target/plugins/os/windows/regf/shimcache.py +362 -0
  108. dissect.target-3.14/dissect/target/plugins/os/windows/regf/trusteddocs.py +81 -0
  109. dissect.target-3.14/dissect/target/plugins/os/windows/regf/userassist.py +137 -0
  110. dissect.target-3.14/dissect/target/plugins/os/windows/services.py +166 -0
  111. dissect.target-3.14/dissect/target/plugins/os/windows/sru.py +481 -0
  112. dissect.target-3.14/dissect/target/plugins/os/windows/startupinfo.py +89 -0
  113. dissect.target-3.14/dissect/target/plugins/os/windows/syscache.py +93 -0
  114. dissect.target-3.14/dissect/target/target.py +825 -0
  115. dissect.target-3.14/dissect/target/tools/info.py +151 -0
  116. dissect.target-3.14/dissect/target/tools/mount.py +92 -0
  117. dissect.target-3.14/dissect/target/tools/query.py +392 -0
  118. dissect.target-3.14/dissect/target/tools/shell.py +1221 -0
  119. dissect.target-3.14/dissect/target/volume.py +425 -0
  120. dissect.target-3.14/dissect/target/volumes/bde.py +104 -0
  121. dissect.target-3.14/dissect/target/volumes/ddf.py +53 -0
  122. dissect.target-3.14/dissect/target/volumes/disk.py +37 -0
  123. dissect.target-3.14/dissect/target/volumes/luks.py +116 -0
  124. dissect.target-3.14/dissect/target/volumes/lvm.py +79 -0
  125. dissect.target-3.14/dissect/target/volumes/md.py +52 -0
  126. dissect.target-3.14/dissect/target/volumes/vmfs.py +63 -0
  127. dissect.target-3.14/dissect.target.egg-info/PKG-INFO +254 -0
  128. dissect.target-3.14/dissect.target.egg-info/SOURCES.txt +519 -0
  129. dissect.target-3.14/dissect.target.egg-info/requires.txt +45 -0
  130. dissect.target-3.14/pyproject.toml +118 -0
  131. dissect.target-3.14/tests/conftest.py +446 -0
  132. dissect.target-3.14/tests/filesystems/test_config.py +155 -0
  133. dissect.target-3.14/tests/filesystems/test_dir.py +81 -0
  134. dissect.target-3.14/tests/helpers/__init__.py +0 -0
  135. dissect.target-3.14/tests/helpers/test_configutil.py +229 -0
  136. dissect.target-3.14/tests/helpers/test_docs.py +49 -0
  137. dissect.target-3.14/tests/helpers/test_fsutil.py +420 -0
  138. dissect.target-3.14/tests/helpers/test_hashutil.py +155 -0
  139. dissect.target-3.14/tests/helpers/test_keychain.py +36 -0
  140. dissect.target-3.14/tests/helpers/test_regutil.py +311 -0
  141. dissect.target-3.14/tests/loaders/__init__.py +0 -0
  142. dissect.target-3.14/tests/loaders/test_asdf.py +21 -0
  143. dissect.target-3.14/tests/loaders/test_cb.py +130 -0
  144. dissect.target-3.14/tests/loaders/test_dir.py +84 -0
  145. dissect.target-3.14/tests/loaders/test_hyperv.py +71 -0
  146. dissect.target-3.14/tests/loaders/test_kape.py +32 -0
  147. dissect.target-3.14/tests/loaders/test_local.py +128 -0
  148. dissect.target-3.14/tests/loaders/test_log.py +30 -0
  149. dissect.target-3.14/tests/loaders/test_pvm.py +21 -0
  150. dissect.target-3.14/tests/loaders/test_smb.py +64 -0
  151. dissect.target-3.14/tests/loaders/test_tanium.py +32 -0
  152. dissect.target-3.14/tests/loaders/test_tar.py +63 -0
  153. dissect.target-3.14/tests/loaders/test_utm.py +48 -0
  154. dissect.target-3.14/tests/loaders/test_velociraptor.py +147 -0
  155. dissect.target-3.14/tests/loaders/test_vmwarevm.py +27 -0
  156. dissect.target-3.14/tests/plugins/__init__.py +0 -0
  157. dissect.target-3.14/tests/plugins/apps/__init__.py +0 -0
  158. dissect.target-3.14/tests/plugins/apps/av/__init__.py +0 -0
  159. dissect.target-3.14/tests/plugins/apps/av/test_mcafee.py +37 -0
  160. dissect.target-3.14/tests/plugins/apps/av/test_sophos.py +37 -0
  161. dissect.target-3.14/tests/plugins/apps/av/test_symantec.py +64 -0
  162. dissect.target-3.14/tests/plugins/apps/av/test_trendmicro.py +37 -0
  163. dissect.target-3.14/tests/plugins/apps/browser/__init__.py +0 -0
  164. dissect.target-3.14/tests/plugins/apps/browser/test_browser.py +193 -0
  165. dissect.target-3.14/tests/plugins/apps/container/__init__.py +0 -0
  166. dissect.target-3.14/tests/plugins/apps/container/test_docker.py +71 -0
  167. dissect.target-3.14/tests/plugins/apps/remoteaccess/__init__.py +0 -0
  168. dissect.target-3.14/tests/plugins/apps/remoteaccess/test_anydesk.py +47 -0
  169. dissect.target-3.14/tests/plugins/apps/remoteaccess/test_teamviewer.py +73 -0
  170. dissect.target-3.14/tests/plugins/apps/shell/__init__.py +0 -0
  171. dissect.target-3.14/tests/plugins/apps/shell/test_powershell.py +34 -0
  172. dissect.target-3.14/tests/plugins/apps/ssh/__init__.py +0 -0
  173. dissect.target-3.14/tests/plugins/apps/ssh/test_openssh.py +396 -0
  174. dissect.target-3.14/tests/plugins/apps/ssh/test_opensshd.py +53 -0
  175. dissect.target-3.14/tests/plugins/apps/vpn/__init__.py +0 -0
  176. dissect.target-3.14/tests/plugins/apps/vpn/test_openvpn.py +94 -0
  177. dissect.target-3.14/tests/plugins/apps/vpn/test_wireguard.py +27 -0
  178. dissect.target-3.14/tests/plugins/apps/webhosting/__init__.py +0 -0
  179. dissect.target-3.14/tests/plugins/apps/webhosting/test_cpanel.py +24 -0
  180. dissect.target-3.14/tests/plugins/apps/webserver/__init__.py +0 -0
  181. dissect.target-3.14/tests/plugins/apps/webserver/test_apache.py +169 -0
  182. dissect.target-3.14/tests/plugins/apps/webserver/test_caddy.py +111 -0
  183. dissect.target-3.14/tests/plugins/apps/webserver/test_iis.py +185 -0
  184. dissect.target-3.14/tests/plugins/apps/webserver/test_nginx.py +126 -0
  185. dissect.target-3.14/tests/plugins/child/__init__.py +0 -0
  186. dissect.target-3.14/tests/plugins/child/test_hyperv.py +37 -0
  187. dissect.target-3.14/tests/plugins/filesystem/__init__.py +0 -0
  188. dissect.target-3.14/tests/plugins/filesystem/ntfs/__init__.py +0 -0
  189. dissect.target-3.14/tests/plugins/filesystem/ntfs/test_mft.py +200 -0
  190. dissect.target-3.14/tests/plugins/filesystem/ntfs/test_usnjrnl.py +21 -0
  191. dissect.target-3.14/tests/plugins/filesystem/test_acquire_handles.py +20 -0
  192. dissect.target-3.14/tests/plugins/filesystem/test_acquire_hash.py +13 -0
  193. dissect.target-3.14/tests/plugins/filesystem/test_icat.py +17 -0
  194. dissect.target-3.14/tests/plugins/filesystem/test_walkfs.py +32 -0
  195. dissect.target-3.14/tests/plugins/filesystem/test_yara.py +38 -0
  196. dissect.target-3.14/tests/plugins/filesystem/unix/__init__.py +0 -0
  197. dissect.target-3.14/tests/plugins/general/__init__.py +0 -0
  198. dissect.target-3.14/tests/plugins/general/test_config.py +83 -0
  199. dissect.target-3.14/tests/plugins/os/__init__.py +0 -0
  200. dissect.target-3.14/tests/plugins/os/unix/__init__.py +0 -0
  201. dissect.target-3.14/tests/plugins/os/unix/bsd/__init__.py +0 -0
  202. dissect.target-3.14/tests/plugins/os/unix/bsd/citrix/__init__.py +0 -0
  203. dissect.target-3.14/tests/plugins/os/unix/bsd/osx/__init__.py +0 -0
  204. dissect.target-3.14/tests/plugins/os/unix/bsd/osx/test__os.py +34 -0
  205. dissect.target-3.14/tests/plugins/os/unix/linux/__init__.py +0 -0
  206. dissect.target-3.14/tests/plugins/os/unix/linux/android/__init__.py +0 -0
  207. dissect.target-3.14/tests/plugins/os/unix/linux/android/test__os.py +10 -0
  208. dissect.target-3.14/tests/plugins/os/unix/linux/debian/__init__.py +0 -0
  209. dissect.target-3.14/tests/plugins/os/unix/linux/debian/test_apt.py +39 -0
  210. dissect.target-3.14/tests/plugins/os/unix/linux/debian/test_dpkg.py +55 -0
  211. dissect.target-3.14/tests/plugins/os/unix/linux/redhat/__init__.py +0 -0
  212. dissect.target-3.14/tests/plugins/os/unix/linux/redhat/test_yum.py +39 -0
  213. dissect.target-3.14/tests/plugins/os/unix/linux/suse/__init__.py +0 -0
  214. dissect.target-3.14/tests/plugins/os/unix/linux/suse/test_zypper.py +39 -0
  215. dissect.target-3.14/tests/plugins/os/unix/linux/test_iptables.py +150 -0
  216. dissect.target-3.14/tests/plugins/os/unix/linux/test_modules.py +21 -0
  217. dissect.target-3.14/tests/plugins/os/unix/linux/test_services.py +62 -0
  218. dissect.target-3.14/tests/plugins/os/unix/log/__init__.py +0 -0
  219. dissect.target-3.14/tests/plugins/os/unix/log/test_atop.py +43 -0
  220. dissect.target-3.14/tests/plugins/os/unix/log/test_audit.py +48 -0
  221. dissect.target-3.14/tests/plugins/os/unix/log/test_auth.py +102 -0
  222. dissect.target-3.14/tests/plugins/os/unix/log/test_lastlog.py +22 -0
  223. dissect.target-3.14/tests/plugins/os/unix/log/test_messages.py +105 -0
  224. dissect.target-3.14/tests/plugins/os/unix/log/test_utmp.py +65 -0
  225. dissect.target-3.14/tests/plugins/os/unix/test__os.py +63 -0
  226. dissect.target-3.14/tests/plugins/os/unix/test_generic.py +19 -0
  227. dissect.target-3.14/tests/plugins/os/unix/test_ips.py +100 -0
  228. dissect.target-3.14/tests/plugins/os/unix/test_journal.py +27 -0
  229. dissect.target-3.14/tests/plugins/os/unix/test_locale.py +78 -0
  230. dissect.target-3.14/tests/plugins/os/unix/test_packagemanager.py +15 -0
  231. dissect.target-3.14/tests/plugins/os/unix/test_shadow.py +29 -0
  232. dissect.target-3.14/tests/plugins/os/unix/test_users.py +48 -0
  233. dissect.target-3.14/tests/plugins/os/unix/test_version.py +104 -0
  234. dissect.target-3.14/tests/plugins/os/windows/__init__.py +0 -0
  235. dissect.target-3.14/tests/plugins/os/windows/log/test_evt.py +91 -0
  236. dissect.target-3.14/tests/plugins/os/windows/log/test_evtx.py +102 -0
  237. dissect.target-3.14/tests/plugins/os/windows/regf/__init__.py +0 -0
  238. dissect.target-3.14/tests/plugins/os/windows/regf/test_trusteddocs.py +26 -0
  239. dissect.target-3.14/tests/plugins/os/windows/test_adpolicy.py +13 -0
  240. dissect.target-3.14/tests/plugins/os/windows/test_amcache.py +161 -0
  241. dissect.target-3.14/tests/plugins/os/windows/test_clfs.py +84 -0
  242. dissect.target-3.14/tests/plugins/os/windows/test_defender.py +162 -0
  243. dissect.target-3.14/tests/plugins/os/windows/test_dpapi.py +42 -0
  244. dissect.target-3.14/tests/plugins/os/windows/test_env.py +213 -0
  245. dissect.target-3.14/tests/plugins/os/windows/test_lnk.py +34 -0
  246. dissect.target-3.14/tests/plugins/os/windows/test_notifications.py +94 -0
  247. dissect.target-3.14/tests/plugins/os/windows/test_sru.py +24 -0
  248. dissect.target-3.14/tests/plugins/os/windows/test_syscache.py +12 -0
  249. dissect.target-3.14/tests/plugins/os/windows/test_tasks.py +221 -0
  250. dissect.target-3.14/tests/plugins/os/windows/test_ual.py +28 -0
  251. dissect.target-3.14/tests/plugins/os/windows/test_wer.py +30 -0
  252. dissect.target-3.14/tests/test_container.py +97 -0
  253. dissect.target-3.14/tests/test_filesystem.py +1121 -0
  254. dissect.target-3.14/tests/test_plugin.py +250 -0
  255. dissect.target-3.14/tests/test_registration.py +125 -0
  256. dissect.target-3.14/tests/test_target.py +523 -0
  257. dissect.target-3.14/tests/test_volume.py +31 -0
  258. dissect.target-3.14/tests/tools/__init__.py +0 -0
  259. dissect.target-3.14/tests/tools/test_dump.py +215 -0
  260. dissect.target-3.14/tests/tools/test_query.py +236 -0
  261. dissect.target-3.14/tests/tools/test_shell.py +283 -0
  262. dissect.target-3.14/tests/volumes/__init__.py +0 -0
  263. dissect.target-3.14/tests/volumes/test_bde.py +106 -0
  264. dissect.target-3.14/tests/volumes/test_md.py +30 -0
  265. dissect.target-3.14/tox.ini +78 -0
  266. dissect.target-3.13.dev13/MANIFEST.in +0 -3
  267. dissect.target-3.13.dev13/PKG-INFO +0 -253
  268. dissect.target-3.13.dev13/dissect/target/container.py +0 -218
  269. dissect.target-3.13.dev13/dissect/target/containers/asdf.py +0 -49
  270. dissect.target-3.13.dev13/dissect/target/containers/ewf.py +0 -48
  271. dissect.target-3.13.dev13/dissect/target/containers/hdd.py +0 -37
  272. dissect.target-3.13.dev13/dissect/target/containers/hds.py +0 -41
  273. dissect.target-3.13.dev13/dissect/target/containers/qcow2.py +0 -40
  274. dissect.target-3.13.dev13/dissect/target/containers/raw.py +0 -40
  275. dissect.target-3.13.dev13/dissect/target/containers/split.py +0 -83
  276. dissect.target-3.13.dev13/dissect/target/containers/vdi.py +0 -41
  277. dissect.target-3.13.dev13/dissect/target/containers/vhd.py +0 -42
  278. dissect.target-3.13.dev13/dissect/target/containers/vhdx.py +0 -36
  279. dissect.target-3.13.dev13/dissect/target/containers/vmdk.py +0 -38
  280. dissect.target-3.13.dev13/dissect/target/filesystem.py +0 -1473
  281. dissect.target-3.13.dev13/dissect/target/filesystems/ad1.py +0 -82
  282. dissect.target-3.13.dev13/dissect/target/filesystems/cb.py +0 -151
  283. dissect.target-3.13.dev13/dissect/target/filesystems/config.py +0 -170
  284. dissect.target-3.13.dev13/dissect/target/filesystems/dir.py +0 -122
  285. dissect.target-3.13.dev13/dissect/target/filesystems/exfat.py +0 -151
  286. dissect.target-3.13.dev13/dissect/target/filesystems/extfs.py +0 -139
  287. dissect.target-3.13.dev13/dissect/target/filesystems/fat.py +0 -115
  288. dissect.target-3.13.dev13/dissect/target/filesystems/ffs.py +0 -138
  289. dissect.target-3.13.dev13/dissect/target/filesystems/itunes.py +0 -185
  290. dissect.target-3.13.dev13/dissect/target/filesystems/ntfs.py +0 -197
  291. dissect.target-3.13.dev13/dissect/target/filesystems/smb.py +0 -183
  292. dissect.target-3.13.dev13/dissect/target/filesystems/squashfs.py +0 -120
  293. dissect.target-3.13.dev13/dissect/target/filesystems/tar.py +0 -171
  294. dissect.target-3.13.dev13/dissect/target/filesystems/vmfs.py +0 -138
  295. dissect.target-3.13.dev13/dissect/target/filesystems/xfs.py +0 -142
  296. dissect.target-3.13.dev13/dissect/target/filesystems/zip.py +0 -136
  297. dissect.target-3.13.dev13/dissect/target/helpers/cache.py +0 -231
  298. dissect.target-3.13.dev13/dissect/target/helpers/configutil.py +0 -409
  299. dissect.target-3.13.dev13/dissect/target/helpers/fsutil.py +0 -1092
  300. dissect.target-3.13.dev13/dissect/target/helpers/hashutil.py +0 -95
  301. dissect.target-3.13.dev13/dissect/target/helpers/keychain.py +0 -101
  302. dissect.target-3.13.dev13/dissect/target/helpers/utils.py +0 -116
  303. dissect.target-3.13.dev13/dissect/target/loaders/ad1.py +0 -26
  304. dissect.target-3.13.dev13/dissect/target/loaders/asdf.py +0 -34
  305. dissect.target-3.13.dev13/dissect/target/loaders/log.py +0 -37
  306. dissect.target-3.13.dev13/dissect/target/loaders/smb.py +0 -358
  307. dissect.target-3.13.dev13/dissect/target/loaders/targetd.py +0 -211
  308. dissect.target-3.13.dev13/dissect/target/loaders/vma.py +0 -25
  309. dissect.target-3.13.dev13/dissect/target/loaders/xva.py +0 -27
  310. dissect.target-3.13.dev13/dissect/target/plugin.py +0 -1140
  311. dissect.target-3.13.dev13/dissect/target/plugins/apps/av/sophos.py +0 -112
  312. dissect.target-3.13.dev13/dissect/target/plugins/apps/av/symantec.py +0 -359
  313. dissect.target-3.13.dev13/dissect/target/plugins/apps/av/trendmicro.py +0 -122
  314. dissect.target-3.13.dev13/dissect/target/plugins/apps/remoteaccess/teamviewer.py +0 -83
  315. dissect.target-3.13.dev13/dissect/target/plugins/apps/ssh/opensshd.py +0 -179
  316. dissect.target-3.13.dev13/dissect/target/plugins/apps/webservers/apache.py +0 -159
  317. dissect.target-3.13.dev13/dissect/target/plugins/apps/webservers/caddy.py +0 -148
  318. dissect.target-3.13.dev13/dissect/target/plugins/apps/webservers/iis.py +0 -337
  319. dissect.target-3.13.dev13/dissect/target/plugins/apps/webservers/nginx.py +0 -93
  320. dissect.target-3.13.dev13/dissect/target/plugins/browsers/chrome.py +0 -52
  321. dissect.target-3.13.dev13/dissect/target/plugins/browsers/chromium.py +0 -349
  322. dissect.target-3.13.dev13/dissect/target/plugins/browsers/edge.py +0 -50
  323. dissect.target-3.13.dev13/dissect/target/plugins/browsers/firefox.py +0 -225
  324. dissect.target-3.13.dev13/dissect/target/plugins/browsers/iexplore.py +0 -210
  325. dissect.target-3.13.dev13/dissect/target/plugins/child/hyperv.py +0 -59
  326. dissect.target-3.13.dev13/dissect/target/plugins/child/vmware_workstation.py +0 -47
  327. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/acquire_handles.py +0 -46
  328. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/acquire_hash.py +0 -50
  329. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/icat.py +0 -100
  330. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/ntfs/mft.py +0 -267
  331. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/ntfs/mft_timeline.py +0 -172
  332. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/ntfs/usnjrnl.py +0 -78
  333. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/resolver.py +0 -108
  334. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/unix/capability.py +0 -158
  335. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/walkfs.py +0 -64
  336. dissect.target-3.13.dev13/dissect/target/plugins/filesystem/yara.py +0 -62
  337. dissect.target-3.13.dev13/dissect/target/plugins/general/config.py +0 -77
  338. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/_os.py +0 -344
  339. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/bsd/osx/user.py +0 -55
  340. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/cronjobs.py +0 -118
  341. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/generic.py +0 -61
  342. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/history.py +0 -194
  343. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux/_os.py +0 -81
  344. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux/android/_os.py +0 -62
  345. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux/esxi/_os.py +0 -451
  346. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux/suse/zypper.py +0 -82
  347. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/locale.py +0 -106
  348. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/log/journal.py +0 -459
  349. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/packagemanager.py +0 -81
  350. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/services.py +0 -151
  351. dissect.target-3.13.dev13/dissect/target/plugins/os/unix/shadow.py +0 -112
  352. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/_os.py +0 -324
  353. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/amcache.py +0 -652
  354. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/catroot.py +0 -126
  355. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/cim.py +0 -73
  356. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/datetime.py +0 -249
  357. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/defender.py +0 -566
  358. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/generic.py +0 -574
  359. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/lnk.py +0 -171
  360. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/log/amcache.py +0 -163
  361. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/log/pfro.py +0 -78
  362. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/prefetch.py +0 -317
  363. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/recyclebin.py +0 -139
  364. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/7zip.py +0 -109
  365. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/bam.py +0 -62
  366. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/cit.py +0 -963
  367. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/mru.py +0 -416
  368. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/muicache.py +0 -96
  369. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/recentfilecache.py +0 -66
  370. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/runkeys.py +0 -83
  371. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/shimcache.py +0 -363
  372. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/trusteddocs.py +0 -81
  373. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/regf/userassist.py +0 -138
  374. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/services.py +0 -168
  375. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/sru.py +0 -481
  376. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/startupinfo.py +0 -90
  377. dissect.target-3.13.dev13/dissect/target/plugins/os/windows/syscache.py +0 -94
  378. dissect.target-3.13.dev13/dissect/target/target.py +0 -768
  379. dissect.target-3.13.dev13/dissect/target/tools/info.py +0 -150
  380. dissect.target-3.13.dev13/dissect/target/tools/mount.py +0 -102
  381. dissect.target-3.13.dev13/dissect/target/tools/query.py +0 -380
  382. dissect.target-3.13.dev13/dissect/target/tools/shell.py +0 -1220
  383. dissect.target-3.13.dev13/dissect/target/volume.py +0 -411
  384. dissect.target-3.13.dev13/dissect/target/volumes/bde.py +0 -104
  385. dissect.target-3.13.dev13/dissect/target/volumes/disk.py +0 -35
  386. dissect.target-3.13.dev13/dissect/target/volumes/lvm.py +0 -77
  387. dissect.target-3.13.dev13/dissect/target/volumes/md.py +0 -50
  388. dissect.target-3.13.dev13/dissect/target/volumes/vmfs.py +0 -61
  389. dissect.target-3.13.dev13/dissect.target.egg-info/PKG-INFO +0 -253
  390. dissect.target-3.13.dev13/dissect.target.egg-info/SOURCES.txt +0 -660
  391. dissect.target-3.13.dev13/dissect.target.egg-info/requires.txt +0 -44
  392. dissect.target-3.13.dev13/pyproject.toml +0 -118
  393. dissect.target-3.13.dev13/tests/conftest.py +0 -416
  394. dissect.target-3.13.dev13/tests/data/PcaAppLaunchDic.txt +0 -57
  395. dissect.target-3.13.dev13/tests/data/SRUDB.dat +0 -0
  396. dissect.target-3.13.dev13/tests/data/Syscache.hve +0 -0
  397. dissect.target-3.13.dev13/tests/data/TestAnydesk.trace +0 -4
  398. dissect.target-3.13.dev13/tests/data/TestLog.evt +0 -0
  399. dissect.target-3.13.dev13/tests/data/TestLogX.evtx +0 -0
  400. dissect.target-3.13.dev13/tests/data/TestTeamviewer.log +0 -4
  401. dissect.target-3.13.dev13/tests/data/amcache-new.hve +0 -0
  402. dissect.target-3.13.dev13/tests/data/amcache-old.hve +0 -0
  403. dissect.target-3.13.dev13/tests/data/amcache_install/INSTALL_0000_594e4eb0-cb0e-4787-99de-3126f8d9e299.txt +0 -0
  404. dissect.target-3.13.dev13/tests/data/apps/av/mcafee/firewall.log +0 -0
  405. dissect.target-3.13.dev13/tests/data/apps/av/mcafee/infect.log +0 -0
  406. dissect.target-3.13.dev13/tests/data/apps/av/sophos/Clean.log +0 -0
  407. dissect.target-3.13.dev13/tests/data/apps/av/sophos/excalibur.db +0 -0
  408. dissect.target-3.13.dev13/tests/data/apps/av/trendmicro/firewall.log +0 -0
  409. dissect.target-3.13.dev13/tests/data/apps/av/trendmicro/pccnt35.log +0 -1
  410. dissect.target-3.13.dev13/tests/data/apps/containers/docker/container_running.json +0 -149
  411. dissect.target-3.13.dev13/tests/data/apps/containers/docker/image_metadata.json +0 -73
  412. dissect.target-3.13.dev13/tests/data/apps/containers/docker/repositories.json +0 -8
  413. dissect.target-3.13.dev13/tests/data/clfs/DRIVERS{53b39e70-18c4-11ea-a811-000d3aa4692b}.TM.blf +0 -0
  414. dissect.target-3.13.dev13/tests/data/clfs/DRIVERS{53b39e70-18c4-11ea-a811-000d3aa4692b}.TMContainer00000000000000000001.regtrans-ms +0 -0
  415. dissect.target-3.13.dev13/tests/data/defender-operational.evtx +0 -0
  416. dissect.target-3.13.dev13/tests/data/defender-quarantine/Entries/{800362A7-0000-0000-FB11-12639186E0D6} +0 -0
  417. dissect.target-3.13.dev13/tests/data/defender-quarantine/ResourceData/A6/A6C8322B8A19AEED96EFBD045206966DA4C9619D +0 -0
  418. dissect.target-3.13.dev13/tests/data/defender-quarantine/Resources/A6/A6C8322B8A19AEED96EFBD045206966DA4C9619D +0 -0
  419. dissect.target-3.13.dev13/tests/data/enc-volume.bin +0 -0
  420. dissect.target-3.13.dev13/tests/data/helpers/configparser/config +0 -5
  421. dissect.target-3.13.dev13/tests/data/helpers/configparser/hosts +0 -3
  422. dissect.target-3.13.dev13/tests/data/helpers/configparser/hosts.allow +0 -12
  423. dissect.target-3.13.dev13/tests/data/helpers/configparser/hosts.deny +0 -17
  424. dissect.target-3.13.dev13/tests/data/helpers/configparser/resolv.conf +0 -19
  425. dissect.target-3.13.dev13/tests/data/helpers/configparser/sshd_config +0 -88
  426. dissect.target-3.13.dev13/tests/data/keychain.csv +0 -4
  427. dissect.target-3.13.dev13/tests/data/loaders/asdf/metadata.asdf +0 -0
  428. dissect.target-3.13.dev13/tests/data/loaders/hyperv/993F7B33-6057-4D1E-A1FE-A1A1D77BE974.vmcx +0 -0
  429. dissect.target-3.13.dev13/tests/data/loaders/hyperv/B90AC31B-C6F8-479F-9B91-07B894A6A3F6.xml +0 -0
  430. dissect.target-3.13.dev13/tests/data/loaders/hyperv/D351C151-DAC7-4042-B434-B72D522C1E4A.xml +0 -0
  431. dissect.target-3.13.dev13/tests/data/loaders/hyperv/EC04F346-DB96-4700-AF5B-77B3C56C38BD.vmcx +0 -0
  432. dissect.target-3.13.dev13/tests/data/loaders/tar/test-archive-dot-folder.tgz +0 -0
  433. dissect.target-3.13.dev13/tests/data/mft.raw +0 -0
  434. dissect.target-3.13.dev13/tests/data/places.sqlite +0 -0
  435. dissect.target-3.13.dev13/tests/data/plugin_register/container.py +0 -39
  436. dissect.target-3.13.dev13/tests/data/plugin_register/filesystem.py +0 -23
  437. dissect.target-3.13.dev13/tests/data/plugin_register/loader.py +0 -17
  438. dissect.target-3.13.dev13/tests/data/plugin_register/plugin.py +0 -11
  439. dissect.target-3.13.dev13/tests/data/plugins/apps/av/symantec/cve.log +0 -1
  440. dissect.target-3.13.dev13/tests/data/plugins/apps/av/symantec/tralog.log +0 -4
  441. dissect.target-3.13.dev13/tests/data/plugins/apps/sshd_config +0 -118
  442. dissect.target-3.13.dev13/tests/data/plugins/apps/webhosting/cpanel/lastlogin +0 -5
  443. dissect.target-3.13.dev13/tests/data/plugins/browsers/chrome/History.sqlite +0 -0
  444. dissect.target-3.13.dev13/tests/data/plugins/browsers/chrome/windows/Preferences +0 -1
  445. dissect.target-3.13.dev13/tests/data/plugins/browsers/chrome/windows/Secure Preferences +0 -1
  446. dissect.target-3.13.dev13/tests/data/plugins/browsers/chromium/History.sqlite +0 -0
  447. dissect.target-3.13.dev13/tests/data/plugins/browsers/chromium/windows/Preferences +0 -1
  448. dissect.target-3.13.dev13/tests/data/plugins/browsers/chromium/windows/Secure Preferences +0 -1
  449. dissect.target-3.13.dev13/tests/data/plugins/browsers/edge/History.sqlite +0 -0
  450. dissect.target-3.13.dev13/tests/data/plugins/browsers/edge/windows/Preferences +0 -1
  451. dissect.target-3.13.dev13/tests/data/plugins/browsers/edge/windows/Secure Preferences +0 -1
  452. dissect.target-3.13.dev13/tests/data/plugins/browsers/firefox/places.sqlite +0 -0
  453. dissect.target-3.13.dev13/tests/data/plugins/browsers/iexplore/WebCacheV01.dat.gz +0 -0
  454. dissect.target-3.13.dev13/tests/data/plugins/child/hyperv/data.vmcx +0 -0
  455. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/citrix/flash/.version +0 -1
  456. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/citrix/flash/boot/loader.conf +0 -5
  457. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/citrix/flash/nsconfig/ns.conf +0 -23
  458. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/citrix/flash/nsconfig/ns.conf.0 +0 -24
  459. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/freebsd/freebsd-freebsd-version +0 -141
  460. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/osx/os/SystemVersion.plist +0 -18
  461. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/osx/os/dissect.plist +0 -54
  462. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/osx/os/en0.plist +0 -12
  463. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/osx/os/preferences.plist +0 -158
  464. dissect.target-3.13.dev13/tests/data/plugins/os/unix/bsd/osx/os/test.plist +0 -41
  465. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/debian/apt/history.log +0 -22
  466. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/debian/apt/history.log.1.bz2 +0 -0
  467. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/debian/apt/history.log.1.gz +0 -0
  468. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/debian/debian-os-release +0 -9
  469. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/debian/ubuntu-lsb-release +0 -4
  470. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/debian/ubuntu-os-release +0 -12
  471. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/modulea/coresize +0 -1
  472. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/modulea/holders/holdera +0 -1
  473. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/modulea/initstate +0 -1
  474. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/modulea/refcnt +0 -1
  475. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/moduleb/coresize +0 -1
  476. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/moduleb/holders/holdera +0 -1
  477. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/moduleb/holders/holderb +0 -1
  478. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/moduleb/initstate +0 -1
  479. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/modules/module/moduleb/refcnt +0 -1
  480. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/redhat/centos-os-release +0 -13
  481. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/redhat/fedora-os-release +0 -22
  482. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/redhat/yum/yum.log +0 -5
  483. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/redhat/yum/yum.log.1.bz2 +0 -0
  484. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/redhat/yum/yum.log.1.gz +0 -0
  485. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/suse/opensuse-os-release +0 -12
  486. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/suse/zypp/history +0 -123
  487. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/suse/zypp/history.1.bz2 +0 -0
  488. dissect.target-3.13.dev13/tests/data/plugins/os/unix/linux/suse/zypp/history.1.gz +0 -0
  489. dissect.target-3.13.dev13/tests/data/plugins/os/unix/log/atop/atop +0 -0
  490. dissect.target-3.13.dev13/tests/data/plugins/os/unix/log/btmp/btmp +0 -0
  491. dissect.target-3.13.dev13/tests/data/plugins/os/unix/log/btmp/btmp-ipv6 +0 -0
  492. dissect.target-3.13.dev13/tests/data/plugins/os/unix/log/journal +0 -0
  493. dissect.target-3.13.dev13/tests/data/plugins/os/unix/log/lastlog/lastlog +0 -0
  494. dissect.target-3.13.dev13/tests/data/plugins/os/unix/log/wtmp/wtmp +0 -0
  495. dissect.target-3.13.dev13/tests/data/plugins/os/unix/log/wtmp/wtmp-ipv6 +0 -0
  496. dissect.target-3.13.dev13/tests/data/plugins/os/unix/services/initd.sh +0 -16
  497. dissect.target-3.13.dev13/tests/data/plugins/os/unix/services/systemd.service +0 -14
  498. dissect.target-3.13.dev13/tests/data/plugins/os/unix/services/systemd2.service +0 -15
  499. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/GPT.INI +0 -2
  500. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Microsoft/Windows NT/Audit/audit.csv +0 -11
  501. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Microsoft/Windows NT/SecEdit/GptTmpl.inf +0 -0
  502. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol +0 -0
  503. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/comment.cmtx +0 -12
  504. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{393FA062-30DB-40AC-A15E-E0B12B9F2928}/GPT.INI +0 -3
  505. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{6AC1786C-016F-11D2-945F-00C04fB984F9}/GPT.INI +0 -2
  506. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{6AC1786C-016F-11D2-945F-00C04fB984F9}/MACHINE/Microsoft/Windows NT/SecEdit/GptTmpl.inf +0 -0
  507. dissect.target-3.13.dev13/tests/data/plugins/os/windows/adpolicy/{CC63F200-7309-4ba0-B154-A71CD118DBCC}/USER/Preferences/ScheduledTasks/ScheduledTasks.xml +0 -11
  508. dissect.target-3.13.dev13/tests/data/plugins/os/windows/dpapi/master_keys/d8ef5e00-328a-4919-9ab6-c058f493a6e3 +0 -0
  509. dissect.target-3.13.dev13/tests/data/plugins/os/windows/dpapi/test_data.dpapi +0 -0
  510. dissect.target-3.13.dev13/tests/data/plugins/os/windows/lnk/pestudio.lnk +0 -0
  511. dissect.target-3.13.dev13/tests/data/plugins/os/windows/notifications/appdb.dat.v3.gz +0 -0
  512. dissect.target-3.13.dev13/tests/data/plugins/os/windows/notifications/wpndatabase.db +0 -0
  513. dissect.target-3.13.dev13/tests/data/plugins/os/windows/powershell/ConsoleHost_history.txt +0 -4
  514. dissect.target-3.13.dev13/tests/data/plugins/os/windows/tasks/AtTask.job +0 -0
  515. dissect.target-3.13.dev13/tests/data/plugins/os/windows/tasks/MapsToastTask +0 -0
  516. dissect.target-3.13.dev13/tests/data/regflex.reg +0 -568
  517. dissect.target-3.13.dev13/tests/data/symlink_disk.ext4 +0 -0
  518. dissect.target-3.13.dev13/tests/data/test-acquire-handles.tar +0 -0
  519. dissect.target-3.13.dev13/tests/data/test-acquire-hash.tar +0 -0
  520. dissect.target-3.13.dev13/tests/data/test-archive-empty-folder.tgz +0 -0
  521. dissect.target-3.13.dev13/tests/data/test-archive.tar.gz +0 -0
  522. dissect.target-3.13.dev13/tests/data/test-windows-fs-c-absolute.tar +0 -0
  523. dissect.target-3.13.dev13/tests/data/test-windows-fs-c-relative.tar +0 -0
  524. dissect.target-3.13.dev13/tests/data/test-windows-sysvol-absolute.tar +0 -0
  525. dissect.target-3.13.dev13/tests/data/test-windows-sysvol-relative.tar +0 -0
  526. dissect.target-3.13.dev13/tests/data/ual/Current.mdb +0 -0
  527. dissect.target-3.13.dev13/tests/data/ual/SystemIdentity.mdb +0 -0
  528. dissect.target-3.13.dev13/tests/data/unix/configs/ips/eth0.xml +0 -31
  529. dissect.target-3.13.dev13/tests/data/unix/configs/ips/interfaces +0 -19
  530. dissect.target-3.13.dev13/tests/data/unix/configs/keyboard +0 -10
  531. dissect.target-3.13.dev13/tests/data/unix/configs/passwd +0 -5
  532. dissect.target-3.13.dev13/tests/data/unix/configs/shadow +0 -4
  533. dissect.target-3.13.dev13/tests/data/unix/linux/proc/net/packet +0 -2
  534. dissect.target-3.13.dev13/tests/data/unix/linux/proc/net/raw +0 -2
  535. dissect.target-3.13.dev13/tests/data/unix/linux/proc/net/raw6 +0 -2
  536. dissect.target-3.13.dev13/tests/data/unix/linux/proc/net/tcp +0 -4
  537. dissect.target-3.13.dev13/tests/data/unix/linux/proc/net/tcp6 +0 -3
  538. dissect.target-3.13.dev13/tests/data/unix/linux/proc/net/udp +0 -4
  539. dissect.target-3.13.dev13/tests/data/unix/linux/proc/net/udp6 +0 -3
  540. dissect.target-3.13.dev13/tests/data/unix/linux/proc/net/unix +0 -5
  541. dissect.target-3.13.dev13/tests/data/unix/logs/audit.log +0 -4
  542. dissect.target-3.13.dev13/tests/data/unix/logs/auth/auth.log +0 -10
  543. dissect.target-3.13.dev13/tests/data/unix/logs/auth/auth.log.bz2 +0 -0
  544. dissect.target-3.13.dev13/tests/data/unix/logs/auth/auth.log.gz +0 -0
  545. dissect.target-3.13.dev13/tests/data/unix/logs/auth/secure +0 -2
  546. dissect.target-3.13.dev13/tests/data/unix/logs/dpkg-status +0 -215
  547. dissect.target-3.13.dev13/tests/data/unix/logs/dpkg.log +0 -366
  548. dissect.target-3.13.dev13/tests/data/unix/logs/dpkg.log.2.gz +0 -0
  549. dissect.target-3.13.dev13/tests/data/unix/logs/messages +0 -2
  550. dissect.target-3.13.dev13/tests/data/unix/logs/passwd-syslog +0 -23
  551. dissect.target-3.13.dev13/tests/data/uppercase_driveletter.tar +0 -0
  552. dissect.target-3.13.dev13/tests/data/usnjrnl.bin +0 -0
  553. dissect.target-3.13.dev13/tests/data/volumes/md-nested.bin.gz +0 -0
  554. dissect.target-3.13.dev13/tests/data/vpns/openvpn/client.conf +0 -130
  555. dissect.target-3.13.dev13/tests/data/vpns/openvpn/server.conf +0 -318
  556. dissect.target-3.13.dev13/tests/data/vpns/wireguard/wg0.conf +0 -30
  557. dissect.target-3.13.dev13/tests/data/webservers/apache/access.log +0 -4
  558. dissect.target-3.13.dev13/tests/data/webservers/apache/access.log.bz2 +0 -0
  559. dissect.target-3.13.dev13/tests/data/webservers/apache/access.log.gz +0 -0
  560. dissect.target-3.13.dev13/tests/data/webservers/caddy/Caddyfile +0 -30
  561. dissect.target-3.13.dev13/tests/data/webservers/caddy/access.log +0 -2
  562. dissect.target-3.13.dev13/tests/data/webservers/iis/iis-applicationHost-iis.config +0 -733
  563. dissect.target-3.13.dev13/tests/data/webservers/iis/iis-applicationHost-w3c-logFile-without-directory-attr.config +0 -728
  564. dissect.target-3.13.dev13/tests/data/webservers/iis/iis-applicationHost-w3c.config +0 -733
  565. dissect.target-3.13.dev13/tests/data/webservers/iis/iis-logs-iis/W3SVC1/u_in211001.log +0 -10
  566. dissect.target-3.13.dev13/tests/data/webservers/iis/iis-logs-w3c/W3SVC1/u_ex211001_x.log +0 -32
  567. dissect.target-3.13.dev13/tests/data/webservers/nginx/access.log +0 -2
  568. dissect.target-3.13.dev13/tests/data/webservers/nginx/access.log.bz2 +0 -0
  569. dissect.target-3.13.dev13/tests/data/webservers/nginx/access.log.gz +0 -0
  570. dissect.target-3.13.dev13/tests/data/webservers/nginx/nginx.conf +0 -82
  571. dissect.target-3.13.dev13/tests/data/wer/wer_test.tmp.WERInternalMetadata.xml +0 -0
  572. dissect.target-3.13.dev13/tests/data/wer/wer_test.wer +0 -0
  573. dissect.target-3.13.dev13/tests/data/wer/windows7/wer_test_no_bom.wer +0 -0
  574. dissect.target-3.13.dev13/tests/test_container_open.py +0 -71
  575. dissect.target-3.13.dev13/tests/test_filesystem.py +0 -1093
  576. dissect.target-3.13.dev13/tests/test_filesystems_config.py +0 -164
  577. dissect.target-3.13.dev13/tests/test_filesystems_dir.py +0 -83
  578. dissect.target-3.13.dev13/tests/test_helpers_configutil.py +0 -153
  579. dissect.target-3.13.dev13/tests/test_helpers_docs.py +0 -49
  580. dissect.target-3.13.dev13/tests/test_helpers_fsutil.py +0 -371
  581. dissect.target-3.13.dev13/tests/test_helpers_hashutil.py +0 -101
  582. dissect.target-3.13.dev13/tests/test_helpers_keychain.py +0 -31
  583. dissect.target-3.13.dev13/tests/test_helpers_regutil.py +0 -312
  584. dissect.target-3.13.dev13/tests/test_loaders_asdf.py +0 -22
  585. dissect.target-3.13.dev13/tests/test_loaders_cb.py +0 -125
  586. dissect.target-3.13.dev13/tests/test_loaders_dir.py +0 -85
  587. dissect.target-3.13.dev13/tests/test_loaders_hyperv.py +0 -72
  588. dissect.target-3.13.dev13/tests/test_loaders_kape.py +0 -33
  589. dissect.target-3.13.dev13/tests/test_loaders_local.py +0 -135
  590. dissect.target-3.13.dev13/tests/test_loaders_log.py +0 -30
  591. dissect.target-3.13.dev13/tests/test_loaders_pvm.py +0 -22
  592. dissect.target-3.13.dev13/tests/test_loaders_smb.py +0 -57
  593. dissect.target-3.13.dev13/tests/test_loaders_tanium.py +0 -33
  594. dissect.target-3.13.dev13/tests/test_loaders_tar.py +0 -64
  595. dissect.target-3.13.dev13/tests/test_loaders_utm.py +0 -49
  596. dissect.target-3.13.dev13/tests/test_loaders_velociraptor.py +0 -148
  597. dissect.target-3.13.dev13/tests/test_loaders_vmwarevm.py +0 -28
  598. dissect.target-3.13.dev13/tests/test_plugin.py +0 -250
  599. dissect.target-3.13.dev13/tests/test_plugins_apps_av_mcafee.py +0 -38
  600. dissect.target-3.13.dev13/tests/test_plugins_apps_av_sophos.py +0 -38
  601. dissect.target-3.13.dev13/tests/test_plugins_apps_av_symantec.py +0 -65
  602. dissect.target-3.13.dev13/tests/test_plugins_apps_av_trendmicro.py +0 -38
  603. dissect.target-3.13.dev13/tests/test_plugins_apps_containers_docker.py +0 -72
  604. dissect.target-3.13.dev13/tests/test_plugins_apps_remoteaccess_anydesk.py +0 -48
  605. dissect.target-3.13.dev13/tests/test_plugins_apps_remoteaccess_teamviewer.py +0 -48
  606. dissect.target-3.13.dev13/tests/test_plugins_apps_shell_powershell.py +0 -35
  607. dissect.target-3.13.dev13/tests/test_plugins_apps_ssh_openssh.py +0 -396
  608. dissect.target-3.13.dev13/tests/test_plugins_apps_ssh_opensshd.py +0 -26
  609. dissect.target-3.13.dev13/tests/test_plugins_apps_vpns_openvpn.py +0 -95
  610. dissect.target-3.13.dev13/tests/test_plugins_apps_vpns_wireguard.py +0 -28
  611. dissect.target-3.13.dev13/tests/test_plugins_apps_webhosting_cpanel.py +0 -25
  612. dissect.target-3.13.dev13/tests/test_plugins_apps_webservers_apache.py +0 -170
  613. dissect.target-3.13.dev13/tests/test_plugins_apps_webservers_caddy.py +0 -112
  614. dissect.target-3.13.dev13/tests/test_plugins_apps_webservers_iis.py +0 -189
  615. dissect.target-3.13.dev13/tests/test_plugins_apps_webservers_nginx.py +0 -127
  616. dissect.target-3.13.dev13/tests/test_plugins_browsers.py +0 -188
  617. dissect.target-3.13.dev13/tests/test_plugins_child_hyperv.py +0 -38
  618. dissect.target-3.13.dev13/tests/test_plugins_filesystem_acquire_handles.py +0 -24
  619. dissect.target-3.13.dev13/tests/test_plugins_filesystem_acquire_hash.py +0 -14
  620. dissect.target-3.13.dev13/tests/test_plugins_filesystem_icat.py +0 -18
  621. dissect.target-3.13.dev13/tests/test_plugins_filesystem_ntfs_mft.py +0 -201
  622. dissect.target-3.13.dev13/tests/test_plugins_filesystem_ntfs_usnjrnl.py +0 -22
  623. dissect.target-3.13.dev13/tests/test_plugins_filesystem_walkfs.py +0 -88
  624. dissect.target-3.13.dev13/tests/test_plugins_filesystem_yara.py +0 -40
  625. dissect.target-3.13.dev13/tests/test_plugins_generic_config.py +0 -40
  626. dissect.target-3.13.dev13/tests/test_plugins_os_unix.py +0 -67
  627. dissect.target-3.13.dev13/tests/test_plugins_os_unix_bsd_osx_os.py +0 -35
  628. dissect.target-3.13.dev13/tests/test_plugins_os_unix_debian_dpkg.py +0 -56
  629. dissect.target-3.13.dev13/tests/test_plugins_os_unix_generic.py +0 -20
  630. dissect.target-3.13.dev13/tests/test_plugins_os_unix_ips.py +0 -101
  631. dissect.target-3.13.dev13/tests/test_plugins_os_unix_journal.py +0 -28
  632. dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_debian_apt.py +0 -40
  633. dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_iptables.py +0 -150
  634. dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_modules.py +0 -30
  635. dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_redhat_yum.py +0 -40
  636. dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_suse_zypper.py +0 -40
  637. dissect.target-3.13.dev13/tests/test_plugins_os_unix_locale.py +0 -79
  638. dissect.target-3.13.dev13/tests/test_plugins_os_unix_log.py +0 -121
  639. dissect.target-3.13.dev13/tests/test_plugins_os_unix_log_audit.py +0 -49
  640. dissect.target-3.13.dev13/tests/test_plugins_os_unix_log_auth.py +0 -109
  641. dissect.target-3.13.dev13/tests/test_plugins_os_unix_log_messages.py +0 -112
  642. dissect.target-3.13.dev13/tests/test_plugins_os_unix_packagemanager.py +0 -16
  643. dissect.target-3.13.dev13/tests/test_plugins_os_unix_services.py +0 -80
  644. dissect.target-3.13.dev13/tests/test_plugins_os_unix_shadow.py +0 -30
  645. dissect.target-3.13.dev13/tests/test_plugins_os_unix_users.py +0 -49
  646. dissect.target-3.13.dev13/tests/test_plugins_os_unix_version.py +0 -84
  647. dissect.target-3.13.dev13/tests/test_plugins_os_windows_adpolicy.py +0 -14
  648. dissect.target-3.13.dev13/tests/test_plugins_os_windows_amcache.py +0 -165
  649. dissect.target-3.13.dev13/tests/test_plugins_os_windows_clfs.py +0 -85
  650. dissect.target-3.13.dev13/tests/test_plugins_os_windows_defender.py +0 -161
  651. dissect.target-3.13.dev13/tests/test_plugins_os_windows_dpapi.py +0 -43
  652. dissect.target-3.13.dev13/tests/test_plugins_os_windows_env.py +0 -222
  653. dissect.target-3.13.dev13/tests/test_plugins_os_windows_lnk.py +0 -35
  654. dissect.target-3.13.dev13/tests/test_plugins_os_windows_log.py +0 -164
  655. dissect.target-3.13.dev13/tests/test_plugins_os_windows_notifications.py +0 -95
  656. dissect.target-3.13.dev13/tests/test_plugins_os_windows_regf_trusteddocs.py +0 -31
  657. dissect.target-3.13.dev13/tests/test_plugins_os_windows_sru.py +0 -25
  658. dissect.target-3.13.dev13/tests/test_plugins_os_windows_syscache.py +0 -13
  659. dissect.target-3.13.dev13/tests/test_plugins_os_windows_tasks.py +0 -222
  660. dissect.target-3.13.dev13/tests/test_plugins_os_windows_ual.py +0 -29
  661. dissect.target-3.13.dev13/tests/test_plugins_os_windows_wer.py +0 -31
  662. dissect.target-3.13.dev13/tests/test_registration.py +0 -125
  663. dissect.target-3.13.dev13/tests/test_shell.py +0 -153
  664. dissect.target-3.13.dev13/tests/test_target.py +0 -429
  665. dissect.target-3.13.dev13/tests/test_target_path.py +0 -54
  666. dissect.target-3.13.dev13/tests/test_tools_dump.py +0 -216
  667. dissect.target-3.13.dev13/tests/test_tools_query.py +0 -217
  668. dissect.target-3.13.dev13/tests/test_tools_shell.py +0 -98
  669. dissect.target-3.13.dev13/tests/test_volumes_bde.py +0 -106
  670. dissect.target-3.13.dev13/tests/test_volumes_md.py +0 -31
  671. dissect.target-3.13.dev13/tox.ini +0 -78
  672. {dissect.target-3.13.dev13 → dissect.target-3.14}/COPYRIGHT +0 -0
  673. {dissect.target-3.13.dev13 → dissect.target-3.14}/LICENSE +0 -0
  674. {dissect.target-3.13.dev13 → dissect.target-3.14}/README.md +0 -0
  675. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/__init__.py +0 -0
  676. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/containers/__init__.py +0 -0
  677. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/data/autocompletion/target_bash_completion.sh +0 -0
  678. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/exceptions.py +0 -0
  679. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/filesystems/__init__.py +0 -0
  680. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/__init__.py +0 -0
  681. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/config.py +0 -0
  682. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/data/windowsZones.xml +0 -0
  683. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/descriptor_extensions.py +0 -0
  684. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/docs.py +0 -0
  685. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/lazy.py +0 -0
  686. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/loaderutil.py +0 -0
  687. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/localeutil.py +0 -0
  688. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/mount.py +0 -0
  689. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/network_managers.py +0 -0
  690. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/record.py +0 -0
  691. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/regutil.py +0 -0
  692. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/shell_folder_ids.py +0 -0
  693. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/ssh.py +0 -0
  694. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/helpers/targetd.py +0 -0
  695. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loader.py +0 -0
  696. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/__init__.py +0 -0
  697. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/cb.py +0 -0
  698. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/dir.py +0 -0
  699. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/hyperv.py +0 -0
  700. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/itunes.py +0 -0
  701. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/kape.py +0 -0
  702. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/local.py +0 -0
  703. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/multiraw.py +0 -0
  704. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/ova.py +0 -0
  705. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/ovf.py +0 -0
  706. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/phobos.py +0 -0
  707. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/profile.py +0 -0
  708. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/pvm.py +0 -0
  709. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/pvs.py +0 -0
  710. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/raw.py +0 -0
  711. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/remote.py +0 -0
  712. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/res.py +0 -0
  713. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/tanium.py +0 -0
  714. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/tar.py +0 -0
  715. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/target.py +0 -0
  716. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/utm.py +0 -0
  717. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/vb.py +0 -0
  718. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/vbox.py +0 -0
  719. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/velociraptor.py +0 -0
  720. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/vmwarevm.py +0 -0
  721. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/loaders/vmx.py +0 -0
  722. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/__init__.py +0 -0
  723. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/apps/__init__.py +0 -0
  724. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/apps/av/__init__.py +0 -0
  725. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/apps/av/mcafee.py +0 -0
  726. {dissect.target-3.13.dev13/dissect/target/plugins/apps/containers → dissect.target-3.14/dissect/target/plugins/apps/browser}/__init__.py +0 -0
  727. {dissect.target-3.13.dev13/dissect/target/plugins/browsers → dissect.target-3.14/dissect/target/plugins/apps/browser}/browser.py +0 -0
  728. {dissect.target-3.13.dev13/dissect/target/plugins/apps/remoteaccess → dissect.target-3.14/dissect/target/plugins/apps/container}/__init__.py +0 -0
  729. {dissect.target-3.13.dev13/dissect/target/plugins/apps/containers → dissect.target-3.14/dissect/target/plugins/apps/container}/docker.py +0 -0
  730. {dissect.target-3.13.dev13/dissect/target/plugins/apps/shell → dissect.target-3.14/dissect/target/plugins/apps/remoteaccess}/__init__.py +0 -0
  731. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/apps/remoteaccess/anydesk.py +0 -0
  732. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/apps/remoteaccess/remoteaccess.py +0 -0
  733. {dissect.target-3.13.dev13/dissect/target/plugins/apps/ssh → dissect.target-3.14/dissect/target/plugins/apps/shell}/__init__.py +0 -0
  734. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/apps/shell/powershell.py +0 -0
  735. {dissect.target-3.13.dev13/dissect/target/plugins/apps/vpns → dissect.target-3.14/dissect/target/plugins/apps/ssh}/__init__.py +0 -0
  736. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/apps/ssh/openssh.py +0 -0
  737. {dissect.target-3.13.dev13/dissect/target/plugins/apps/webhosting → dissect.target-3.14/dissect/target/plugins/apps/vpn}/__init__.py +0 -0
  738. {dissect.target-3.13.dev13/dissect/target/plugins/apps/vpns → dissect.target-3.14/dissect/target/plugins/apps/vpn}/openvpn.py +0 -0
  739. {dissect.target-3.13.dev13/dissect/target/plugins/apps/vpns → dissect.target-3.14/dissect/target/plugins/apps/vpn}/wireguard.py +0 -0
  740. {dissect.target-3.13.dev13/dissect/target/plugins/apps/webservers → dissect.target-3.14/dissect/target/plugins/apps/webhosting}/__init__.py +0 -0
  741. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/apps/webhosting/cpanel.py +0 -0
  742. {dissect.target-3.13.dev13/dissect/target/plugins/browsers → dissect.target-3.14/dissect/target/plugins/apps/webserver}/__init__.py +0 -0
  743. /dissect.target-3.13.dev13/dissect/target/plugins/apps/webservers/webservers.py → /dissect.target-3.14/dissect/target/plugins/apps/webserver/webserver.py +0 -0
  744. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/child/__init__.py +0 -0
  745. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/child/esxi.py +0 -0
  746. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/child/virtuozzo.py +0 -0
  747. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/child/wsl.py +0 -0
  748. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/filesystem/__init__.py +0 -0
  749. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/filesystem/ntfs/__init__.py +0 -0
  750. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/filesystem/ntfs/utils.py +0 -0
  751. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/filesystem/unix/__init__.py +0 -0
  752. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/filesystem/unix/suid.py +0 -0
  753. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/general/__init__.py +0 -0
  754. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/general/default.py +0 -0
  755. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/general/example.py +0 -0
  756. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/general/loaders.py +0 -0
  757. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/general/osinfo.py +0 -0
  758. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/general/plugins.py +0 -0
  759. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/general/scrape.py +0 -0
  760. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/general/users.py +0 -0
  761. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/__init__.py +0 -0
  762. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/__init__.py +0 -0
  763. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/_os.py +0 -0
  764. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/citrix/__init__.py +0 -0
  765. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/citrix/_os.py +0 -0
  766. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/freebsd/__init__.py +0 -0
  767. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/freebsd/_os.py +0 -0
  768. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/ios/__init__.py +0 -0
  769. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/ios/_os.py +0 -0
  770. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/openbsd/__init__.py +0 -0
  771. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/openbsd/_os.py +0 -0
  772. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/osx/__init__.py +0 -0
  773. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/osx/_os.py +0 -0
  774. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/datetime.py +0 -0
  775. {dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux → dissect.target-3.14/dissect/target/plugins/os/unix/esxi}/__init__.py +0 -0
  776. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/etc.py +0 -0
  777. {dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux/android → dissect.target-3.14/dissect/target/plugins/os/unix/linux}/__init__.py +0 -0
  778. {dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux/debian → dissect.target-3.14/dissect/target/plugins/os/unix/linux/android}/__init__.py +0 -0
  779. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/cmdline.py +0 -0
  780. {dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux/debian/vyos → dissect.target-3.14/dissect/target/plugins/os/unix/linux/debian}/__init__.py +0 -0
  781. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/debian/_os.py +0 -0
  782. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/debian/apt.py +0 -0
  783. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/debian/dpkg.py +0 -0
  784. {dissect.target-3.13.dev13/dissect/target/plugins/os/unix/linux/esxi → dissect.target-3.14/dissect/target/plugins/os/unix/linux/debian/vyos}/__init__.py +0 -0
  785. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/debian/vyos/_os.py +0 -0
  786. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/environ.py +0 -0
  787. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/fortigate/__init__.py +0 -0
  788. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/fortigate/_os.py +0 -0
  789. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/iptables.py +0 -0
  790. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/modules.py +0 -0
  791. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/netstat.py +0 -0
  792. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/proc.py +0 -0
  793. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/processes.py +0 -0
  794. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/redhat/__init__.py +0 -0
  795. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/redhat/_os.py +0 -0
  796. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/redhat/yum.py +0 -0
  797. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/sockets.py +0 -0
  798. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/suse/__init__.py +0 -0
  799. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/suse/_os.py +0 -0
  800. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/__init__.py +0 -0
  801. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/atop.py +0 -0
  802. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/audit.py +0 -0
  803. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/auth.py +0 -0
  804. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/lastlog.py +0 -0
  805. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/messages.py +0 -0
  806. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/utmp.py +0 -0
  807. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/__init__.py +0 -0
  808. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/activitiescache.py +0 -0
  809. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/adpolicy.py +0 -0
  810. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/clfs.py +0 -0
  811. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/__init__.py +0 -0
  812. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/blob.py +0 -0
  813. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/crypto.py +0 -0
  814. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/dpapi.py +0 -0
  815. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/master_key.py +0 -0
  816. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/env.py +0 -0
  817. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/exchange/__init__.py +0 -0
  818. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/exchange/exchange.py +0 -0
  819. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/locale.py +0 -0
  820. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/log/__init__.py +0 -0
  821. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/log/etl.py +0 -0
  822. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/log/evt.py +0 -0
  823. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/log/evtx.py +0 -0
  824. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/notifications.py +0 -0
  825. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/__init__.py +0 -0
  826. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/appxdebugkeys.py +0 -0
  827. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/auditpol.py +0 -0
  828. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/clsid.py +0 -0
  829. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/firewall.py +0 -0
  830. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/nethist.py +0 -0
  831. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/regf.py +0 -0
  832. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/shellbags.py +0 -0
  833. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/usb.py +0 -0
  834. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/registry.py +0 -0
  835. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/sam.py +0 -0
  836. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/task_helpers/__init__.py +0 -0
  837. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/task_helpers/tasks_job.py +0 -0
  838. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/task_helpers/tasks_records.py +0 -0
  839. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/task_helpers/tasks_xml.py +0 -0
  840. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/tasks.py +0 -0
  841. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/thumbcache.py +0 -0
  842. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/ual.py +0 -0
  843. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/plugins/os/windows/wer.py +0 -0
  844. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/report.py +0 -0
  845. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/__init__.py +0 -0
  846. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/build_pluginlist.py +0 -0
  847. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/dd.py +0 -0
  848. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/dump/__init__.py +0 -0
  849. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/dump/run.py +0 -0
  850. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/dump/state.py +0 -0
  851. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/dump/utils.py +0 -0
  852. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/fs.py +0 -0
  853. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/logging.py +0 -0
  854. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/reg.py +0 -0
  855. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/tools/utils.py +0 -0
  856. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect/target/volumes/__init__.py +0 -0
  857. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect.target.egg-info/dependency_links.txt +0 -0
  858. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect.target.egg-info/entry_points.txt +0 -0
  859. {dissect.target-3.13.dev13 → dissect.target-3.14}/dissect.target.egg-info/top_level.txt +0 -0
  860. {dissect.target-3.13.dev13 → dissect.target-3.14}/setup.cfg +0 -0
  861. {dissect.target-3.13.dev13 → dissect.target-3.14}/tests/__init__.py +0 -0
  862. {dissect.target-3.13.dev13/tests/docs → dissect.target-3.14/tests/_docs}/Makefile +0 -0
  863. {dissect.target-3.13.dev13/tests/docs → dissect.target-3.14/tests/_docs}/conf.py +0 -0
  864. {dissect.target-3.13.dev13/tests/docs → dissect.target-3.14/tests/_docs}/index.rst +0 -0
  865. {dissect.target-3.13.dev13 → dissect.target-3.14}/tests/_utils.py +0 -0
  866. /dissect.target-3.13.dev13/tests/data/empty.log → /dissect.target-3.14/tests/containers/__init__.py +0 -0
  867. /dissect.target-3.13.dev13/tests/test_containers_split.py → /dissect.target-3.14/tests/containers/test_split.py +0 -0
  868. /dissect.target-3.13.dev13/tests/data/unix/logs/empty.log → /dissect.target-3.14/tests/filesystems/__init__.py +0 -0
  869. /dissect.target-3.13.dev13/tests/test_filesystems_cb.py → /dissect.target-3.14/tests/filesystems/test_cb.py +0 -0
  870. /dissect.target-3.13.dev13/tests/test_filesystems_exfat.py → /dissect.target-3.14/tests/filesystems/test_exfat.py +0 -0
  871. /dissect.target-3.13.dev13/tests/test_filesystems_fat.py → /dissect.target-3.14/tests/filesystems/test_fat.py +0 -0
  872. /dissect.target-3.13.dev13/tests/test_filesystems_ntfs.py → /dissect.target-3.14/tests/filesystems/test_ntfs.py +0 -0
  873. /dissect.target-3.13.dev13/tests/test_filesystems_smb.py → /dissect.target-3.14/tests/filesystems/test_smb.py +0 -0
  874. /dissect.target-3.13.dev13/tests/test_filesystems_tar.py → /dissect.target-3.14/tests/filesystems/test_tar.py +0 -0
  875. /dissect.target-3.13.dev13/tests/test_filesystems_zip.py → /dissect.target-3.14/tests/filesystems/test_zip.py +0 -0
  876. /dissect.target-3.13.dev13/tests/test_helpers_cache.py → /dissect.target-3.14/tests/helpers/test_cache.py +0 -0
  877. /dissect.target-3.13.dev13/tests/test_helpers_config.py → /dissect.target-3.14/tests/helpers/test_config.py +0 -0
  878. /dissect.target-3.13.dev13/tests/test_helpers_loaderutil.py → /dissect.target-3.14/tests/helpers/test_loaderutil.py +0 -0
  879. /dissect.target-3.13.dev13/tests/test_helpers_localeutil.py → /dissect.target-3.14/tests/helpers/test_localeutil.py +0 -0
  880. {dissect.target-3.13.dev13/tests → dissect.target-3.14/tests/helpers}/test_record.py +0 -0
  881. /dissect.target-3.13.dev13/tests/test_helpers_utils.py → /dissect.target-3.14/tests/helpers/test_utils.py +0 -0
  882. /dissect.target-3.13.dev13/tests/test_loaders_multiraw.py → /dissect.target-3.14/tests/loaders/test_multiraw.py +0 -0
  883. /dissect.target-3.13.dev13/tests/test_loaders_ova.py → /dissect.target-3.14/tests/loaders/test_ova.py +0 -0
  884. /dissect.target-3.13.dev13/tests/test_loaders_ovf.py → /dissect.target-3.14/tests/loaders/test_ovf.py +0 -0
  885. /dissect.target-3.13.dev13/tests/test_loaders_phobos.py → /dissect.target-3.14/tests/loaders/test_phobos.py +0 -0
  886. /dissect.target-3.13.dev13/tests/test_loaders_pvs.py → /dissect.target-3.14/tests/loaders/test_pvs.py +0 -0
  887. /dissect.target-3.13.dev13/tests/test_loaders_remote.py → /dissect.target-3.14/tests/loaders/test_remote.py +0 -0
  888. /dissect.target-3.13.dev13/tests/test_loaders_vbox.py → /dissect.target-3.14/tests/loaders/test_vbox.py +0 -0
  889. /dissect.target-3.13.dev13/tests/test_plugins_child_virtuozzo.py → /dissect.target-3.14/tests/plugins/child/test_virtuozzo.py +0 -0
  890. /dissect.target-3.13.dev13/tests/test_plugins_child_wsl.py → /dissect.target-3.14/tests/plugins/child/test_wsl.py +0 -0
  891. /dissect.target-3.13.dev13/tests/test_plugins_filesystem_resolver.py → /dissect.target-3.14/tests/plugins/filesystem/test_resolver.py +0 -0
  892. /dissect.target-3.13.dev13/tests/test_plugins_filesystem_unix_capability.py → /dissect.target-3.14/tests/plugins/filesystem/unix/test_capability.py +0 -0
  893. /dissect.target-3.13.dev13/tests/test_plugins_filesystem_unix_suid.py → /dissect.target-3.14/tests/plugins/filesystem/unix/test_suid.py +0 -0
  894. /dissect.target-3.13.dev13/tests/test_plugins_general_default.py → /dissect.target-3.14/tests/plugins/general/test_default.py +0 -0
  895. /dissect.target-3.13.dev13/tests/test_plugins_general_plugins.py → /dissect.target-3.14/tests/plugins/general/test_plugins.py +0 -0
  896. /dissect.target-3.13.dev13/tests/test_plugins_scrape.py → /dissect.target-3.14/tests/plugins/general/test_scrape.py +0 -0
  897. /dissect.target-3.13.dev13/tests/test_plugins_general_users.py → /dissect.target-3.14/tests/plugins/general/test_users.py +0 -0
  898. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_bsd_citrix.py → /dissect.target-3.14/tests/plugins/os/unix/bsd/citrix/test__os.py +0 -0
  899. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_bsd_osx_user.py → /dissect.target-3.14/tests/plugins/os/unix/bsd/osx/test_user.py +0 -0
  900. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_cmdline.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_cmdline.py +0 -0
  901. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_environ.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_environ.py +0 -0
  902. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_netstat.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_netstat.py +0 -0
  903. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_proc.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_proc.py +0 -0
  904. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_processes.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_processes.py +0 -0
  905. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_linux_sockets.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_sockets.py +0 -0
  906. /dissect.target-3.13.dev13/tests/test_plugins_os_unix_history.py → /dissect.target-3.14/tests/plugins/os/unix/test_history.py +0 -0
  907. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_log_etl.py → /dissect.target-3.14/tests/plugins/os/windows/log/test_etl.py +0 -0
  908. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_regf_appxdebugkeys.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_appxdebugkeys.py +0 -0
  909. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_regf_cit.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_cit.py +0 -0
  910. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_regf_clsid.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_clsid.py +0 -0
  911. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_regf_muicache.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_muicache.py +0 -0
  912. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_regf_userassist.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_userassist.py +0 -0
  913. /dissect.target-3.13.dev13/tests/test_plugins_os_windows__os.py → /dissect.target-3.14/tests/plugins/os/windows/test__os.py +0 -0
  914. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_datetime.py → /dissect.target-3.14/tests/plugins/os/windows/test_datetime.py +0 -0
  915. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_generic.py → /dissect.target-3.14/tests/plugins/os/windows/test_generic.py +0 -0
  916. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_locale.py → /dissect.target-3.14/tests/plugins/os/windows/test_locale.py +0 -0
  917. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_mru.py → /dissect.target-3.14/tests/plugins/os/windows/test_mru.py +0 -0
  918. /dissect.target-3.13.dev13/tests/test_prefetch_time.py → /dissect.target-3.14/tests/plugins/os/windows/test_prefetch.py +0 -0
  919. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_recyclebin.py → /dissect.target-3.14/tests/plugins/os/windows/test_recyclebin.py +0 -0
  920. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_registry.py → /dissect.target-3.14/tests/plugins/os/windows/test_registry.py +0 -0
  921. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_sam.py → /dissect.target-3.14/tests/plugins/os/windows/test_sam.py +0 -0
  922. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_shimcache.py → /dissect.target-3.14/tests/plugins/os/windows/test_shimcache.py +0 -0
  923. /dissect.target-3.13.dev13/tests/test_plugins_os_windows_thumbcache.py → /dissect.target-3.14/tests/plugins/os/windows/test_thumbcache.py +0 -0
  924. {dissect.target-3.13.dev13 → dissect.target-3.14}/tests/test_report.py +0 -0
  925. /dissect.target-3.13.dev13/tests/test_target_fs.py → /dissect.target-3.14/tests/tools/test_fs.py +0 -0
  926. /dissect.target-3.13.dev13/tests/test_tools_mount.py → /dissect.target-3.14/tests/tools/test_mount.py +0 -0
  927. /dissect.target-3.13.dev13/tests/test_tools_utils.py → /dissect.target-3.14/tests/tools/test_utils.py +0 -0
@@ -0,0 +1,4 @@
1
+ exclude .gitattributes
2
+ exclude .gitignore
3
+ recursive-exclude .github/ *
4
+ recursive-exclude tests/_data/ *
@@ -0,0 +1,254 @@
1
+ Metadata-Version: 2.1
2
+ Name: dissect.target
3
+ Version: 3.14
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
+ Author-email: Dissect Team <dissect@fox-it.com>
6
+ License: Affero General Public License v3
7
+ Project-URL: homepage, https://dissect.tools
8
+ Project-URL: documentation, https://docs.dissect.tools/en/latest/projects/dissect.target
9
+ Project-URL: repository, https://github.com/fox-it/dissect.target
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Intended Audience :: Information Technology
14
+ Classifier: License :: OSI Approved
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Topic :: Internet :: Log Analysis
18
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
19
+ Classifier: Topic :: Security
20
+ Classifier: Topic :: Utilities
21
+ Requires-Python: ~=3.9
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ License-File: COPYRIGHT
25
+ Requires-Dist: defusedxml
26
+ Requires-Dist: dissect.cstruct<4.0.dev,>=3.0.dev
27
+ Requires-Dist: dissect.eventlog<4.0.dev,>=3.0.dev
28
+ Requires-Dist: dissect.evidence<4.0.dev,>=3.0.dev
29
+ Requires-Dist: dissect.hypervisor<4.0.dev,>=3.0.dev
30
+ Requires-Dist: dissect.ntfs<4.0.dev,>=3.4.dev
31
+ Requires-Dist: dissect.regf<4.0.dev,>=3.3.dev
32
+ Requires-Dist: dissect.util<4.0.dev,>=3.0.dev
33
+ Requires-Dist: dissect.volume<4.0.dev,>=3.0.dev
34
+ Requires-Dist: flow.record~=3.13.0
35
+ Requires-Dist: structlog
36
+ Provides-Extra: full
37
+ Requires-Dist: asn1crypto; extra == "full"
38
+ Requires-Dist: dissect.btrfs<2.0.dev,>=1.0.dev; extra == "full"
39
+ Requires-Dist: dissect.cim<4.0.dev,>=3.0.dev; extra == "full"
40
+ Requires-Dist: dissect.clfs<2.0.dev,>=1.0.dev; extra == "full"
41
+ Requires-Dist: dissect.esedb<4.0.dev,>=3.0.dev; extra == "full"
42
+ Requires-Dist: dissect.etl<4.0.dev,>=3.0.dev; extra == "full"
43
+ Requires-Dist: dissect.extfs<4.0.dev,>=3.0.dev; extra == "full"
44
+ Requires-Dist: dissect.fat<4.0.dev,>=3.0.dev; extra == "full"
45
+ Requires-Dist: dissect.ffs<4.0.dev,>=3.0.dev; extra == "full"
46
+ Requires-Dist: dissect.shellitem<4.0.dev,>=3.0.dev; extra == "full"
47
+ Requires-Dist: dissect.squashfs<2.0.dev,>=1.0.dev; extra == "full"
48
+ Requires-Dist: dissect.sql<4.0.dev,>=3.0.dev; extra == "full"
49
+ Requires-Dist: dissect.thumbcache<2.0.dev,>=1.0.dev; extra == "full"
50
+ Requires-Dist: dissect.vmfs<4.0.dev,>=3.0.dev; extra == "full"
51
+ Requires-Dist: dissect.xfs<4.0.dev,>=3.0.dev; extra == "full"
52
+ Requires-Dist: ipython; extra == "full"
53
+ Requires-Dist: fusepy; extra == "full"
54
+ Requires-Dist: pycryptodome; extra == "full"
55
+ Requires-Dist: pyyaml; extra == "full"
56
+ Requires-Dist: zstandard; extra == "full"
57
+ Provides-Extra: yara
58
+ Requires-Dist: dissect.target[full]; extra == "yara"
59
+ Requires-Dist: yara-python; extra == "yara"
60
+ Provides-Extra: smb
61
+ Requires-Dist: dissect.target[full]; extra == "smb"
62
+ Requires-Dist: impacket==0.10.0; extra == "smb"
63
+ Provides-Extra: cb
64
+ Requires-Dist: dissect.target[full]; extra == "cb"
65
+ Requires-Dist: carbon-black-cloud-sdk-python~=1.4.3; extra == "cb"
66
+
67
+ # dissect.target
68
+
69
+ The Dissect module tying all other Dissect modules together. It provides a programming API and command line tools which
70
+ allow easy access to various data sources inside disk images or file collections (a.k.a. targets). For more information,
71
+ please see [the documentation](https://docs.dissect.tools/en/latest/projects/dissect.target/index.html).
72
+
73
+ ## Requirements
74
+
75
+ This project is part of the Dissect framework and requires Python.
76
+
77
+ Information on the supported Python versions can be found in the Getting Started section of [the documentation](https://docs.dissect.tools/en/latest/index.html#getting-started).
78
+
79
+ ## Installation
80
+
81
+ `dissect.target` is available on [PyPI](https://pypi.org/project/dissect.target/).
82
+
83
+ ```bash
84
+ pip install dissect.target
85
+ ```
86
+
87
+ This module is also automatically installed if you install the `dissect` package.
88
+
89
+ If you wish to use the YARA plugin (`target-query -f yara`), you can install `dissect.target[yara]` to automatically
90
+ install the `yara-python` dependency.
91
+
92
+ ## Tools inside this project
93
+
94
+ ### target-query
95
+ `target-query` is a tool used to query specific data inside one or more targets.
96
+ These queries are available in the form of functions that reside within [plugins](https://docs.dissect.tools/en/latest/advanced/plugins.html).
97
+ Each plugin is focussed on providing specific functionality.
98
+
99
+ This functionality can range from parsing log sources, such as command history logs (i.e. bash history,
100
+ PowerShell history, etc.), to returning the hostname and operating system version.
101
+
102
+ The most basic basic usage of `target-query` is to execute a function on a target:
103
+
104
+ ```bash
105
+ target-query -f <FUNCTION_NAME> /example_path/target.vmdk
106
+ ```
107
+
108
+ You can also use basic path expansion to execute functions over multiple targets. For example, to execute a function
109
+ on all ``.vmdk`` files in a directory:
110
+
111
+ ```
112
+ target-query -f <FUNCTION_NAME> /example_path/*.vmdk
113
+ ```
114
+
115
+ Not every target plugin will function on every target, they are OS specific.
116
+ More information on how to use `target-query` is found in [the documentation](https://docs.dissect.tools/en/latest/tools/target-query.html).
117
+
118
+ ### target-shell
119
+ `target-shell` gives you the ability to access a target using a virtual shell environment. Once a shell is opened
120
+ on a target, type `help` to list the available commands. To see the documentation of each command,
121
+ you can use `help [COMMAND]`.
122
+
123
+ Opening a shell on a target is straight-forward. You can do so by specifying a path to a target as follows:
124
+
125
+ ```bash
126
+ target-shell targets/EXAMPLE.vmx
127
+ EXAMPLE /> help
128
+
129
+ Documented commands (type help <topic>):
130
+ ========================================
131
+ cat disks filesystems help less python save
132
+ cd exit find hexdump ls readlink stat
133
+ clear file hash info pwd registry volumes
134
+
135
+ EXAMPLE /> ls
136
+ c:
137
+ sysvol
138
+ ```
139
+
140
+ Further interacting with the target can be done using the commands listed above.
141
+ You can exit the shell by running `exit` or by pressing `CTRL+D`.
142
+
143
+ More information on how to use `target-shell` is found in [the documentation](https://docs.dissect.tools/en/latest/tools/target-shell.html).
144
+
145
+ ### target-fs
146
+ With `target-fs` you can interact with the filesystem of a target using a set of familiar Unix commands.
147
+
148
+ The basic structure of a `target-fs` command is as follows:
149
+
150
+ ```bash
151
+ target-fs <path_to_target> <command> <path_for_command>
152
+ ```
153
+
154
+ **NOTE:** As with any shell command, you have to properly escape backlashes and spaces. Unless you use single or double quotes (`'`, `"`).
155
+
156
+ More information on how to use `target-fs` is found in [the documentation](https://docs.dissect.tools/en/latest/tools/target-fs.html).
157
+
158
+ ### target-reg
159
+ With `target-reg` you can easily query the registry of Windows targets and print the results in a tree. A `+` symbol indicates that it is a registry key (i.e. may have subkeys). A `-` symbol indicates a registry value.
160
+
161
+ ```bash
162
+ user@dissect~$ target-reg targets/EXAMPLE.E01 -k "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft"
163
+ + 'Microsoft' (last-modified-date-shows-here)
164
+ + '.NETFramework' (last-modified-date-shows-here)
165
+ - 'Enable64Bit' value-shows-here
166
+ [...]
167
+ ```
168
+
169
+ More information on how to use `target-reg` is found in [the documentation](https://docs.dissect.tools/en/latest/tools/target-reg.html).
170
+
171
+ ### target-dump
172
+ With `target-dump` you can export records of a specific `function` used in target-query to a file.
173
+
174
+ The basic structure of a `target-dump` command is as follows:
175
+
176
+ ```bash
177
+ target-dump -f <comma_seperated_functions> <path_to_target>
178
+ ```
179
+
180
+ Futhermore, the tool can apply certain compression algorithms to the dump, to create small archives of the output.
181
+
182
+ More information on how to use `target-dump` is found in [the documentation](https://docs.dissect.tools/en/latest/tools/target-dump.html).
183
+
184
+ ### target-dd
185
+ With `target-dd` you can export (a part of) a target to a file or to stdout. At the moment, `target-dd` can be used for targets that have only one disk.
186
+
187
+ The basic structure of a `target-dd` command is as follows:
188
+
189
+ ```bash
190
+ target-dd --write <output_file> --offset <offset_on_target_in_bytes> --bytes <nr_of_bytes_to_read> <path_to_target>
191
+ ```
192
+
193
+ More information on how to use `target-dd` is found in [the documentation](https://docs.dissect.tools/en/latest/tools/target-dd.html).
194
+
195
+ ### target-mount
196
+ With `target-mount` you can mount the filesystem of a target to any arbitrary directory on your analysis machine, similar to the `mount` command on Unix systems.
197
+ To perform this function, we use `fusepy` to mount a filesystem in linux and mac.
198
+ This interacts with `fuselib` to mount disk images in linux userspace, so no administrative access is required.
199
+
200
+ `target-mount` has two required positional arguments:
201
+
202
+ * `TARGET` - Target to mount
203
+ * `MOUNT` - Directory to mount the target's filesystem on
204
+
205
+
206
+ The following example command can be used to mount a target to the directory ``mnt``:
207
+
208
+ ```bash
209
+ user@dissect~$ target-mount targets/EXAMPLE.vmx ~/mnt/EXAMPLE
210
+ user@dissect~$ ls ~/mnt/EXAMPLE/
211
+ disks fs volumes
212
+ ```
213
+
214
+ When mounting a target using `target-mount` the process is kept in the foreground. This will occupy your current
215
+ terminal session. It is recommended to either open a second terminal, let this command run in the background by
216
+ appending `&` to the command or use a terminal multiplexer like `tmux` to start a second session. Using one
217
+ of these methods enables you to interact with the mountpoint.
218
+
219
+ More information on how to use `target-mount` is found in [the documentation](https://docs.dissect.tools/en/latest/tools/target-mount.html).
220
+
221
+ ## Build and test instructions
222
+
223
+ This project uses `tox` to build source and wheel distributions. Run the following command from the root folder to build
224
+ these:
225
+
226
+ ```bash
227
+ tox -e build
228
+ ```
229
+
230
+ The build artifacts can be found in the `dist/` directory.
231
+
232
+ `tox` is also used to run linting and unit tests in a self-contained environment. To run both linting and unit tests
233
+ using the default installed Python version, run:
234
+
235
+ ```bash
236
+ tox
237
+ ```
238
+
239
+ For a more elaborate explanation on how to build and test the project, please see [the
240
+ documentation](https://docs.dissect.tools/en/latest/contributing/tooling.html).
241
+
242
+ ## Contributing
243
+
244
+ The Dissect project encourages any contribution to the codebase. To make your contribution fit into the project, please
245
+ refer to [the development guide](https://docs.dissect.tools/en/latest/contributing/developing.html).
246
+
247
+ ## Copyright and license
248
+
249
+ Dissect is released as open source by Fox-IT (<https://www.fox-it.com>) part of NCC Group Plc
250
+ (<https://www.nccgroup.com>).
251
+
252
+ Developed by the Dissect Team (<dissect@fox-it.com>) and made available at <https://github.com/fox-it/dissect>.
253
+
254
+ License terms: AGPL3 (<https://www.gnu.org/licenses/agpl-3.0.html>). For more information, see the LICENSE file.
@@ -0,0 +1,260 @@
1
+ from __future__ import annotations
2
+
3
+ import io
4
+ import logging
5
+ from pathlib import Path
6
+ from typing import TYPE_CHECKING, BinaryIO, Type, Union
7
+
8
+ from dissect.target.exceptions import ContainerError
9
+ from dissect.target.helpers.lazy import import_lazy
10
+ from dissect.target.helpers.utils import readinto
11
+
12
+ if TYPE_CHECKING:
13
+ from dissect.target.volume import VolumeSystem
14
+
15
+ CONTAINERS: list[Type[Container]] = []
16
+ MODULE_PATH = "dissect.target.containers"
17
+
18
+ RawContainer = import_lazy("dissect.target.containers.raw").RawContainer
19
+ """A lazy import of :mod:`dissect.target.containers.raw`"""
20
+
21
+ log = logging.getLogger(__name__)
22
+
23
+
24
+ class Container(io.IOBase):
25
+ """Base class that acts as a file-like object wrapper around anything that can behave like a "raw disk".
26
+
27
+ Containers are anything from raw disk images and virtual disks, to evidence containers and made-up binary formats.
28
+ Consumers of the ``Container`` class only need to implement ``seek``, ``tell`` and ``read``.
29
+ Override ``__init__`` for any opening that you may need to do, but don't forget to initialize the super class.
30
+
31
+ Args:
32
+ fh: The source file-like object of the container or a ``Path`` object to the file.
33
+ size: The size of the container.
34
+ vs: An optional shorthand to set the underlying volume system, usually set later.
35
+ """
36
+
37
+ # Due to lazy importing we generally can't use isinstance(), so we add a short identifying string to each class
38
+ # This has the added benefit of having a readily available "pretty name" for each implementation
39
+ __type__: str = None
40
+ """A short string identifying the type of container."""
41
+
42
+ def __init__(self, fh: Union[BinaryIO, Path], size: int, vs: VolumeSystem = None):
43
+ self.fh = fh
44
+ self.size = size
45
+
46
+ # Shorthand access to vs
47
+ self.vs = vs
48
+
49
+ if self.__type__ is None:
50
+ raise NotImplementedError(f"{self.__class__.__name__} must define __type__")
51
+
52
+ def __repr__(self) -> str:
53
+ return f"<{self.__class__.__name__} size={self.size} vs={self.vs}>"
54
+
55
+ @classmethod
56
+ def detect(cls, item: Union[list, BinaryIO, Path]) -> bool:
57
+ """Detect if this ``Container`` can handle this file format.
58
+
59
+ Args:
60
+ item: The object we want to see if it can be handled by this ``Container``.
61
+
62
+ Returns:
63
+ ``True`` if this ``Container`` can be used, ``False`` otherwise.
64
+ """
65
+ i = item[0] if isinstance(item, list) else item
66
+ if hasattr(i, "read"):
67
+ return cls.detect_fh(i, item)
68
+ elif cls.detect_path(i, item):
69
+ return True
70
+ elif i.exists():
71
+ with i.open("rb") as fh:
72
+ return cls.detect_fh(fh, item)
73
+
74
+ return False
75
+
76
+ @classmethod
77
+ def detect_fh(cls, fh: BinaryIO, original: Union[list, BinaryIO]) -> bool:
78
+ """Detect if this ``Container`` can be used to open the file-like object ``fh``.
79
+
80
+ The function checks whether the raw data contains any magic information that corresponds to this
81
+ specific container.
82
+
83
+ Args:
84
+ fh: A file-like object that we want to open a ``Container`` on.
85
+ original: The original argument passed to ``detect()``.
86
+
87
+ Returns:
88
+ ``True`` if this ``Container`` can be used for this file-like object, ``False`` otherwise.
89
+ """
90
+ offset = fh.tell()
91
+ try:
92
+ fh.seek(0)
93
+ return cls._detect_fh(fh, original)
94
+ except NotImplementedError:
95
+ raise
96
+ except Exception as e:
97
+ log.warning("Failed to detect %s container", cls.__name__)
98
+ log.debug("", exc_info=e)
99
+ finally:
100
+ fh.seek(offset)
101
+
102
+ return False
103
+
104
+ @staticmethod
105
+ def _detect_fh(fh: BinaryIO, original: Union[list, BinaryIO]) -> bool:
106
+ """Detect if this ``Container`` can be used to open the file-like object ``fh``.
107
+
108
+ This method should be implemented by subclasses. The position of ``fh`` is guaranteed to be ``0``.
109
+
110
+ Args:
111
+ fh: A file-like object that we want to open a ``Container`` on.
112
+ original: The original argument passed to ``detect()``.
113
+
114
+ Returns:
115
+ ``True`` if this ``Container`` can be used for this file-like object, ``False`` otherwise.
116
+ """
117
+ raise NotImplementedError()
118
+
119
+ @staticmethod
120
+ def detect_path(path: Path, original: Union[list, Path]) -> bool:
121
+ """Detect if this ``Container`` can be used to open ``path``.
122
+
123
+ The function checks wether file inside ``path`` is formatted in such a way that
124
+ this ``Container`` can be used to read it. For example, it validates against the
125
+ file extension.
126
+
127
+ Args:
128
+ path: A location to a file.
129
+ original: The original argument passed to ``detect()``.
130
+
131
+ Returns:
132
+ ``True`` if this ``Container`` can be used for this path, ``False`` otherwise.
133
+ """
134
+ raise NotImplementedError()
135
+
136
+ def read(self, length: int = -1) -> bytes:
137
+ """Read a ``length`` of bytes from this ``Container``."""
138
+ raise NotImplementedError()
139
+
140
+ def readinto(self, b: bytearray) -> int:
141
+ """Uses :func:`dissect.target.helpers.utils.readinto`."""
142
+ return readinto(buffer=b, fh=self)
143
+
144
+ def seek(self, offset: int, whence: int = io.SEEK_SET) -> int:
145
+ """Change the stream position to ``offset``.
146
+
147
+ ``whence`` determines where to seek from:
148
+
149
+ * ``io.SEEK_SET`` (``0``):: absolute offset in the stream.
150
+ * ``io.SEEK_CUR`` (``1``):: current position in the stream.
151
+ * ``io.SEEK_END`` (``2``):: end of stream.
152
+
153
+ Args:
154
+ offset: The offset relative to the position indicated by ``whence``.
155
+ whence: Where to start the seek from.
156
+ """
157
+ raise NotImplementedError()
158
+
159
+ def seekable(self) -> bool:
160
+ """Returns whether ``seek`` can be used by this ``Container``. Always ``True``."""
161
+ return True
162
+
163
+ def tell(self) -> int:
164
+ """Returns the current seek position of the ``Container``."""
165
+ raise NotImplementedError()
166
+
167
+ def close(self) -> None:
168
+ """Close the container.
169
+
170
+ Override this if you need to clean-up anything.
171
+ """
172
+ raise NotImplementedError()
173
+
174
+
175
+ def register(module: str, class_name: str, internal: bool = True):
176
+ """Register a container implementation to use when opening a container.
177
+
178
+ This function registers a container using ``module`` relative to the ``MODULE_PATH``.
179
+ It lazily imports the module, and retrieves the specific class from it.
180
+
181
+ Args:
182
+ module: The module where to find the container.
183
+ class_name: The class to load.
184
+ internal: Whether it is an internal module or not.
185
+ """
186
+
187
+ if internal:
188
+ module = ".".join([MODULE_PATH, module])
189
+
190
+ CONTAINERS.append(getattr(import_lazy(module), class_name))
191
+
192
+
193
+ def open(item: Union[list, str, BinaryIO, Path], *args, **kwargs):
194
+ """Open a :class:`Container` from the given object.
195
+
196
+ All currently supported containers are checked to find a compatible one.
197
+ :class:`RawContainer <dissect.target.containers.raw.RawContainer>` must always be checked last
198
+ since it always succeeds!
199
+
200
+ Args:
201
+ item: The object we want to open a :class`Container` from.
202
+
203
+ Raises:
204
+ ContainerError: When a compatible :class`Container` was found but it failed to open.
205
+ ContainerError: When no compatible :class`Container` implementations were found.
206
+ """
207
+ if isinstance(item, list):
208
+ item = [Path(entry) if isinstance(entry, str) else entry for entry in item]
209
+ elif isinstance(item, str):
210
+ item = Path(item)
211
+
212
+ first = item[0] if isinstance(item, list) else item
213
+ first_fh = None
214
+ first_fh_opened = False
215
+ first_fh_offset = None
216
+ first_path = None
217
+
218
+ if hasattr(first, "read"):
219
+ first_fh = first
220
+ else:
221
+ first_path = first
222
+ if first_path.is_file():
223
+ first_fh = first.open("rb")
224
+ first_fh_opened = True
225
+
226
+ if first_fh:
227
+ first_fh_offset = first_fh.tell()
228
+ first_fh.seek(0)
229
+
230
+ try:
231
+ for container in CONTAINERS + [RawContainer]:
232
+ try:
233
+ # Path must be leading for things like SplitContainer, but fall back to fh if we have one
234
+ if (first_path and container.detect_path(first_path, item)) or (
235
+ first_fh and container.detect_fh(first_fh, item)
236
+ ):
237
+ return container(item, *args, **kwargs)
238
+ except ImportError as e:
239
+ log.info("Failed to import %s", container)
240
+ log.debug("", exc_info=e)
241
+ except Exception as e:
242
+ raise ContainerError(f"Failed to open container {item}", cause=e)
243
+ finally:
244
+ if first_fh_opened:
245
+ first_fh.close()
246
+ elif first_fh:
247
+ first_fh.seek(first_fh_offset)
248
+
249
+ raise ContainerError(f"Failed to detect container for {item}")
250
+
251
+
252
+ register("ewf", "EwfContainer")
253
+ register("vmdk", "VmdkContainer")
254
+ register("vhdx", "VhdxContainer")
255
+ register("vhd", "VhdContainer")
256
+ register("qcow2", "QCow2Container")
257
+ register("vdi", "VdiContainer")
258
+ register("hdd", "HddContainer")
259
+ register("hds", "HdsContainer")
260
+ register("split", "SplitContainer")
@@ -0,0 +1,48 @@
1
+ import io
2
+ from pathlib import Path
3
+ from typing import BinaryIO, Union
4
+
5
+ from dissect.evidence import AsdfSnapshot, AsdfStream
6
+ from dissect.evidence.asdf import FILE_MAGIC
7
+
8
+ from dissect.target.container import Container
9
+
10
+
11
+ class AsdfContainer(Container):
12
+ __type__ = "asdf"
13
+
14
+ def __init__(self, fh: BinaryIO, *args, **kwargs):
15
+ file_container = fh
16
+
17
+ if not hasattr(file_container, "read"):
18
+ file_container = AsdfSnapshot(fh.open("rb"))
19
+
20
+ if isinstance(file_container, AsdfSnapshot):
21
+ file_container = fh.open(0)
22
+
23
+ if not isinstance(file_container, AsdfStream):
24
+ raise TypeError(f"Invalid type for AsdfContainer: {fh}")
25
+
26
+ self.asdf = file_container
27
+
28
+ super().__init__(fh, self.asdf.size, *args, **kwargs)
29
+
30
+ @staticmethod
31
+ def _detect_fh(fh: BinaryIO, original: Union[list, BinaryIO]) -> bool:
32
+ return fh.read(4) == FILE_MAGIC
33
+
34
+ @staticmethod
35
+ def detect_path(path: Path, original: Union[list, BinaryIO]) -> bool:
36
+ return path.suffix.lower() == ".asdf"
37
+
38
+ def read(self, length: int) -> bytes:
39
+ return self.asdf.read(length)
40
+
41
+ def seek(self, offset: int, whence: int = io.SEEK_SET) -> int:
42
+ return self.asdf.seek(offset, whence)
43
+
44
+ def tell(self) -> int:
45
+ return self.asdf.tell()
46
+
47
+ def close(self) -> None:
48
+ self.asdf.close()
@@ -0,0 +1,47 @@
1
+ import io
2
+ import re
3
+ from pathlib import Path
4
+ from typing import BinaryIO, Union
5
+
6
+ from dissect.evidence import EWF
7
+ from dissect.evidence.ewf import find_files
8
+
9
+ from dissect.target.container import Container
10
+
11
+
12
+ class EwfContainer(Container):
13
+ """Expert Witness Disk Image Format"""
14
+
15
+ __type__ = "ewf"
16
+
17
+ def __init__(self, fh: Union[list, BinaryIO, Path], *args, **kwargs):
18
+ fhs = [fh] if not isinstance(fh, list) else fh
19
+ if hasattr(fhs[0], "read"):
20
+ self.ewf = EWF(fhs)
21
+ else:
22
+ self.ewf = EWF([path.open("rb") for path in find_files(fhs[0])])
23
+
24
+ self._stream = self.ewf.open()
25
+ super().__init__(fh, self.ewf.size, *args, **kwargs)
26
+
27
+ @staticmethod
28
+ def _detect_fh(fh: BinaryIO, original: Union[list, BinaryIO]) -> bool:
29
+ """Detect file header"""
30
+ return fh.read(3) in (b"EVF", b"LVF", b"LEF")
31
+
32
+ @staticmethod
33
+ def detect_path(path: Path, original: Union[list, BinaryIO]) -> bool:
34
+ """Detect path"""
35
+ return re.match(r"\.[EeLs]x?01$", path.suffix)
36
+
37
+ def read(self, length: int) -> bytes:
38
+ return self._stream.read(length)
39
+
40
+ def seek(self, offset: int, whence: int = io.SEEK_SET) -> int:
41
+ return self._stream.seek(offset, whence)
42
+
43
+ def tell(self) -> int:
44
+ return self._stream.tell()
45
+
46
+ def close(self) -> None:
47
+ self._stream.close()
@@ -0,0 +1,39 @@
1
+ import io
2
+ from pathlib import Path
3
+ from typing import BinaryIO, Union
4
+
5
+ from dissect.hypervisor import hdd
6
+
7
+ from dissect.target.container import Container
8
+
9
+
10
+ class HddContainer(Container):
11
+ __type__ = "hdd"
12
+
13
+ def __init__(self, fh: Path, *args, **kwargs):
14
+ if hasattr(fh, "read"):
15
+ raise TypeError("HddContainer can only be opened by path")
16
+
17
+ self.hdd = hdd.HDD(fh)
18
+ self.stream = self.hdd.open()
19
+ super().__init__(fh, self.stream.size, *args, **kwargs)
20
+
21
+ @staticmethod
22
+ def _detect_fh(fh: BinaryIO, original: Union[list, BinaryIO]) -> bool:
23
+ return False
24
+
25
+ @staticmethod
26
+ def detect_path(path: Path, original: Union[list, BinaryIO]) -> bool:
27
+ return path.suffix.lower() == ".hdd"
28
+
29
+ def read(self, length: int) -> bytes:
30
+ return self.stream.read(length)
31
+
32
+ def seek(self, offset: int, whence: int = io.SEEK_SET) -> int:
33
+ return self.stream.seek(offset, whence)
34
+
35
+ def tell(self) -> int:
36
+ return self.stream.tell()
37
+
38
+ def close(self) -> None:
39
+ self.stream.close()