dissect.target 3.13.dev12__tar.gz → 3.14__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- dissect.target-3.14/MANIFEST.in +4 -0
- dissect.target-3.14/PKG-INFO +254 -0
- dissect.target-3.14/dissect/target/container.py +260 -0
- dissect.target-3.14/dissect/target/containers/asdf.py +48 -0
- dissect.target-3.14/dissect/target/containers/ewf.py +47 -0
- dissect.target-3.14/dissect/target/containers/hdd.py +39 -0
- dissect.target-3.14/dissect/target/containers/hds.py +40 -0
- dissect.target-3.14/dissect/target/containers/qcow2.py +39 -0
- dissect.target-3.14/dissect/target/containers/raw.py +42 -0
- dissect.target-3.14/dissect/target/containers/split.py +85 -0
- dissect.target-3.14/dissect/target/containers/vdi.py +41 -0
- dissect.target-3.14/dissect/target/containers/vhd.py +40 -0
- dissect.target-3.14/dissect/target/containers/vhdx.py +35 -0
- dissect.target-3.14/dissect/target/containers/vmdk.py +37 -0
- dissect.target-3.14/dissect/target/filesystem.py +1574 -0
- dissect.target-3.14/dissect/target/filesystems/ad1.py +82 -0
- dissect.target-3.14/dissect/target/filesystems/btrfs.py +180 -0
- dissect.target-3.14/dissect/target/filesystems/cb.py +151 -0
- dissect.target-3.14/dissect/target/filesystems/config.py +300 -0
- dissect.target-3.14/dissect/target/filesystems/dir.py +122 -0
- dissect.target-3.14/dissect/target/filesystems/exfat.py +151 -0
- dissect.target-3.14/dissect/target/filesystems/extfs.py +143 -0
- dissect.target-3.14/dissect/target/filesystems/fat.py +115 -0
- dissect.target-3.14/dissect/target/filesystems/ffs.py +138 -0
- dissect.target-3.14/dissect/target/filesystems/itunes.py +185 -0
- dissect.target-3.14/dissect/target/filesystems/ntfs.py +197 -0
- dissect.target-3.14/dissect/target/filesystems/smb.py +183 -0
- dissect.target-3.14/dissect/target/filesystems/squashfs.py +120 -0
- dissect.target-3.14/dissect/target/filesystems/tar.py +171 -0
- dissect.target-3.14/dissect/target/filesystems/vmfs.py +138 -0
- dissect.target-3.14/dissect/target/filesystems/xfs.py +142 -0
- dissect.target-3.14/dissect/target/filesystems/zip.py +136 -0
- dissect.target-3.14/dissect/target/helpers/cache.py +231 -0
- dissect.target-3.14/dissect/target/helpers/configutil.py +609 -0
- dissect.target-3.14/dissect/target/helpers/fsutil.py +1095 -0
- dissect.target-3.14/dissect/target/helpers/hashutil.py +127 -0
- dissect.target-3.14/dissect/target/helpers/keychain.py +109 -0
- dissect.target-3.14/dissect/target/helpers/utils.py +127 -0
- dissect.target-3.14/dissect/target/loaders/ad1.py +26 -0
- dissect.target-3.14/dissect/target/loaders/asdf.py +34 -0
- dissect.target-3.14/dissect/target/loaders/log.py +37 -0
- dissect.target-3.14/dissect/target/loaders/smb.py +368 -0
- dissect.target-3.14/dissect/target/loaders/targetd.py +221 -0
- dissect.target-3.14/dissect/target/loaders/vma.py +25 -0
- dissect.target-3.14/dissect/target/loaders/xva.py +27 -0
- dissect.target-3.14/dissect/target/plugin.py +1152 -0
- dissect.target-3.14/dissect/target/plugins/apps/av/sophos.py +111 -0
- dissect.target-3.14/dissect/target/plugins/apps/av/symantec.py +358 -0
- dissect.target-3.14/dissect/target/plugins/apps/av/trendmicro.py +121 -0
- dissect.target-3.14/dissect/target/plugins/apps/browser/chrome.py +55 -0
- dissect.target-3.14/dissect/target/plugins/apps/browser/chromium.py +354 -0
- dissect.target-3.14/dissect/target/plugins/apps/browser/edge.py +53 -0
- dissect.target-3.14/dissect/target/plugins/apps/browser/firefox.py +221 -0
- dissect.target-3.14/dissect/target/plugins/apps/browser/iexplore.py +220 -0
- dissect.target-3.14/dissect/target/plugins/apps/remoteaccess/teamviewer.py +111 -0
- dissect.target-3.14/dissect/target/plugins/apps/ssh/opensshd.py +180 -0
- dissect.target-3.14/dissect/target/plugins/apps/webserver/apache.py +159 -0
- dissect.target-3.14/dissect/target/plugins/apps/webserver/caddy.py +148 -0
- dissect.target-3.14/dissect/target/plugins/apps/webserver/iis.py +337 -0
- dissect.target-3.14/dissect/target/plugins/apps/webserver/nginx.py +93 -0
- dissect.target-3.14/dissect/target/plugins/child/hyperv.py +58 -0
- dissect.target-3.14/dissect/target/plugins/child/vmware_workstation.py +45 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/acquire_handles.py +48 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/acquire_hash.py +44 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/icat.py +100 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/ntfs/mft.py +267 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/ntfs/mft_timeline.py +172 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/ntfs/usnjrnl.py +77 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/resolver.py +108 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/unix/capability.py +169 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/walkfs.py +70 -0
- dissect.target-3.14/dissect/target/plugins/filesystem/yara.py +63 -0
- dissect.target-3.14/dissect/target/plugins/general/config.py +94 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/_os.py +351 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/bsd/osx/user.py +53 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/cronjobs.py +106 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/esxi/_os.py +450 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/generic.py +65 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/history.py +195 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/linux/_os.py +88 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/linux/android/_os.py +70 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/linux/services.py +112 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/linux/suse/zypper.py +82 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/locale.py +108 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/log/journal.py +460 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/packagemanager.py +81 -0
- dissect.target-3.14/dissect/target/plugins/os/unix/shadow.py +112 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/_os.py +325 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/amcache.py +651 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/catroot.py +126 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/cim.py +74 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/datetime.py +252 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/defender.py +566 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/generic.py +573 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/lnk.py +171 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/log/amcache.py +161 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/log/pfro.py +76 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/prefetch.py +316 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/recyclebin.py +138 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/7zip.py +107 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/bam.py +61 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/cit.py +962 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/mru.py +420 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/muicache.py +94 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/recentfilecache.py +65 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/runkeys.py +81 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/shimcache.py +362 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/trusteddocs.py +81 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/regf/userassist.py +137 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/services.py +166 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/sru.py +481 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/startupinfo.py +89 -0
- dissect.target-3.14/dissect/target/plugins/os/windows/syscache.py +93 -0
- dissect.target-3.14/dissect/target/target.py +825 -0
- dissect.target-3.14/dissect/target/tools/info.py +151 -0
- dissect.target-3.14/dissect/target/tools/mount.py +92 -0
- dissect.target-3.14/dissect/target/tools/query.py +392 -0
- dissect.target-3.14/dissect/target/tools/shell.py +1221 -0
- dissect.target-3.14/dissect/target/volume.py +425 -0
- dissect.target-3.14/dissect/target/volumes/bde.py +104 -0
- dissect.target-3.14/dissect/target/volumes/ddf.py +53 -0
- dissect.target-3.14/dissect/target/volumes/disk.py +37 -0
- dissect.target-3.14/dissect/target/volumes/luks.py +116 -0
- dissect.target-3.14/dissect/target/volumes/lvm.py +79 -0
- dissect.target-3.14/dissect/target/volumes/md.py +52 -0
- dissect.target-3.14/dissect/target/volumes/vmfs.py +63 -0
- dissect.target-3.14/dissect.target.egg-info/PKG-INFO +254 -0
- dissect.target-3.14/dissect.target.egg-info/SOURCES.txt +519 -0
- dissect.target-3.14/dissect.target.egg-info/requires.txt +45 -0
- dissect.target-3.14/pyproject.toml +118 -0
- dissect.target-3.14/tests/conftest.py +446 -0
- dissect.target-3.14/tests/filesystems/test_config.py +155 -0
- dissect.target-3.14/tests/filesystems/test_dir.py +81 -0
- dissect.target-3.14/tests/helpers/__init__.py +0 -0
- dissect.target-3.14/tests/helpers/test_configutil.py +229 -0
- dissect.target-3.14/tests/helpers/test_docs.py +49 -0
- dissect.target-3.14/tests/helpers/test_fsutil.py +420 -0
- dissect.target-3.14/tests/helpers/test_hashutil.py +155 -0
- dissect.target-3.14/tests/helpers/test_keychain.py +36 -0
- dissect.target-3.14/tests/helpers/test_regutil.py +311 -0
- dissect.target-3.14/tests/loaders/__init__.py +0 -0
- dissect.target-3.14/tests/loaders/test_asdf.py +21 -0
- dissect.target-3.14/tests/loaders/test_cb.py +130 -0
- dissect.target-3.14/tests/loaders/test_dir.py +84 -0
- dissect.target-3.14/tests/loaders/test_hyperv.py +71 -0
- dissect.target-3.14/tests/loaders/test_kape.py +32 -0
- dissect.target-3.14/tests/loaders/test_local.py +128 -0
- dissect.target-3.14/tests/loaders/test_log.py +30 -0
- dissect.target-3.14/tests/loaders/test_pvm.py +21 -0
- dissect.target-3.14/tests/loaders/test_smb.py +64 -0
- dissect.target-3.14/tests/loaders/test_tanium.py +32 -0
- dissect.target-3.14/tests/loaders/test_tar.py +63 -0
- dissect.target-3.14/tests/loaders/test_utm.py +48 -0
- dissect.target-3.14/tests/loaders/test_velociraptor.py +147 -0
- dissect.target-3.14/tests/loaders/test_vmwarevm.py +27 -0
- dissect.target-3.14/tests/plugins/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/av/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/av/test_mcafee.py +37 -0
- dissect.target-3.14/tests/plugins/apps/av/test_sophos.py +37 -0
- dissect.target-3.14/tests/plugins/apps/av/test_symantec.py +64 -0
- dissect.target-3.14/tests/plugins/apps/av/test_trendmicro.py +37 -0
- dissect.target-3.14/tests/plugins/apps/browser/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/browser/test_browser.py +193 -0
- dissect.target-3.14/tests/plugins/apps/container/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/container/test_docker.py +71 -0
- dissect.target-3.14/tests/plugins/apps/remoteaccess/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/remoteaccess/test_anydesk.py +47 -0
- dissect.target-3.14/tests/plugins/apps/remoteaccess/test_teamviewer.py +73 -0
- dissect.target-3.14/tests/plugins/apps/shell/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/shell/test_powershell.py +34 -0
- dissect.target-3.14/tests/plugins/apps/ssh/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/ssh/test_openssh.py +396 -0
- dissect.target-3.14/tests/plugins/apps/ssh/test_opensshd.py +53 -0
- dissect.target-3.14/tests/plugins/apps/vpn/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/vpn/test_openvpn.py +94 -0
- dissect.target-3.14/tests/plugins/apps/vpn/test_wireguard.py +27 -0
- dissect.target-3.14/tests/plugins/apps/webhosting/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/webhosting/test_cpanel.py +24 -0
- dissect.target-3.14/tests/plugins/apps/webserver/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/apps/webserver/test_apache.py +169 -0
- dissect.target-3.14/tests/plugins/apps/webserver/test_caddy.py +111 -0
- dissect.target-3.14/tests/plugins/apps/webserver/test_iis.py +185 -0
- dissect.target-3.14/tests/plugins/apps/webserver/test_nginx.py +126 -0
- dissect.target-3.14/tests/plugins/child/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/child/test_hyperv.py +37 -0
- dissect.target-3.14/tests/plugins/filesystem/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/filesystem/ntfs/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/filesystem/ntfs/test_mft.py +200 -0
- dissect.target-3.14/tests/plugins/filesystem/ntfs/test_usnjrnl.py +21 -0
- dissect.target-3.14/tests/plugins/filesystem/test_acquire_handles.py +20 -0
- dissect.target-3.14/tests/plugins/filesystem/test_acquire_hash.py +13 -0
- dissect.target-3.14/tests/plugins/filesystem/test_icat.py +17 -0
- dissect.target-3.14/tests/plugins/filesystem/test_walkfs.py +32 -0
- dissect.target-3.14/tests/plugins/filesystem/test_yara.py +38 -0
- dissect.target-3.14/tests/plugins/filesystem/unix/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/general/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/general/test_config.py +83 -0
- dissect.target-3.14/tests/plugins/os/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/bsd/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/bsd/citrix/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/bsd/osx/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/bsd/osx/test__os.py +34 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/android/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/android/test__os.py +10 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/debian/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/debian/test_apt.py +39 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/debian/test_dpkg.py +55 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/redhat/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/redhat/test_yum.py +39 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/suse/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/suse/test_zypper.py +39 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/test_iptables.py +150 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/test_modules.py +21 -0
- dissect.target-3.14/tests/plugins/os/unix/linux/test_services.py +62 -0
- dissect.target-3.14/tests/plugins/os/unix/log/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/unix/log/test_atop.py +43 -0
- dissect.target-3.14/tests/plugins/os/unix/log/test_audit.py +48 -0
- dissect.target-3.14/tests/plugins/os/unix/log/test_auth.py +102 -0
- dissect.target-3.14/tests/plugins/os/unix/log/test_lastlog.py +22 -0
- dissect.target-3.14/tests/plugins/os/unix/log/test_messages.py +105 -0
- dissect.target-3.14/tests/plugins/os/unix/log/test_utmp.py +65 -0
- dissect.target-3.14/tests/plugins/os/unix/test__os.py +63 -0
- dissect.target-3.14/tests/plugins/os/unix/test_generic.py +19 -0
- dissect.target-3.14/tests/plugins/os/unix/test_ips.py +100 -0
- dissect.target-3.14/tests/plugins/os/unix/test_journal.py +27 -0
- dissect.target-3.14/tests/plugins/os/unix/test_locale.py +78 -0
- dissect.target-3.14/tests/plugins/os/unix/test_packagemanager.py +15 -0
- dissect.target-3.14/tests/plugins/os/unix/test_shadow.py +29 -0
- dissect.target-3.14/tests/plugins/os/unix/test_users.py +48 -0
- dissect.target-3.14/tests/plugins/os/unix/test_version.py +104 -0
- dissect.target-3.14/tests/plugins/os/windows/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/windows/log/test_evt.py +91 -0
- dissect.target-3.14/tests/plugins/os/windows/log/test_evtx.py +102 -0
- dissect.target-3.14/tests/plugins/os/windows/regf/__init__.py +0 -0
- dissect.target-3.14/tests/plugins/os/windows/regf/test_trusteddocs.py +26 -0
- dissect.target-3.14/tests/plugins/os/windows/test_adpolicy.py +13 -0
- dissect.target-3.14/tests/plugins/os/windows/test_amcache.py +161 -0
- dissect.target-3.14/tests/plugins/os/windows/test_clfs.py +84 -0
- dissect.target-3.14/tests/plugins/os/windows/test_defender.py +162 -0
- dissect.target-3.14/tests/plugins/os/windows/test_dpapi.py +42 -0
- dissect.target-3.14/tests/plugins/os/windows/test_env.py +213 -0
- dissect.target-3.14/tests/plugins/os/windows/test_lnk.py +34 -0
- dissect.target-3.14/tests/plugins/os/windows/test_notifications.py +94 -0
- dissect.target-3.14/tests/plugins/os/windows/test_sru.py +24 -0
- dissect.target-3.14/tests/plugins/os/windows/test_syscache.py +12 -0
- dissect.target-3.14/tests/plugins/os/windows/test_tasks.py +221 -0
- dissect.target-3.14/tests/plugins/os/windows/test_ual.py +28 -0
- dissect.target-3.14/tests/plugins/os/windows/test_wer.py +30 -0
- dissect.target-3.14/tests/test_container.py +97 -0
- dissect.target-3.14/tests/test_filesystem.py +1121 -0
- dissect.target-3.14/tests/test_plugin.py +250 -0
- dissect.target-3.14/tests/test_registration.py +125 -0
- dissect.target-3.14/tests/test_target.py +523 -0
- dissect.target-3.14/tests/test_volume.py +31 -0
- dissect.target-3.14/tests/tools/__init__.py +0 -0
- dissect.target-3.14/tests/tools/test_dump.py +215 -0
- dissect.target-3.14/tests/tools/test_query.py +236 -0
- dissect.target-3.14/tests/tools/test_shell.py +283 -0
- dissect.target-3.14/tests/volumes/__init__.py +0 -0
- dissect.target-3.14/tests/volumes/test_bde.py +106 -0
- dissect.target-3.14/tests/volumes/test_md.py +30 -0
- dissect.target-3.14/tox.ini +78 -0
- dissect.target-3.13.dev12/MANIFEST.in +0 -3
- dissect.target-3.13.dev12/PKG-INFO +0 -253
- dissect.target-3.13.dev12/dissect/target/container.py +0 -218
- dissect.target-3.13.dev12/dissect/target/containers/asdf.py +0 -49
- dissect.target-3.13.dev12/dissect/target/containers/ewf.py +0 -48
- dissect.target-3.13.dev12/dissect/target/containers/hdd.py +0 -37
- dissect.target-3.13.dev12/dissect/target/containers/hds.py +0 -41
- dissect.target-3.13.dev12/dissect/target/containers/qcow2.py +0 -40
- dissect.target-3.13.dev12/dissect/target/containers/raw.py +0 -40
- dissect.target-3.13.dev12/dissect/target/containers/split.py +0 -83
- dissect.target-3.13.dev12/dissect/target/containers/vdi.py +0 -41
- dissect.target-3.13.dev12/dissect/target/containers/vhd.py +0 -42
- dissect.target-3.13.dev12/dissect/target/containers/vhdx.py +0 -36
- dissect.target-3.13.dev12/dissect/target/containers/vmdk.py +0 -38
- dissect.target-3.13.dev12/dissect/target/filesystem.py +0 -1473
- dissect.target-3.13.dev12/dissect/target/filesystems/ad1.py +0 -82
- dissect.target-3.13.dev12/dissect/target/filesystems/cb.py +0 -151
- dissect.target-3.13.dev12/dissect/target/filesystems/config.py +0 -170
- dissect.target-3.13.dev12/dissect/target/filesystems/dir.py +0 -122
- dissect.target-3.13.dev12/dissect/target/filesystems/exfat.py +0 -151
- dissect.target-3.13.dev12/dissect/target/filesystems/extfs.py +0 -139
- dissect.target-3.13.dev12/dissect/target/filesystems/fat.py +0 -115
- dissect.target-3.13.dev12/dissect/target/filesystems/ffs.py +0 -138
- dissect.target-3.13.dev12/dissect/target/filesystems/itunes.py +0 -185
- dissect.target-3.13.dev12/dissect/target/filesystems/ntfs.py +0 -197
- dissect.target-3.13.dev12/dissect/target/filesystems/smb.py +0 -183
- dissect.target-3.13.dev12/dissect/target/filesystems/squashfs.py +0 -120
- dissect.target-3.13.dev12/dissect/target/filesystems/tar.py +0 -171
- dissect.target-3.13.dev12/dissect/target/filesystems/vmfs.py +0 -138
- dissect.target-3.13.dev12/dissect/target/filesystems/xfs.py +0 -142
- dissect.target-3.13.dev12/dissect/target/filesystems/zip.py +0 -136
- dissect.target-3.13.dev12/dissect/target/helpers/cache.py +0 -231
- dissect.target-3.13.dev12/dissect/target/helpers/configutil.py +0 -409
- dissect.target-3.13.dev12/dissect/target/helpers/fsutil.py +0 -1092
- dissect.target-3.13.dev12/dissect/target/helpers/hashutil.py +0 -95
- dissect.target-3.13.dev12/dissect/target/helpers/keychain.py +0 -101
- dissect.target-3.13.dev12/dissect/target/helpers/utils.py +0 -116
- dissect.target-3.13.dev12/dissect/target/loaders/ad1.py +0 -26
- dissect.target-3.13.dev12/dissect/target/loaders/asdf.py +0 -34
- dissect.target-3.13.dev12/dissect/target/loaders/log.py +0 -37
- dissect.target-3.13.dev12/dissect/target/loaders/smb.py +0 -358
- dissect.target-3.13.dev12/dissect/target/loaders/targetd.py +0 -211
- dissect.target-3.13.dev12/dissect/target/loaders/vma.py +0 -25
- dissect.target-3.13.dev12/dissect/target/loaders/xva.py +0 -27
- dissect.target-3.13.dev12/dissect/target/plugin.py +0 -1140
- dissect.target-3.13.dev12/dissect/target/plugins/apps/av/sophos.py +0 -112
- dissect.target-3.13.dev12/dissect/target/plugins/apps/av/symantec.py +0 -359
- dissect.target-3.13.dev12/dissect/target/plugins/apps/av/trendmicro.py +0 -122
- dissect.target-3.13.dev12/dissect/target/plugins/apps/remoteaccess/teamviewer.py +0 -83
- dissect.target-3.13.dev12/dissect/target/plugins/apps/ssh/opensshd.py +0 -179
- dissect.target-3.13.dev12/dissect/target/plugins/apps/webservers/apache.py +0 -159
- dissect.target-3.13.dev12/dissect/target/plugins/apps/webservers/caddy.py +0 -148
- dissect.target-3.13.dev12/dissect/target/plugins/apps/webservers/iis.py +0 -337
- dissect.target-3.13.dev12/dissect/target/plugins/apps/webservers/nginx.py +0 -93
- dissect.target-3.13.dev12/dissect/target/plugins/browsers/chrome.py +0 -52
- dissect.target-3.13.dev12/dissect/target/plugins/browsers/chromium.py +0 -349
- dissect.target-3.13.dev12/dissect/target/plugins/browsers/edge.py +0 -50
- dissect.target-3.13.dev12/dissect/target/plugins/browsers/firefox.py +0 -225
- dissect.target-3.13.dev12/dissect/target/plugins/browsers/iexplore.py +0 -210
- dissect.target-3.13.dev12/dissect/target/plugins/child/hyperv.py +0 -59
- dissect.target-3.13.dev12/dissect/target/plugins/child/vmware_workstation.py +0 -47
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/acquire_handles.py +0 -46
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/acquire_hash.py +0 -50
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/icat.py +0 -100
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/ntfs/mft.py +0 -267
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/ntfs/mft_timeline.py +0 -172
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/ntfs/usnjrnl.py +0 -78
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/resolver.py +0 -108
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/unix/capability.py +0 -158
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/walkfs.py +0 -64
- dissect.target-3.13.dev12/dissect/target/plugins/filesystem/yara.py +0 -62
- dissect.target-3.13.dev12/dissect/target/plugins/general/config.py +0 -77
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/_os.py +0 -344
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/bsd/osx/user.py +0 -55
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/cronjobs.py +0 -118
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/generic.py +0 -61
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/history.py +0 -194
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux/_os.py +0 -81
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux/android/_os.py +0 -62
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux/esxi/_os.py +0 -451
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux/suse/zypper.py +0 -82
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/locale.py +0 -106
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/log/journal.py +0 -459
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/packagemanager.py +0 -81
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/services.py +0 -151
- dissect.target-3.13.dev12/dissect/target/plugins/os/unix/shadow.py +0 -112
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/_os.py +0 -324
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/amcache.py +0 -652
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/catroot.py +0 -126
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/cim.py +0 -73
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/datetime.py +0 -249
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/defender.py +0 -566
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/generic.py +0 -574
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/lnk.py +0 -171
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/log/amcache.py +0 -163
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/log/pfro.py +0 -78
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/prefetch.py +0 -317
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/recyclebin.py +0 -139
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/7zip.py +0 -109
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/bam.py +0 -62
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/cit.py +0 -963
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/mru.py +0 -416
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/muicache.py +0 -96
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/recentfilecache.py +0 -66
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/runkeys.py +0 -83
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/shimcache.py +0 -363
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/trusteddocs.py +0 -81
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/regf/userassist.py +0 -138
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/services.py +0 -168
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/sru.py +0 -481
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/startupinfo.py +0 -90
- dissect.target-3.13.dev12/dissect/target/plugins/os/windows/syscache.py +0 -94
- dissect.target-3.13.dev12/dissect/target/target.py +0 -768
- dissect.target-3.13.dev12/dissect/target/tools/info.py +0 -150
- dissect.target-3.13.dev12/dissect/target/tools/mount.py +0 -102
- dissect.target-3.13.dev12/dissect/target/tools/query.py +0 -380
- dissect.target-3.13.dev12/dissect/target/tools/shell.py +0 -1220
- dissect.target-3.13.dev12/dissect/target/volume.py +0 -411
- dissect.target-3.13.dev12/dissect/target/volumes/bde.py +0 -104
- dissect.target-3.13.dev12/dissect/target/volumes/disk.py +0 -35
- dissect.target-3.13.dev12/dissect/target/volumes/lvm.py +0 -77
- dissect.target-3.13.dev12/dissect/target/volumes/md.py +0 -50
- dissect.target-3.13.dev12/dissect/target/volumes/vmfs.py +0 -61
- dissect.target-3.13.dev12/dissect.target.egg-info/PKG-INFO +0 -253
- dissect.target-3.13.dev12/dissect.target.egg-info/SOURCES.txt +0 -660
- dissect.target-3.13.dev12/dissect.target.egg-info/requires.txt +0 -44
- dissect.target-3.13.dev12/pyproject.toml +0 -118
- dissect.target-3.13.dev12/tests/conftest.py +0 -416
- dissect.target-3.13.dev12/tests/data/PcaAppLaunchDic.txt +0 -57
- dissect.target-3.13.dev12/tests/data/SRUDB.dat +0 -0
- dissect.target-3.13.dev12/tests/data/Syscache.hve +0 -0
- dissect.target-3.13.dev12/tests/data/TestAnydesk.trace +0 -4
- dissect.target-3.13.dev12/tests/data/TestLog.evt +0 -0
- dissect.target-3.13.dev12/tests/data/TestLogX.evtx +0 -0
- dissect.target-3.13.dev12/tests/data/TestTeamviewer.log +0 -4
- dissect.target-3.13.dev12/tests/data/amcache-new.hve +0 -0
- dissect.target-3.13.dev12/tests/data/amcache-old.hve +0 -0
- dissect.target-3.13.dev12/tests/data/amcache_install/INSTALL_0000_594e4eb0-cb0e-4787-99de-3126f8d9e299.txt +0 -0
- dissect.target-3.13.dev12/tests/data/apps/av/mcafee/firewall.log +0 -0
- dissect.target-3.13.dev12/tests/data/apps/av/mcafee/infect.log +0 -0
- dissect.target-3.13.dev12/tests/data/apps/av/sophos/Clean.log +0 -0
- dissect.target-3.13.dev12/tests/data/apps/av/sophos/excalibur.db +0 -0
- dissect.target-3.13.dev12/tests/data/apps/av/trendmicro/firewall.log +0 -0
- dissect.target-3.13.dev12/tests/data/apps/av/trendmicro/pccnt35.log +0 -1
- dissect.target-3.13.dev12/tests/data/apps/containers/docker/container_running.json +0 -149
- dissect.target-3.13.dev12/tests/data/apps/containers/docker/image_metadata.json +0 -73
- dissect.target-3.13.dev12/tests/data/apps/containers/docker/repositories.json +0 -8
- dissect.target-3.13.dev12/tests/data/clfs/DRIVERS{53b39e70-18c4-11ea-a811-000d3aa4692b}.TM.blf +0 -0
- dissect.target-3.13.dev12/tests/data/clfs/DRIVERS{53b39e70-18c4-11ea-a811-000d3aa4692b}.TMContainer00000000000000000001.regtrans-ms +0 -0
- dissect.target-3.13.dev12/tests/data/defender-operational.evtx +0 -0
- dissect.target-3.13.dev12/tests/data/defender-quarantine/Entries/{800362A7-0000-0000-FB11-12639186E0D6} +0 -0
- dissect.target-3.13.dev12/tests/data/defender-quarantine/ResourceData/A6/A6C8322B8A19AEED96EFBD045206966DA4C9619D +0 -0
- dissect.target-3.13.dev12/tests/data/defender-quarantine/Resources/A6/A6C8322B8A19AEED96EFBD045206966DA4C9619D +0 -0
- dissect.target-3.13.dev12/tests/data/enc-volume.bin +0 -0
- dissect.target-3.13.dev12/tests/data/helpers/configparser/config +0 -5
- dissect.target-3.13.dev12/tests/data/helpers/configparser/hosts +0 -3
- dissect.target-3.13.dev12/tests/data/helpers/configparser/hosts.allow +0 -12
- dissect.target-3.13.dev12/tests/data/helpers/configparser/hosts.deny +0 -17
- dissect.target-3.13.dev12/tests/data/helpers/configparser/resolv.conf +0 -19
- dissect.target-3.13.dev12/tests/data/helpers/configparser/sshd_config +0 -88
- dissect.target-3.13.dev12/tests/data/keychain.csv +0 -4
- dissect.target-3.13.dev12/tests/data/loaders/asdf/metadata.asdf +0 -0
- dissect.target-3.13.dev12/tests/data/loaders/hyperv/993F7B33-6057-4D1E-A1FE-A1A1D77BE974.vmcx +0 -0
- dissect.target-3.13.dev12/tests/data/loaders/hyperv/B90AC31B-C6F8-479F-9B91-07B894A6A3F6.xml +0 -0
- dissect.target-3.13.dev12/tests/data/loaders/hyperv/D351C151-DAC7-4042-B434-B72D522C1E4A.xml +0 -0
- dissect.target-3.13.dev12/tests/data/loaders/hyperv/EC04F346-DB96-4700-AF5B-77B3C56C38BD.vmcx +0 -0
- dissect.target-3.13.dev12/tests/data/loaders/tar/test-archive-dot-folder.tgz +0 -0
- dissect.target-3.13.dev12/tests/data/mft.raw +0 -0
- dissect.target-3.13.dev12/tests/data/places.sqlite +0 -0
- dissect.target-3.13.dev12/tests/data/plugin_register/container.py +0 -39
- dissect.target-3.13.dev12/tests/data/plugin_register/filesystem.py +0 -23
- dissect.target-3.13.dev12/tests/data/plugin_register/loader.py +0 -17
- dissect.target-3.13.dev12/tests/data/plugin_register/plugin.py +0 -11
- dissect.target-3.13.dev12/tests/data/plugins/apps/av/symantec/cve.log +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/apps/av/symantec/tralog.log +0 -4
- dissect.target-3.13.dev12/tests/data/plugins/apps/sshd_config +0 -118
- dissect.target-3.13.dev12/tests/data/plugins/apps/webhosting/cpanel/lastlogin +0 -5
- dissect.target-3.13.dev12/tests/data/plugins/browsers/chrome/History.sqlite +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/browsers/chrome/windows/Preferences +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/browsers/chrome/windows/Secure Preferences +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/browsers/chromium/History.sqlite +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/browsers/chromium/windows/Preferences +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/browsers/chromium/windows/Secure Preferences +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/browsers/edge/History.sqlite +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/browsers/edge/windows/Preferences +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/browsers/edge/windows/Secure Preferences +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/browsers/firefox/places.sqlite +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/browsers/iexplore/WebCacheV01.dat.gz +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/child/hyperv/data.vmcx +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/citrix/flash/.version +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/citrix/flash/boot/loader.conf +0 -5
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/citrix/flash/nsconfig/ns.conf +0 -23
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/citrix/flash/nsconfig/ns.conf.0 +0 -24
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/freebsd/freebsd-freebsd-version +0 -141
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/osx/os/SystemVersion.plist +0 -18
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/osx/os/dissect.plist +0 -54
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/osx/os/en0.plist +0 -12
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/osx/os/preferences.plist +0 -158
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/bsd/osx/os/test.plist +0 -41
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/debian/apt/history.log +0 -22
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/debian/apt/history.log.1.bz2 +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/debian/apt/history.log.1.gz +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/debian/debian-os-release +0 -9
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/debian/ubuntu-lsb-release +0 -4
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/debian/ubuntu-os-release +0 -12
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/modulea/coresize +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/modulea/holders/holdera +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/modulea/initstate +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/modulea/refcnt +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/moduleb/coresize +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/moduleb/holders/holdera +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/moduleb/holders/holderb +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/moduleb/initstate +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/modules/module/moduleb/refcnt +0 -1
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/redhat/centos-os-release +0 -13
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/redhat/fedora-os-release +0 -22
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/redhat/yum/yum.log +0 -5
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/redhat/yum/yum.log.1.bz2 +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/redhat/yum/yum.log.1.gz +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/suse/opensuse-os-release +0 -12
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/suse/zypp/history +0 -123
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/suse/zypp/history.1.bz2 +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/linux/suse/zypp/history.1.gz +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/log/atop/atop +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/log/btmp/btmp +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/log/btmp/btmp-ipv6 +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/log/journal +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/log/lastlog/lastlog +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/log/wtmp/wtmp +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/log/wtmp/wtmp-ipv6 +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/services/initd.sh +0 -16
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/services/systemd.service +0 -14
- dissect.target-3.13.dev12/tests/data/plugins/os/unix/services/systemd2.service +0 -15
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/GPT.INI +0 -2
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Microsoft/Windows NT/Audit/audit.csv +0 -11
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Microsoft/Windows NT/SecEdit/GptTmpl.inf +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/comment.cmtx +0 -12
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{393FA062-30DB-40AC-A15E-E0B12B9F2928}/GPT.INI +0 -3
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{6AC1786C-016F-11D2-945F-00C04fB984F9}/GPT.INI +0 -2
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{6AC1786C-016F-11D2-945F-00C04fB984F9}/MACHINE/Microsoft/Windows NT/SecEdit/GptTmpl.inf +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/adpolicy/{CC63F200-7309-4ba0-B154-A71CD118DBCC}/USER/Preferences/ScheduledTasks/ScheduledTasks.xml +0 -11
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/dpapi/master_keys/d8ef5e00-328a-4919-9ab6-c058f493a6e3 +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/dpapi/test_data.dpapi +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/lnk/pestudio.lnk +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/notifications/appdb.dat.v3.gz +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/notifications/wpndatabase.db +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/powershell/ConsoleHost_history.txt +0 -4
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/tasks/AtTask.job +0 -0
- dissect.target-3.13.dev12/tests/data/plugins/os/windows/tasks/MapsToastTask +0 -0
- dissect.target-3.13.dev12/tests/data/regflex.reg +0 -568
- dissect.target-3.13.dev12/tests/data/symlink_disk.ext4 +0 -0
- dissect.target-3.13.dev12/tests/data/test-acquire-handles.tar +0 -0
- dissect.target-3.13.dev12/tests/data/test-acquire-hash.tar +0 -0
- dissect.target-3.13.dev12/tests/data/test-archive-empty-folder.tgz +0 -0
- dissect.target-3.13.dev12/tests/data/test-archive.tar.gz +0 -0
- dissect.target-3.13.dev12/tests/data/test-windows-fs-c-absolute.tar +0 -0
- dissect.target-3.13.dev12/tests/data/test-windows-fs-c-relative.tar +0 -0
- dissect.target-3.13.dev12/tests/data/test-windows-sysvol-absolute.tar +0 -0
- dissect.target-3.13.dev12/tests/data/test-windows-sysvol-relative.tar +0 -0
- dissect.target-3.13.dev12/tests/data/ual/Current.mdb +0 -0
- dissect.target-3.13.dev12/tests/data/ual/SystemIdentity.mdb +0 -0
- dissect.target-3.13.dev12/tests/data/unix/configs/ips/eth0.xml +0 -31
- dissect.target-3.13.dev12/tests/data/unix/configs/ips/interfaces +0 -19
- dissect.target-3.13.dev12/tests/data/unix/configs/keyboard +0 -10
- dissect.target-3.13.dev12/tests/data/unix/configs/passwd +0 -5
- dissect.target-3.13.dev12/tests/data/unix/configs/shadow +0 -4
- dissect.target-3.13.dev12/tests/data/unix/linux/proc/net/packet +0 -2
- dissect.target-3.13.dev12/tests/data/unix/linux/proc/net/raw +0 -2
- dissect.target-3.13.dev12/tests/data/unix/linux/proc/net/raw6 +0 -2
- dissect.target-3.13.dev12/tests/data/unix/linux/proc/net/tcp +0 -4
- dissect.target-3.13.dev12/tests/data/unix/linux/proc/net/tcp6 +0 -3
- dissect.target-3.13.dev12/tests/data/unix/linux/proc/net/udp +0 -4
- dissect.target-3.13.dev12/tests/data/unix/linux/proc/net/udp6 +0 -3
- dissect.target-3.13.dev12/tests/data/unix/linux/proc/net/unix +0 -5
- dissect.target-3.13.dev12/tests/data/unix/logs/audit.log +0 -4
- dissect.target-3.13.dev12/tests/data/unix/logs/auth/auth.log +0 -10
- dissect.target-3.13.dev12/tests/data/unix/logs/auth/auth.log.bz2 +0 -0
- dissect.target-3.13.dev12/tests/data/unix/logs/auth/auth.log.gz +0 -0
- dissect.target-3.13.dev12/tests/data/unix/logs/auth/secure +0 -2
- dissect.target-3.13.dev12/tests/data/unix/logs/dpkg-status +0 -215
- dissect.target-3.13.dev12/tests/data/unix/logs/dpkg.log +0 -366
- dissect.target-3.13.dev12/tests/data/unix/logs/dpkg.log.2.gz +0 -0
- dissect.target-3.13.dev12/tests/data/unix/logs/messages +0 -2
- dissect.target-3.13.dev12/tests/data/unix/logs/passwd-syslog +0 -23
- dissect.target-3.13.dev12/tests/data/uppercase_driveletter.tar +0 -0
- dissect.target-3.13.dev12/tests/data/usnjrnl.bin +0 -0
- dissect.target-3.13.dev12/tests/data/volumes/md-nested.bin.gz +0 -0
- dissect.target-3.13.dev12/tests/data/vpns/openvpn/client.conf +0 -130
- dissect.target-3.13.dev12/tests/data/vpns/openvpn/server.conf +0 -318
- dissect.target-3.13.dev12/tests/data/vpns/wireguard/wg0.conf +0 -30
- dissect.target-3.13.dev12/tests/data/webservers/apache/access.log +0 -4
- dissect.target-3.13.dev12/tests/data/webservers/apache/access.log.bz2 +0 -0
- dissect.target-3.13.dev12/tests/data/webservers/apache/access.log.gz +0 -0
- dissect.target-3.13.dev12/tests/data/webservers/caddy/Caddyfile +0 -30
- dissect.target-3.13.dev12/tests/data/webservers/caddy/access.log +0 -2
- dissect.target-3.13.dev12/tests/data/webservers/iis/iis-applicationHost-iis.config +0 -733
- dissect.target-3.13.dev12/tests/data/webservers/iis/iis-applicationHost-w3c-logFile-without-directory-attr.config +0 -728
- dissect.target-3.13.dev12/tests/data/webservers/iis/iis-applicationHost-w3c.config +0 -733
- dissect.target-3.13.dev12/tests/data/webservers/iis/iis-logs-iis/W3SVC1/u_in211001.log +0 -10
- dissect.target-3.13.dev12/tests/data/webservers/iis/iis-logs-w3c/W3SVC1/u_ex211001_x.log +0 -32
- dissect.target-3.13.dev12/tests/data/webservers/nginx/access.log +0 -2
- dissect.target-3.13.dev12/tests/data/webservers/nginx/access.log.bz2 +0 -0
- dissect.target-3.13.dev12/tests/data/webservers/nginx/access.log.gz +0 -0
- dissect.target-3.13.dev12/tests/data/webservers/nginx/nginx.conf +0 -82
- dissect.target-3.13.dev12/tests/data/wer/wer_test.tmp.WERInternalMetadata.xml +0 -0
- dissect.target-3.13.dev12/tests/data/wer/wer_test.wer +0 -0
- dissect.target-3.13.dev12/tests/data/wer/windows7/wer_test_no_bom.wer +0 -0
- dissect.target-3.13.dev12/tests/test_container_open.py +0 -71
- dissect.target-3.13.dev12/tests/test_filesystem.py +0 -1093
- dissect.target-3.13.dev12/tests/test_filesystems_config.py +0 -164
- dissect.target-3.13.dev12/tests/test_filesystems_dir.py +0 -83
- dissect.target-3.13.dev12/tests/test_helpers_configutil.py +0 -153
- dissect.target-3.13.dev12/tests/test_helpers_docs.py +0 -49
- dissect.target-3.13.dev12/tests/test_helpers_fsutil.py +0 -371
- dissect.target-3.13.dev12/tests/test_helpers_hashutil.py +0 -101
- dissect.target-3.13.dev12/tests/test_helpers_keychain.py +0 -31
- dissect.target-3.13.dev12/tests/test_helpers_regutil.py +0 -312
- dissect.target-3.13.dev12/tests/test_loaders_asdf.py +0 -22
- dissect.target-3.13.dev12/tests/test_loaders_cb.py +0 -125
- dissect.target-3.13.dev12/tests/test_loaders_dir.py +0 -85
- dissect.target-3.13.dev12/tests/test_loaders_hyperv.py +0 -72
- dissect.target-3.13.dev12/tests/test_loaders_kape.py +0 -33
- dissect.target-3.13.dev12/tests/test_loaders_local.py +0 -135
- dissect.target-3.13.dev12/tests/test_loaders_log.py +0 -30
- dissect.target-3.13.dev12/tests/test_loaders_pvm.py +0 -22
- dissect.target-3.13.dev12/tests/test_loaders_smb.py +0 -57
- dissect.target-3.13.dev12/tests/test_loaders_tanium.py +0 -33
- dissect.target-3.13.dev12/tests/test_loaders_tar.py +0 -64
- dissect.target-3.13.dev12/tests/test_loaders_utm.py +0 -49
- dissect.target-3.13.dev12/tests/test_loaders_velociraptor.py +0 -148
- dissect.target-3.13.dev12/tests/test_loaders_vmwarevm.py +0 -28
- dissect.target-3.13.dev12/tests/test_plugin.py +0 -250
- dissect.target-3.13.dev12/tests/test_plugins_apps_av_mcafee.py +0 -38
- dissect.target-3.13.dev12/tests/test_plugins_apps_av_sophos.py +0 -38
- dissect.target-3.13.dev12/tests/test_plugins_apps_av_symantec.py +0 -65
- dissect.target-3.13.dev12/tests/test_plugins_apps_av_trendmicro.py +0 -38
- dissect.target-3.13.dev12/tests/test_plugins_apps_containers_docker.py +0 -72
- dissect.target-3.13.dev12/tests/test_plugins_apps_remoteaccess_anydesk.py +0 -48
- dissect.target-3.13.dev12/tests/test_plugins_apps_remoteaccess_teamviewer.py +0 -48
- dissect.target-3.13.dev12/tests/test_plugins_apps_shell_powershell.py +0 -35
- dissect.target-3.13.dev12/tests/test_plugins_apps_ssh_openssh.py +0 -396
- dissect.target-3.13.dev12/tests/test_plugins_apps_ssh_opensshd.py +0 -26
- dissect.target-3.13.dev12/tests/test_plugins_apps_vpns_openvpn.py +0 -95
- dissect.target-3.13.dev12/tests/test_plugins_apps_vpns_wireguard.py +0 -28
- dissect.target-3.13.dev12/tests/test_plugins_apps_webhosting_cpanel.py +0 -25
- dissect.target-3.13.dev12/tests/test_plugins_apps_webservers_apache.py +0 -170
- dissect.target-3.13.dev12/tests/test_plugins_apps_webservers_caddy.py +0 -112
- dissect.target-3.13.dev12/tests/test_plugins_apps_webservers_iis.py +0 -189
- dissect.target-3.13.dev12/tests/test_plugins_apps_webservers_nginx.py +0 -127
- dissect.target-3.13.dev12/tests/test_plugins_browsers.py +0 -188
- dissect.target-3.13.dev12/tests/test_plugins_child_hyperv.py +0 -38
- dissect.target-3.13.dev12/tests/test_plugins_filesystem_acquire_handles.py +0 -24
- dissect.target-3.13.dev12/tests/test_plugins_filesystem_acquire_hash.py +0 -14
- dissect.target-3.13.dev12/tests/test_plugins_filesystem_icat.py +0 -18
- dissect.target-3.13.dev12/tests/test_plugins_filesystem_ntfs_mft.py +0 -201
- dissect.target-3.13.dev12/tests/test_plugins_filesystem_ntfs_usnjrnl.py +0 -22
- dissect.target-3.13.dev12/tests/test_plugins_filesystem_walkfs.py +0 -88
- dissect.target-3.13.dev12/tests/test_plugins_filesystem_yara.py +0 -40
- dissect.target-3.13.dev12/tests/test_plugins_generic_config.py +0 -40
- dissect.target-3.13.dev12/tests/test_plugins_os_unix.py +0 -67
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_bsd_osx_os.py +0 -35
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_debian_dpkg.py +0 -56
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_generic.py +0 -20
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_ips.py +0 -101
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_journal.py +0 -28
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_debian_apt.py +0 -40
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_iptables.py +0 -150
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_modules.py +0 -30
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_redhat_yum.py +0 -40
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_suse_zypper.py +0 -40
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_locale.py +0 -79
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_log.py +0 -121
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_log_audit.py +0 -49
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_log_auth.py +0 -109
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_log_messages.py +0 -112
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_packagemanager.py +0 -16
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_services.py +0 -80
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_shadow.py +0 -30
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_users.py +0 -49
- dissect.target-3.13.dev12/tests/test_plugins_os_unix_version.py +0 -84
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_adpolicy.py +0 -14
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_amcache.py +0 -165
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_clfs.py +0 -85
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_defender.py +0 -161
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_dpapi.py +0 -43
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_env.py +0 -222
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_lnk.py +0 -35
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_log.py +0 -164
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_notifications.py +0 -95
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_regf_trusteddocs.py +0 -31
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_sru.py +0 -25
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_syscache.py +0 -13
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_tasks.py +0 -222
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_ual.py +0 -29
- dissect.target-3.13.dev12/tests/test_plugins_os_windows_wer.py +0 -31
- dissect.target-3.13.dev12/tests/test_registration.py +0 -125
- dissect.target-3.13.dev12/tests/test_shell.py +0 -153
- dissect.target-3.13.dev12/tests/test_target.py +0 -429
- dissect.target-3.13.dev12/tests/test_target_path.py +0 -54
- dissect.target-3.13.dev12/tests/test_tools_dump.py +0 -216
- dissect.target-3.13.dev12/tests/test_tools_query.py +0 -217
- dissect.target-3.13.dev12/tests/test_tools_shell.py +0 -98
- dissect.target-3.13.dev12/tests/test_volumes_bde.py +0 -106
- dissect.target-3.13.dev12/tests/test_volumes_md.py +0 -31
- dissect.target-3.13.dev12/tox.ini +0 -78
- {dissect.target-3.13.dev12 → dissect.target-3.14}/COPYRIGHT +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/LICENSE +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/README.md +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/containers/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/data/autocompletion/target_bash_completion.sh +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/exceptions.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/filesystems/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/config.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/data/windowsZones.xml +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/descriptor_extensions.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/docs.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/lazy.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/loaderutil.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/localeutil.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/mount.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/network_managers.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/record.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/regutil.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/shell_folder_ids.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/ssh.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/helpers/targetd.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loader.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/cb.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/dir.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/hyperv.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/itunes.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/kape.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/local.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/multiraw.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/ova.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/ovf.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/phobos.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/profile.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/pvm.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/pvs.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/raw.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/remote.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/res.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/tanium.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/tar.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/target.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/utm.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/vb.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/vbox.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/velociraptor.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/vmwarevm.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/loaders/vmx.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/apps/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/apps/av/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/apps/av/mcafee.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/containers → dissect.target-3.14/dissect/target/plugins/apps/browser}/__init__.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/browsers → dissect.target-3.14/dissect/target/plugins/apps/browser}/browser.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/remoteaccess → dissect.target-3.14/dissect/target/plugins/apps/container}/__init__.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/containers → dissect.target-3.14/dissect/target/plugins/apps/container}/docker.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/shell → dissect.target-3.14/dissect/target/plugins/apps/remoteaccess}/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/apps/remoteaccess/anydesk.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/apps/remoteaccess/remoteaccess.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/ssh → dissect.target-3.14/dissect/target/plugins/apps/shell}/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/apps/shell/powershell.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/vpns → dissect.target-3.14/dissect/target/plugins/apps/ssh}/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/apps/ssh/openssh.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/webhosting → dissect.target-3.14/dissect/target/plugins/apps/vpn}/__init__.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/vpns → dissect.target-3.14/dissect/target/plugins/apps/vpn}/openvpn.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/vpns → dissect.target-3.14/dissect/target/plugins/apps/vpn}/wireguard.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/apps/webservers → dissect.target-3.14/dissect/target/plugins/apps/webhosting}/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/apps/webhosting/cpanel.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/browsers → dissect.target-3.14/dissect/target/plugins/apps/webserver}/__init__.py +0 -0
- /dissect.target-3.13.dev12/dissect/target/plugins/apps/webservers/webservers.py → /dissect.target-3.14/dissect/target/plugins/apps/webserver/webserver.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/child/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/child/esxi.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/child/virtuozzo.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/child/wsl.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/filesystem/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/filesystem/ntfs/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/filesystem/ntfs/utils.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/filesystem/unix/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/filesystem/unix/suid.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/general/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/general/default.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/general/example.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/general/loaders.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/general/osinfo.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/general/plugins.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/general/scrape.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/general/users.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/citrix/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/citrix/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/freebsd/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/freebsd/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/ios/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/ios/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/openbsd/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/openbsd/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/osx/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/bsd/osx/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/datetime.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux → dissect.target-3.14/dissect/target/plugins/os/unix/esxi}/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/etc.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux/android → dissect.target-3.14/dissect/target/plugins/os/unix/linux}/__init__.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux/debian → dissect.target-3.14/dissect/target/plugins/os/unix/linux/android}/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/cmdline.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux/debian/vyos → dissect.target-3.14/dissect/target/plugins/os/unix/linux/debian}/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/debian/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/debian/apt.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/debian/dpkg.py +0 -0
- {dissect.target-3.13.dev12/dissect/target/plugins/os/unix/linux/esxi → dissect.target-3.14/dissect/target/plugins/os/unix/linux/debian/vyos}/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/debian/vyos/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/environ.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/fortigate/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/fortigate/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/iptables.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/modules.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/netstat.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/proc.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/processes.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/redhat/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/redhat/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/redhat/yum.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/sockets.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/suse/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/linux/suse/_os.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/atop.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/audit.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/auth.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/lastlog.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/messages.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/unix/log/utmp.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/activitiescache.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/adpolicy.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/clfs.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/blob.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/crypto.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/dpapi.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/dpapi/master_key.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/env.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/exchange/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/exchange/exchange.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/locale.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/log/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/log/etl.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/log/evt.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/log/evtx.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/notifications.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/appxdebugkeys.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/auditpol.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/clsid.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/firewall.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/nethist.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/regf.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/shellbags.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/regf/usb.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/registry.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/sam.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/task_helpers/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/task_helpers/tasks_job.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/task_helpers/tasks_records.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/task_helpers/tasks_xml.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/tasks.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/thumbcache.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/ual.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/plugins/os/windows/wer.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/report.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/build_pluginlist.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/dd.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/dump/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/dump/run.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/dump/state.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/dump/utils.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/fs.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/logging.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/reg.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/tools/utils.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect/target/volumes/__init__.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect.target.egg-info/dependency_links.txt +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect.target.egg-info/entry_points.txt +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/dissect.target.egg-info/top_level.txt +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/setup.cfg +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/tests/__init__.py +0 -0
- {dissect.target-3.13.dev12/tests/docs → dissect.target-3.14/tests/_docs}/Makefile +0 -0
- {dissect.target-3.13.dev12/tests/docs → dissect.target-3.14/tests/_docs}/conf.py +0 -0
- {dissect.target-3.13.dev12/tests/docs → dissect.target-3.14/tests/_docs}/index.rst +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/tests/_utils.py +0 -0
- /dissect.target-3.13.dev12/tests/data/empty.log → /dissect.target-3.14/tests/containers/__init__.py +0 -0
- /dissect.target-3.13.dev12/tests/test_containers_split.py → /dissect.target-3.14/tests/containers/test_split.py +0 -0
- /dissect.target-3.13.dev12/tests/data/unix/logs/empty.log → /dissect.target-3.14/tests/filesystems/__init__.py +0 -0
- /dissect.target-3.13.dev12/tests/test_filesystems_cb.py → /dissect.target-3.14/tests/filesystems/test_cb.py +0 -0
- /dissect.target-3.13.dev12/tests/test_filesystems_exfat.py → /dissect.target-3.14/tests/filesystems/test_exfat.py +0 -0
- /dissect.target-3.13.dev12/tests/test_filesystems_fat.py → /dissect.target-3.14/tests/filesystems/test_fat.py +0 -0
- /dissect.target-3.13.dev12/tests/test_filesystems_ntfs.py → /dissect.target-3.14/tests/filesystems/test_ntfs.py +0 -0
- /dissect.target-3.13.dev12/tests/test_filesystems_smb.py → /dissect.target-3.14/tests/filesystems/test_smb.py +0 -0
- /dissect.target-3.13.dev12/tests/test_filesystems_tar.py → /dissect.target-3.14/tests/filesystems/test_tar.py +0 -0
- /dissect.target-3.13.dev12/tests/test_filesystems_zip.py → /dissect.target-3.14/tests/filesystems/test_zip.py +0 -0
- /dissect.target-3.13.dev12/tests/test_helpers_cache.py → /dissect.target-3.14/tests/helpers/test_cache.py +0 -0
- /dissect.target-3.13.dev12/tests/test_helpers_config.py → /dissect.target-3.14/tests/helpers/test_config.py +0 -0
- /dissect.target-3.13.dev12/tests/test_helpers_loaderutil.py → /dissect.target-3.14/tests/helpers/test_loaderutil.py +0 -0
- /dissect.target-3.13.dev12/tests/test_helpers_localeutil.py → /dissect.target-3.14/tests/helpers/test_localeutil.py +0 -0
- {dissect.target-3.13.dev12/tests → dissect.target-3.14/tests/helpers}/test_record.py +0 -0
- /dissect.target-3.13.dev12/tests/test_helpers_utils.py → /dissect.target-3.14/tests/helpers/test_utils.py +0 -0
- /dissect.target-3.13.dev12/tests/test_loaders_multiraw.py → /dissect.target-3.14/tests/loaders/test_multiraw.py +0 -0
- /dissect.target-3.13.dev12/tests/test_loaders_ova.py → /dissect.target-3.14/tests/loaders/test_ova.py +0 -0
- /dissect.target-3.13.dev12/tests/test_loaders_ovf.py → /dissect.target-3.14/tests/loaders/test_ovf.py +0 -0
- /dissect.target-3.13.dev12/tests/test_loaders_phobos.py → /dissect.target-3.14/tests/loaders/test_phobos.py +0 -0
- /dissect.target-3.13.dev12/tests/test_loaders_pvs.py → /dissect.target-3.14/tests/loaders/test_pvs.py +0 -0
- /dissect.target-3.13.dev12/tests/test_loaders_remote.py → /dissect.target-3.14/tests/loaders/test_remote.py +0 -0
- /dissect.target-3.13.dev12/tests/test_loaders_vbox.py → /dissect.target-3.14/tests/loaders/test_vbox.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_child_virtuozzo.py → /dissect.target-3.14/tests/plugins/child/test_virtuozzo.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_child_wsl.py → /dissect.target-3.14/tests/plugins/child/test_wsl.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_filesystem_resolver.py → /dissect.target-3.14/tests/plugins/filesystem/test_resolver.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_filesystem_unix_capability.py → /dissect.target-3.14/tests/plugins/filesystem/unix/test_capability.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_filesystem_unix_suid.py → /dissect.target-3.14/tests/plugins/filesystem/unix/test_suid.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_general_default.py → /dissect.target-3.14/tests/plugins/general/test_default.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_general_plugins.py → /dissect.target-3.14/tests/plugins/general/test_plugins.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_scrape.py → /dissect.target-3.14/tests/plugins/general/test_scrape.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_general_users.py → /dissect.target-3.14/tests/plugins/general/test_users.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_bsd_citrix.py → /dissect.target-3.14/tests/plugins/os/unix/bsd/citrix/test__os.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_bsd_osx_user.py → /dissect.target-3.14/tests/plugins/os/unix/bsd/osx/test_user.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_cmdline.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_cmdline.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_environ.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_environ.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_netstat.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_netstat.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_proc.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_proc.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_processes.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_processes.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_linux_sockets.py → /dissect.target-3.14/tests/plugins/os/unix/linux/test_sockets.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_unix_history.py → /dissect.target-3.14/tests/plugins/os/unix/test_history.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_log_etl.py → /dissect.target-3.14/tests/plugins/os/windows/log/test_etl.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_regf_appxdebugkeys.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_appxdebugkeys.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_regf_cit.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_cit.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_regf_clsid.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_clsid.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_regf_muicache.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_muicache.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_regf_userassist.py → /dissect.target-3.14/tests/plugins/os/windows/regf/test_userassist.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows__os.py → /dissect.target-3.14/tests/plugins/os/windows/test__os.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_datetime.py → /dissect.target-3.14/tests/plugins/os/windows/test_datetime.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_generic.py → /dissect.target-3.14/tests/plugins/os/windows/test_generic.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_locale.py → /dissect.target-3.14/tests/plugins/os/windows/test_locale.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_mru.py → /dissect.target-3.14/tests/plugins/os/windows/test_mru.py +0 -0
- /dissect.target-3.13.dev12/tests/test_prefetch_time.py → /dissect.target-3.14/tests/plugins/os/windows/test_prefetch.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_recyclebin.py → /dissect.target-3.14/tests/plugins/os/windows/test_recyclebin.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_registry.py → /dissect.target-3.14/tests/plugins/os/windows/test_registry.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_sam.py → /dissect.target-3.14/tests/plugins/os/windows/test_sam.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_shimcache.py → /dissect.target-3.14/tests/plugins/os/windows/test_shimcache.py +0 -0
- /dissect.target-3.13.dev12/tests/test_plugins_os_windows_thumbcache.py → /dissect.target-3.14/tests/plugins/os/windows/test_thumbcache.py +0 -0
- {dissect.target-3.13.dev12 → dissect.target-3.14}/tests/test_report.py +0 -0
- /dissect.target-3.13.dev12/tests/test_target_fs.py → /dissect.target-3.14/tests/tools/test_fs.py +0 -0
- /dissect.target-3.13.dev12/tests/test_tools_mount.py → /dissect.target-3.14/tests/tools/test_mount.py +0 -0
- /dissect.target-3.13.dev12/tests/test_tools_utils.py → /dissect.target-3.14/tests/tools/test_utils.py +0 -0
@@ -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()
|