dissect.target 3.19.dev32__tar.gz → 3.19.dev34__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {dissect_target-3.19.dev32/dissect.target.egg-info → dissect_target-3.19.dev34}/PKG-INFO +1 -1
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/config.py +22 -7
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/loaderutil.py +26 -7
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/target.py +3 -2
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/shell.py +34 -2
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34/dissect.target.egg-info}/PKG-INFO +1 -1
- dissect_target-3.19.dev34/tests/helpers/test_loaderutil.py +145 -0
- dissect_target-3.19.dev32/tests/helpers/test_loaderutil.py +0 -41
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/COPYRIGHT +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/LICENSE +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/MANIFEST.in +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/README.md +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/container.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/asdf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/ewf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/fortifw.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/hdd.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/hds.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/qcow2.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/raw.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/split.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/vdi.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/vhd.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/vhdx.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/vmdk.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/data/autocompletion/target_bash_completion.sh +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/exceptions.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystem.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/ad1.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/btrfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/cb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/config.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/cpio.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/dir.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/exfat.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/extfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/fat.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/ffs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/itunes.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/jffs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/ntfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/overlay.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/smb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/squashfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/tar.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/vmfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/vmtar.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/xfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/zip.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/cache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_310.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_311.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_312.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_39.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_common.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/configutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/cyber.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/data/windowsZones.xml +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/descriptor_extensions.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/docs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/fsutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/hashutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/keychain.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/lazy.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/localeutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/mount.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/mui.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/network_managers.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/polypath.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/protobuf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/record.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/record_modifier.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/regutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/shell_folder_ids.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/targetd.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/utils.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loader.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/ab.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/ad1.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/asdf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/cb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/cyber.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/dir.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/hyperv.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/itunes.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/kape.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/local.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/log.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/mqtt.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/multiraw.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/ova.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/overlay.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/ovf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/phobos.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/profile.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/pvm.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/pvs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/raw.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/remote.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/res.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/smb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/tanium.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/tar.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/target.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/targetd.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/utm.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/vb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/vbox.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/velociraptor.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/vma.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/vmwarevm.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/vmx.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/loaders/xva.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugin.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/av/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/av/mcafee.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/av/sophos.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/av/symantec.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/av/trendmicro.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/browser/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/browser/brave.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/browser/browser.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/browser/chrome.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/browser/chromium.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/browser/edge.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/browser/firefox.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/browser/iexplore.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/container/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/container/docker.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/remoteaccess/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/remoteaccess/anydesk.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/remoteaccess/remoteaccess.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/remoteaccess/teamviewer.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/shell/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/shell/powershell.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/ssh/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/ssh/openssh.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/ssh/opensshd.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/ssh/putty.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/ssh/ssh.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/vpn/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/vpn/openvpn.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/vpn/wireguard.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webhosting/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webhosting/cpanel.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webserver/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webserver/apache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webserver/caddy.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webserver/citrix.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webserver/iis.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webserver/nginx.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/apps/webserver/webserver.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/child/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/child/docker.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/child/esxi.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/child/hyperv.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/child/virtuozzo.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/child/vmware_workstation.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/child/wsl.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/acquire_handles.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/acquire_hash.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/icat.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/ntfs/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/ntfs/mft.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/ntfs/mft_timeline.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/ntfs/usnjrnl.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/ntfs/utils.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/resolver.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/unix/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/unix/capability.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/unix/suid.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/walkfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/filesystem/yara.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/config.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/default.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/example.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/loaders.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/osinfo.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/plugins.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/scrape.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/general/users.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/citrix/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/citrix/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/citrix/history.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/freebsd/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/freebsd/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/ios/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/ios/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/openbsd/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/openbsd/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/osx/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/osx/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/bsd/osx/user.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/cronjobs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/datetime.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/esxi/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/esxi/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/etc/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/etc/etc.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/etc.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/generic.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/history.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/android/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/android/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/cmdline.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/debian/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/debian/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/debian/apt.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/debian/dpkg.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/debian/vyos/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/debian/vyos/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/environ.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/fortios/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/fortios/_keys.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/fortios/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/fortios/generic.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/fortios/locale.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/iptables.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/modules.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/netstat.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/proc.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/processes.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/redhat/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/redhat/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/redhat/yum.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/services.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/sockets.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/suse/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/suse/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/linux/suse/zypper.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/locale.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/locate/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/locate/gnulocate.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/locate/locate.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/locate/mlocate.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/locate/plocate.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/log/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/log/atop.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/log/audit.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/log/auth.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/log/journal.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/log/lastlog.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/log/messages.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/log/utmp.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/packagemanager.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/unix/shadow.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/_os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/activitiescache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/adpolicy.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/amcache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/catroot.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/cim.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/clfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/credhist.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/datetime.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/defender.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/defender_helpers/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/defender_helpers/defender_patterns.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/defender_helpers/defender_records.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/dpapi/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/dpapi/blob.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/dpapi/crypto.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/dpapi/dpapi.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/dpapi/master_key.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/env.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/exchange/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/exchange/exchange.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/generic.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/lnk.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/locale.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/log/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/log/amcache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/log/etl.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/log/evt.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/log/evtx.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/log/pfro.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/log/schedlgu.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/notifications.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/prefetch.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/recyclebin.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/7zip.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/appxdebugkeys.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/auditpol.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/bam.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/cit.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/clsid.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/firewall.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/mru.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/muicache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/nethist.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/recentfilecache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/regf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/runkeys.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/shellbags.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/shimcache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/trusteddocs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/usb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/regf/userassist.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/registry.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/sam.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/services.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/sru.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/startupinfo.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/syscache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/task_helpers/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/task_helpers/tasks_job.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/task_helpers/tasks_records.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/task_helpers/tasks_xml.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/tasks.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/thumbcache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/ual.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/plugins/os/windows/wer.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/report.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/build_pluginlist.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/dd.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/dump/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/dump/run.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/dump/state.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/dump/utils.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/fs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/info.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/logging.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/mount.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/query.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/reg.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/utils.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/tools/yara.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volume.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volumes/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volumes/bde.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volumes/ddf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volumes/disk.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volumes/luks.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volumes/lvm.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volumes/md.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/volumes/vmfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect.target.egg-info/SOURCES.txt +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect.target.egg-info/dependency_links.txt +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect.target.egg-info/entry_points.txt +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect.target.egg-info/requires.txt +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect.target.egg-info/top_level.txt +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/pyproject.toml +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/setup.cfg +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/_docs/Makefile +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/_docs/conf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/_docs/index.rst +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/_utils.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/conftest.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/containers/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/containers/test_fortifw.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/containers/test_split.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_cb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_config.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_cpio.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_dir.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_exfat.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_fat.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_ntfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_overlay.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_smb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_tar.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_vmtar.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/filesystems/test_zip.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_cache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_config.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_configutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_docs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_fsutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_hashutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_keychain.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_localeutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_modifier.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_protobuf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_record.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_regutil.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/helpers/test_utils.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_ab.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_asdf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_cb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_dir.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_hyperv.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_kape.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_local.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_log.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_mqtt.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_multiraw.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_ova.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_overlay.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_ovf.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_phobos.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_pvm.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_pvs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_remote.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_smb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_tanium.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_tar.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_utm.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_vbox.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_velociraptor.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/loaders/test_vmwarevm.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/av/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/av/test_mcafee.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/av/test_sophos.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/av/test_symantec.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/av/test_trendmicro.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/browser/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/browser/test_brave.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/browser/test_chrome.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/browser/test_chromium.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/browser/test_edge.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/browser/test_firefox.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/browser/test_iexplore.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/container/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/container/test_docker.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/remoteaccess/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/remoteaccess/test_anydesk.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/remoteaccess/test_teamviewer.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/shell/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/shell/test_powershell.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/ssh/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/ssh/test_openssh.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/ssh/test_opensshd.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/ssh/test_putty.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/vpn/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/vpn/test_openvpn.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/vpn/test_wireguard.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webhosting/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webhosting/test_cpanel.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webserver/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webserver/test_apache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webserver/test_caddy.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webserver/test_citrix.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webserver/test_iis.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webserver/test_nginx.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/apps/webserver/test_webserver.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/child/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/child/test_docker.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/child/test_hyperv.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/child/test_virtuozzo.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/child/test_wsl.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/ntfs/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/ntfs/test_mft.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/ntfs/test_usnjrnl.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/test_acquire_handles.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/test_acquire_hash.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/test_icat.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/test_resolver.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/test_walkfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/test_yara.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/unix/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/unix/test_capability.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/filesystem/unix/test_suid.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/general/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/general/test_config.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/general/test_default.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/general/test_plugins.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/general/test_scrape.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/general/test_users.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/bsd/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/bsd/citrix/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/bsd/citrix/test__os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/bsd/citrix/test_history.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/bsd/osx/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/bsd/osx/test__os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/bsd/osx/test_user.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/esxi/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/esxi/test__os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/android/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/android/test__os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/debian/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/debian/test_apt.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/debian/test_dpkg.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/fortios/test_keys.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/redhat/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/redhat/test_yum.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/suse/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/suse/test_zypper.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_cmdline.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_environ.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_iptables.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_modules.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_netstat.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_proc.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_processes.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_services.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/linux/test_sockets.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/locate/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/locate/test_gnulocate.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/locate/test_mlocate.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/locate/test_plocate.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/log/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/log/test_atop.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/log/test_audit.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/log/test_auth.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/log/test_lastlog.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/log/test_messages.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/log/test_utmp.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test__os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_generic.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_history.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_ips.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_journal.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_locale.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_packagemanager.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_shadow.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_users.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/unix/test_version.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/log/test_etl.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/log/test_evt.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/log/test_evtx.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/log/test_schedlgu.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/test_appxdebugkeys.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/test_cit.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/test_clsid.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/test_muicache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/test_shellbags.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/test_trusteddocs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/test_usb.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/regf/test_userassist.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test__os.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_adpolicy.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_amcache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_catroot.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_clfs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_credhist.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_datetime.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_defender.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_dpapi.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_env.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_generic.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_lnk.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_locale.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_mru.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_notifications.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_prefetch.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_recyclebin.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_registry.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_sam.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_shimcache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_sru.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_syscache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_tasks.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_thumbcache.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_ual.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/plugins/os/windows/test_wer.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/test_container.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/test_filesystem.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/test_plugin.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/test_registration.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/test_report.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/test_target.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/test_volume.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_dump.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_fs.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_info.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_mount.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_query.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_reg.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_shell.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_utils.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/tools/test_yara.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/volumes/__init__.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/volumes/test_bde.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tests/volumes/test_md.py +0 -0
- {dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/tox.ini +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dissect.target
|
3
|
-
Version: 3.19.
|
3
|
+
Version: 3.19.dev34
|
4
4
|
Summary: This module ties all other Dissect modules together, it provides a programming API and command line tools which allow easy access to various data sources inside disk images or file collections (a.k.a. targets)
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
6
6
|
License: Affero General Public License v3
|
@@ -1,27 +1,35 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
1
3
|
import ast
|
2
4
|
import importlib.machinery
|
3
5
|
import importlib.util
|
4
6
|
import logging
|
5
7
|
from pathlib import Path
|
6
8
|
from types import ModuleType
|
7
|
-
from typing import Optional, Union
|
8
9
|
|
9
10
|
log = logging.getLogger(__name__)
|
10
11
|
|
11
12
|
CONFIG_NAME = ".targetcfg.py"
|
12
13
|
|
13
14
|
|
14
|
-
def load(
|
15
|
+
def load(paths: list[Path | str] | Path | str | None) -> ModuleType:
|
16
|
+
"""Attempt to load one configuration from the provided path(s)."""
|
17
|
+
|
18
|
+
if isinstance(paths, Path) or isinstance(paths, str):
|
19
|
+
paths = [paths]
|
20
|
+
|
15
21
|
config_spec = importlib.machinery.ModuleSpec("config", None)
|
16
22
|
config = importlib.util.module_from_spec(config_spec)
|
17
|
-
config_file = _find_config_file(
|
23
|
+
config_file = _find_config_file(paths)
|
24
|
+
|
18
25
|
if config_file:
|
19
26
|
config_values = _parse_ast(config_file.read_bytes())
|
20
27
|
config.__dict__.update(config_values)
|
28
|
+
|
21
29
|
return config
|
22
30
|
|
23
31
|
|
24
|
-
def _parse_ast(code: str) -> dict[str,
|
32
|
+
def _parse_ast(code: str) -> dict[str, str | int]:
|
25
33
|
# Only allow basic value assignments for backwards compatibility
|
26
34
|
obj = {}
|
27
35
|
|
@@ -49,15 +57,19 @@ def _parse_ast(code: str) -> dict[str, Union[str, int]]:
|
|
49
57
|
return obj
|
50
58
|
|
51
59
|
|
52
|
-
def _find_config_file(
|
53
|
-
"""Find a config file anywhere in the given path and return it.
|
60
|
+
def _find_config_file(paths: list[Path | str] | None) -> Path | None:
|
61
|
+
"""Find a config file anywhere in the given path(s) and return it.
|
54
62
|
|
55
63
|
This algorithm allows parts of the path to not exist or the last part to be a filename.
|
56
64
|
It also does not look in the root directory ('/') for config files.
|
57
65
|
"""
|
58
66
|
|
67
|
+
if not paths:
|
68
|
+
return
|
69
|
+
|
59
70
|
config_file = None
|
60
|
-
|
71
|
+
|
72
|
+
for path in paths:
|
61
73
|
path = Path(path)
|
62
74
|
cur_path = path.absolute()
|
63
75
|
|
@@ -69,4 +81,7 @@ def _find_config_file(path: Optional[Union[Path, str]]) -> Optional[Path]:
|
|
69
81
|
config_file = cur_config
|
70
82
|
cur_path = cur_path.parent
|
71
83
|
|
84
|
+
if config_file:
|
85
|
+
break
|
86
|
+
|
72
87
|
return config_file
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/loaderutil.py
RENAMED
@@ -5,7 +5,7 @@ import re
|
|
5
5
|
import urllib
|
6
6
|
from os import PathLike
|
7
7
|
from pathlib import Path
|
8
|
-
from typing import TYPE_CHECKING, BinaryIO
|
8
|
+
from typing import TYPE_CHECKING, BinaryIO
|
9
9
|
|
10
10
|
from dissect.target.exceptions import FileNotFoundError
|
11
11
|
from dissect.target.filesystem import Filesystem
|
@@ -42,12 +42,31 @@ def add_virtual_ntfs_filesystem(
|
|
42
42
|
fh_sds = _try_open(fs, sds_path)
|
43
43
|
|
44
44
|
if any([fh_boot, fh_mft]):
|
45
|
-
ntfs =
|
46
|
-
target.filesystems.add(ntfs)
|
47
|
-
fs.ntfs = ntfs.ntfs
|
45
|
+
ntfs = None
|
48
46
|
|
49
|
-
|
50
|
-
|
47
|
+
try:
|
48
|
+
ntfs = NtfsFilesystem(boot=fh_boot, mft=fh_mft, usnjrnl=fh_usnjrnl, sds=fh_sds)
|
49
|
+
except Exception as e:
|
50
|
+
if fh_boot:
|
51
|
+
log.warning("Failed to load NTFS filesystem from %s, retrying without $Boot file", fs)
|
52
|
+
log.debug("", exc_info=e)
|
53
|
+
|
54
|
+
try:
|
55
|
+
# Try once more without the $Boot file
|
56
|
+
ntfs = NtfsFilesystem(mft=fh_mft, usnjrnl=fh_usnjrnl, sds=fh_sds)
|
57
|
+
except Exception:
|
58
|
+
log.warning("Failed to load NTFS filesystem from %s without $Boot file, skipping", fs)
|
59
|
+
return
|
60
|
+
|
61
|
+
# Only add it if we have a valid NTFS with an MFT
|
62
|
+
if ntfs and ntfs.ntfs.mft:
|
63
|
+
target.filesystems.add(ntfs)
|
64
|
+
fs.ntfs = ntfs.ntfs
|
65
|
+
else:
|
66
|
+
log.warning("Opened NTFS filesystem from %s but could not find $MFT, skipping", fs)
|
67
|
+
|
68
|
+
|
69
|
+
def _try_open(fs: Filesystem, path: str) -> BinaryIO | None:
|
51
70
|
paths = [path] if not isinstance(path, list) else path
|
52
71
|
|
53
72
|
for path in paths:
|
@@ -61,7 +80,7 @@ def _try_open(fs: Filesystem, path: str) -> BinaryIO:
|
|
61
80
|
pass
|
62
81
|
|
63
82
|
|
64
|
-
def extract_path_info(path:
|
83
|
+
def extract_path_info(path: str | Path) -> tuple[Path, urllib.parse.ParseResult | None]:
|
65
84
|
"""
|
66
85
|
Extracts a ParseResult from a path if it has
|
67
86
|
a scheme and adjusts the path if necessary.
|
@@ -87,9 +87,10 @@ class Target:
|
|
87
87
|
self._applied = False
|
88
88
|
|
89
89
|
try:
|
90
|
-
self._config = config.load(self.path)
|
90
|
+
self._config = config.load([self.path, os.getcwd()])
|
91
91
|
except Exception as e:
|
92
|
-
self.log.
|
92
|
+
self.log.warning("Error loading config file: %s", self.path)
|
93
|
+
self.log.debug("", exc_info=e)
|
93
94
|
self._config = config.load(None) # This loads an empty config.
|
94
95
|
|
95
96
|
# Fill the disks and/or volumes and/or filesystems and apply() will
|
@@ -58,6 +58,7 @@ try:
|
|
58
58
|
except ImportError:
|
59
59
|
# Readline is not available on Windows
|
60
60
|
log.warning("Readline module is not available")
|
61
|
+
readline = None
|
61
62
|
|
62
63
|
# ['mode', 'addr', 'dev', 'nlink', 'uid', 'gid', 'size', 'atime', 'mtime', 'ctime']
|
63
64
|
STAT_TEMPLATE = """ File: {path} {symlink}
|
@@ -111,12 +112,43 @@ class TargetCmd(cmd.Cmd):
|
|
111
112
|
|
112
113
|
CMD_PREFIX = "cmd_"
|
113
114
|
|
115
|
+
DEFAULT_HISTFILE = "~/.dissect_history"
|
116
|
+
DEFAULT_HISTFILESIZE = 10_000
|
117
|
+
DEFAULT_HISTDIR = None
|
118
|
+
DEFAULT_HISTDIRFMT = ".dissect_history_{uid}_{target}"
|
119
|
+
|
114
120
|
def __init__(self, target: Target):
|
115
121
|
cmd.Cmd.__init__(self)
|
116
122
|
self.target = target
|
117
123
|
self.debug = False
|
118
124
|
self.identchars += "."
|
119
125
|
|
126
|
+
self.histfilesize = getattr(target._config, "HISTFILESIZE", self.DEFAULT_HISTFILESIZE)
|
127
|
+
self.histdir = getattr(target._config, "HISTDIR", self.DEFAULT_HISTDIR)
|
128
|
+
|
129
|
+
if self.histdir:
|
130
|
+
self.histdirfmt = getattr(target._config, "HISTDIRFMT", self.DEFAULT_HISTDIRFMT)
|
131
|
+
self.histfile = pathlib.Path(self.histdir).resolve() / pathlib.Path(
|
132
|
+
self.histdirfmt.format(uid=os.getuid(), target=target.name)
|
133
|
+
)
|
134
|
+
else:
|
135
|
+
self.histfile = pathlib.Path(getattr(target._config, "HISTFILE", self.DEFAULT_HISTFILE)).expanduser()
|
136
|
+
|
137
|
+
def preloop(self) -> None:
|
138
|
+
if readline and self.histfile.exists():
|
139
|
+
try:
|
140
|
+
readline.read_history_file(self.histfile)
|
141
|
+
except Exception as e:
|
142
|
+
log.debug("Error reading history file: %s", e)
|
143
|
+
|
144
|
+
def postloop(self) -> None:
|
145
|
+
if readline:
|
146
|
+
readline.set_history_length(self.histfilesize)
|
147
|
+
try:
|
148
|
+
readline.write_history_file(self.histfile)
|
149
|
+
except Exception as e:
|
150
|
+
log.debug("Error writing history file: %s", e)
|
151
|
+
|
120
152
|
def __getattr__(self, attr: str) -> Any:
|
121
153
|
if attr.startswith("help_"):
|
122
154
|
_, _, command = attr.partition("_")
|
@@ -1241,10 +1273,11 @@ def run_cli(cli: cmd.Cmd) -> None:
|
|
1241
1273
|
# Print an empty newline on exit
|
1242
1274
|
print()
|
1243
1275
|
return
|
1276
|
+
|
1244
1277
|
except KeyboardInterrupt:
|
1245
1278
|
# Add a line when pressing ctrl+c, so the next one starts at a new line
|
1246
1279
|
print()
|
1247
|
-
|
1280
|
+
|
1248
1281
|
except Exception as e:
|
1249
1282
|
if cli.debug:
|
1250
1283
|
log.exception(e)
|
@@ -1252,7 +1285,6 @@ def run_cli(cli: cmd.Cmd) -> None:
|
|
1252
1285
|
log.info(e)
|
1253
1286
|
print(f"*** Unhandled error: {e}")
|
1254
1287
|
print("If you wish to see the full debug trace, enable debug mode.")
|
1255
|
-
pass
|
1256
1288
|
|
1257
1289
|
|
1258
1290
|
@catch_sigpipe
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dissect.target
|
3
|
-
Version: 3.19.
|
3
|
+
Version: 3.19.dev34
|
4
4
|
Summary: This module ties all other Dissect modules together, it provides a programming API and command line tools which allow easy access to various data sources inside disk images or file collections (a.k.a. targets)
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
6
6
|
License: Affero General Public License v3
|
@@ -0,0 +1,145 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
import urllib
|
4
|
+
from pathlib import Path
|
5
|
+
from typing import TYPE_CHECKING
|
6
|
+
from unittest.mock import Mock, patch
|
7
|
+
|
8
|
+
import pytest
|
9
|
+
|
10
|
+
from dissect.target.filesystem import VirtualFilesystem
|
11
|
+
from dissect.target.filesystems.dir import DirectoryFilesystem
|
12
|
+
from dissect.target.helpers.fsutil import TargetPath
|
13
|
+
from dissect.target.helpers.loaderutil import (
|
14
|
+
add_virtual_ntfs_filesystem,
|
15
|
+
extract_path_info,
|
16
|
+
)
|
17
|
+
|
18
|
+
if TYPE_CHECKING:
|
19
|
+
from dissect.target.target import Target
|
20
|
+
|
21
|
+
|
22
|
+
@pytest.mark.parametrize(
|
23
|
+
"path, expected",
|
24
|
+
[
|
25
|
+
# None objects fall through (BC)
|
26
|
+
(None, (None, None)),
|
27
|
+
# Path objects fall through (BC/DRY)
|
28
|
+
(Path("path"), (Path("path"), None)),
|
29
|
+
(TargetPath(DirectoryFilesystem("/")), (TargetPath(DirectoryFilesystem("/")), None)),
|
30
|
+
# Strings get upgraded to Paths
|
31
|
+
("/path/to/file", (Path("/path/to/file"), None)),
|
32
|
+
# URIs get converted to Path extracted from path part and a ParseResult
|
33
|
+
(
|
34
|
+
"tar:///folder/file.tar.gz",
|
35
|
+
(Path("/folder/file.tar.gz"), urllib.parse.urlparse("tar:///folder/file.tar.gz")),
|
36
|
+
),
|
37
|
+
(
|
38
|
+
"tar://relative/folder/file.tar.gz",
|
39
|
+
(Path("relative/folder/file.tar.gz"), urllib.parse.urlparse("tar://relative/folder/file.tar.gz")),
|
40
|
+
),
|
41
|
+
("tar://~/file.tar.gz", (Path("~/file.tar.gz").expanduser(), urllib.parse.urlparse("tar://~/file.tar.gz"))),
|
42
|
+
# But not if the URI has a faux scheme
|
43
|
+
("C:\\path\\to\\file", (Path("C:\\path\\to\\file"), None)),
|
44
|
+
],
|
45
|
+
)
|
46
|
+
def test_extract_path_info(
|
47
|
+
path: Path | str, expected: tuple[Path | None, urllib.parse.ParseResult[str] | None]
|
48
|
+
) -> None:
|
49
|
+
assert extract_path_info(path) == expected
|
50
|
+
|
51
|
+
|
52
|
+
@pytest.mark.parametrize(
|
53
|
+
"boot, mft, expected_logs",
|
54
|
+
[
|
55
|
+
(None, None, []),
|
56
|
+
(
|
57
|
+
None,
|
58
|
+
False,
|
59
|
+
[
|
60
|
+
"Opened NTFS filesystem from <VirtualFilesystem> but could not find $MFT, skipping",
|
61
|
+
],
|
62
|
+
),
|
63
|
+
(None, True, []),
|
64
|
+
(
|
65
|
+
False,
|
66
|
+
None,
|
67
|
+
[
|
68
|
+
"Failed to load NTFS filesystem from <VirtualFilesystem>, retrying without $Boot file",
|
69
|
+
"Opened NTFS filesystem from <VirtualFilesystem> but could not find $MFT, skipping",
|
70
|
+
],
|
71
|
+
),
|
72
|
+
(
|
73
|
+
False,
|
74
|
+
False,
|
75
|
+
[
|
76
|
+
"Failed to load NTFS filesystem from <VirtualFilesystem>, retrying without $Boot file",
|
77
|
+
"Failed to load NTFS filesystem from <VirtualFilesystem> without $Boot file, skipping",
|
78
|
+
],
|
79
|
+
),
|
80
|
+
(
|
81
|
+
False,
|
82
|
+
True,
|
83
|
+
[
|
84
|
+
"Failed to load NTFS filesystem from <VirtualFilesystem>, retrying without $Boot file",
|
85
|
+
],
|
86
|
+
),
|
87
|
+
(
|
88
|
+
True,
|
89
|
+
None,
|
90
|
+
[
|
91
|
+
"Opened NTFS filesystem from <VirtualFilesystem> but could not find $MFT, skipping",
|
92
|
+
],
|
93
|
+
),
|
94
|
+
(
|
95
|
+
True,
|
96
|
+
False,
|
97
|
+
[
|
98
|
+
"Failed to load NTFS filesystem from <VirtualFilesystem>, retrying without $Boot file",
|
99
|
+
"Failed to load NTFS filesystem from <VirtualFilesystem> without $Boot file, skipping",
|
100
|
+
],
|
101
|
+
),
|
102
|
+
(True, True, []),
|
103
|
+
],
|
104
|
+
)
|
105
|
+
def test_virtual_ntfs_resiliency(
|
106
|
+
boot: bool | None,
|
107
|
+
mft: bool | None,
|
108
|
+
expected_logs: list[str],
|
109
|
+
target_default: Target,
|
110
|
+
caplog: pytest.LogCaptureFixture,
|
111
|
+
) -> None:
|
112
|
+
sentinels = {
|
113
|
+
None: None,
|
114
|
+
False: Mock(),
|
115
|
+
True: Mock(),
|
116
|
+
}
|
117
|
+
|
118
|
+
def _try_open(fs, path):
|
119
|
+
state = None
|
120
|
+
if path == "$Boot":
|
121
|
+
state = boot
|
122
|
+
elif path == "$MFT":
|
123
|
+
state = mft
|
124
|
+
return sentinels[state]
|
125
|
+
|
126
|
+
def NtfsFilesystem(boot=None, mft=None, **kwargs):
|
127
|
+
if boot is sentinels[False] or mft is sentinels[False]:
|
128
|
+
raise Exception("Oopsiewoopsie")
|
129
|
+
|
130
|
+
fake_ntfs = Mock()
|
131
|
+
fake_ntfs.ntfs.mft = None
|
132
|
+
|
133
|
+
if mft is sentinels[True]:
|
134
|
+
fake_ntfs.ntfs.mft = Mock()
|
135
|
+
|
136
|
+
return fake_ntfs
|
137
|
+
|
138
|
+
vfs = VirtualFilesystem()
|
139
|
+
with patch("dissect.target.helpers.loaderutil._try_open", new=_try_open), patch(
|
140
|
+
"dissect.target.helpers.loaderutil.NtfsFilesystem", new=NtfsFilesystem
|
141
|
+
):
|
142
|
+
add_virtual_ntfs_filesystem(target_default, vfs)
|
143
|
+
|
144
|
+
assert caplog.messages == expected_logs
|
145
|
+
assert hasattr(vfs, "ntfs") == (True if mft else False)
|
@@ -1,41 +0,0 @@
|
|
1
|
-
from __future__ import annotations
|
2
|
-
|
3
|
-
import urllib
|
4
|
-
from pathlib import Path
|
5
|
-
from typing import Optional
|
6
|
-
|
7
|
-
import pytest
|
8
|
-
|
9
|
-
from dissect.target.filesystems.dir import DirectoryFilesystem
|
10
|
-
from dissect.target.helpers.fsutil import TargetPath
|
11
|
-
from dissect.target.helpers.loaderutil import extract_path_info
|
12
|
-
|
13
|
-
|
14
|
-
@pytest.mark.parametrize(
|
15
|
-
"path, expected",
|
16
|
-
[
|
17
|
-
# None objects fall through (BC)
|
18
|
-
(None, (None, None)),
|
19
|
-
# Path objects fall through (BC/DRY)
|
20
|
-
(Path("path"), (Path("path"), None)),
|
21
|
-
(TargetPath(DirectoryFilesystem("/")), (TargetPath(DirectoryFilesystem("/")), None)),
|
22
|
-
# Strings get upgraded to Paths
|
23
|
-
("/path/to/file", (Path("/path/to/file"), None)),
|
24
|
-
# URIs get converted to Path extracted from path part and a ParseResult
|
25
|
-
(
|
26
|
-
"tar:///folder/file.tar.gz",
|
27
|
-
(Path("/folder/file.tar.gz"), urllib.parse.urlparse("tar:///folder/file.tar.gz")),
|
28
|
-
),
|
29
|
-
(
|
30
|
-
"tar://relative/folder/file.tar.gz",
|
31
|
-
(Path("relative/folder/file.tar.gz"), urllib.parse.urlparse("tar://relative/folder/file.tar.gz")),
|
32
|
-
),
|
33
|
-
("tar://~/file.tar.gz", (Path("~/file.tar.gz").expanduser(), urllib.parse.urlparse("tar://~/file.tar.gz"))),
|
34
|
-
# But not if the URI has a faux scheme
|
35
|
-
("C:\\path\\to\\file", (Path("C:\\path\\to\\file"), None)),
|
36
|
-
],
|
37
|
-
)
|
38
|
-
def test_extract_path_info(
|
39
|
-
path: Path | str, expected: tuple[Optional[Path], Optional[urllib.parse.ParseResult[str]]]
|
40
|
-
) -> None:
|
41
|
-
assert extract_path_info(path) == expected
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/containers/fortifw.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/config.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/itunes.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/overlay.py
RENAMED
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/filesystems/squashfs.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/__init__.py
RENAMED
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_310.py
RENAMED
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_311.py
RENAMED
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_312.py
RENAMED
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_39.py
RENAMED
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/compat/path_common.py
RENAMED
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/configutil.py
RENAMED
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/data/windowsZones.xml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/localeutil.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/network_managers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/record_modifier.py
RENAMED
File without changes
|
File without changes
|
{dissect_target-3.19.dev32 → dissect_target-3.19.dev34}/dissect/target/helpers/shell_folder_ids.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|