dissect.target 3.15.dev27__tar.gz → 3.15.dev28__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {dissect.target-3.15.dev27/dissect.target.egg-info → dissect.target-3.15.dev28}/PKG-INFO +1 -1
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystem.py +6 -7
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/target.py +6 -2
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/dd.py +7 -1
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/fs.py +8 -1
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/info.py +22 -16
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/mount.py +8 -1
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/query.py +136 -131
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/reg.py +21 -16
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/shell.py +6 -1
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28/dissect.target.egg-info}/PKG-INFO +1 -1
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/COPYRIGHT +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/LICENSE +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/MANIFEST.in +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/README.md +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/container.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/asdf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/ewf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/hdd.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/hds.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/qcow2.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/raw.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/split.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/vdi.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/vhd.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/vhdx.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/vmdk.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/data/autocompletion/target_bash_completion.sh +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/exceptions.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/ad1.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/btrfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/cb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/config.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/dir.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/exfat.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/extfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/fat.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/ffs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/itunes.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/jffs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/ntfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/smb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/squashfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/tar.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/vmfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/xfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/zip.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/cache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/compat/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/compat/path_310.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/compat/path_311.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/compat/path_312.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/compat/path_39.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/compat/path_common.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/config.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/configutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/cyber.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/data/windowsZones.xml +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/descriptor_extensions.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/docs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/fsutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/hashutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/keychain.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/lazy.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/loaderutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/localeutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/mount.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/network_managers.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/polypath.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/record.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/record_modifier.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/regutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/shell_folder_ids.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/ssh.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/targetd.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/helpers/utils.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loader.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/ad1.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/asdf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/cb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/cyber.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/dir.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/hyperv.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/itunes.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/kape.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/local.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/log.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/multiraw.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/ova.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/ovf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/phobos.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/profile.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/pvm.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/pvs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/raw.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/remote.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/res.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/smb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/tanium.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/tar.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/target.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/targetd.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/utm.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/vb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/vbox.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/velociraptor.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/vma.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/vmwarevm.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/vmx.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/loaders/xva.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugin.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/av/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/av/mcafee.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/av/sophos.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/av/symantec.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/av/trendmicro.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/browser/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/browser/browser.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/browser/chrome.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/browser/chromium.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/browser/edge.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/browser/firefox.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/browser/iexplore.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/container/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/container/docker.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/remoteaccess/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/remoteaccess/anydesk.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/remoteaccess/remoteaccess.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/remoteaccess/teamviewer.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/shell/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/shell/powershell.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/ssh/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/ssh/openssh.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/ssh/opensshd.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/ssh/putty.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/ssh/ssh.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/vpn/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/vpn/openvpn.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/vpn/wireguard.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webhosting/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webhosting/cpanel.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webserver/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webserver/apache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webserver/caddy.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webserver/citrix.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webserver/iis.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webserver/nginx.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/apps/webserver/webserver.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/child/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/child/esxi.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/child/hyperv.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/child/virtuozzo.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/child/vmware_workstation.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/child/wsl.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/acquire_handles.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/acquire_hash.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/icat.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/ntfs/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/ntfs/mft.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/ntfs/mft_timeline.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/ntfs/usnjrnl.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/ntfs/utils.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/resolver.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/unix/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/unix/capability.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/unix/suid.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/walkfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/filesystem/yara.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/config.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/default.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/example.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/loaders.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/osinfo.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/plugins.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/scrape.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/general/users.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/citrix/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/citrix/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/freebsd/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/freebsd/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/ios/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/ios/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/openbsd/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/openbsd/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/osx/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/osx/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/bsd/osx/user.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/cronjobs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/datetime.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/esxi/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/esxi/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/etc.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/generic.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/history.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/android/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/android/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/cmdline.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/debian/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/debian/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/debian/apt.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/debian/dpkg.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/debian/vyos/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/debian/vyos/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/environ.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/fortigate/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/fortigate/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/iptables.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/modules.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/netstat.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/proc.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/processes.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/redhat/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/redhat/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/redhat/yum.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/services.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/sockets.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/suse/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/suse/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/linux/suse/zypper.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/locale.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/log/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/log/atop.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/log/audit.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/log/auth.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/log/journal.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/log/lastlog.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/log/messages.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/log/utmp.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/packagemanager.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/unix/shadow.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/_os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/activitiescache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/adpolicy.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/amcache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/catroot.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/cim.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/clfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/datetime.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/defender.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/dpapi/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/dpapi/blob.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/dpapi/crypto.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/dpapi/dpapi.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/dpapi/master_key.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/env.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/exchange/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/exchange/exchange.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/generic.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/lnk.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/locale.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/log/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/log/amcache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/log/etl.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/log/evt.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/log/evtx.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/log/pfro.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/notifications.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/prefetch.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/recyclebin.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/7zip.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/appxdebugkeys.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/auditpol.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/bam.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/cit.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/clsid.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/firewall.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/mru.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/muicache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/nethist.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/recentfilecache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/regf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/runkeys.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/shellbags.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/shimcache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/trusteddocs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/usb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/regf/userassist.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/registry.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/sam.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/services.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/sru.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/startupinfo.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/syscache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/task_helpers/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/task_helpers/tasks_job.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/task_helpers/tasks_records.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/task_helpers/tasks_xml.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/tasks.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/thumbcache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/ual.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/plugins/os/windows/wer.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/report.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/build_pluginlist.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/dump/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/dump/run.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/dump/state.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/dump/utils.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/logging.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/tools/utils.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volume.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volumes/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volumes/bde.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volumes/ddf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volumes/disk.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volumes/luks.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volumes/lvm.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volumes/md.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/volumes/vmfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect.target.egg-info/SOURCES.txt +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect.target.egg-info/dependency_links.txt +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect.target.egg-info/entry_points.txt +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect.target.egg-info/requires.txt +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect.target.egg-info/top_level.txt +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/pyproject.toml +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/setup.cfg +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/_docs/Makefile +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/_docs/conf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/_docs/index.rst +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/_utils.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/conftest.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/containers/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/containers/test_split.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_cb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_config.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_dir.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_exfat.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_fat.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_ntfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_smb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_tar.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/filesystems/test_zip.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_cache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_config.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_configutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_docs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_fsutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_hashutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_keychain.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_loaderutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_localeutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_modifier.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_record.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_regutil.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/helpers/test_utils.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_asdf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_cb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_dir.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_hyperv.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_kape.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_local.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_log.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_multiraw.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_ova.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_ovf.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_phobos.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_pvm.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_pvs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_remote.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_smb.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_tanium.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_tar.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_utm.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_vbox.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_velociraptor.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/loaders/test_vmwarevm.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/av/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/av/test_mcafee.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/av/test_sophos.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/av/test_symantec.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/av/test_trendmicro.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/browser/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/browser/test_browser.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/container/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/container/test_docker.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/remoteaccess/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/remoteaccess/test_anydesk.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/remoteaccess/test_teamviewer.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/shell/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/shell/test_powershell.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/ssh/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/ssh/test_openssh.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/ssh/test_opensshd.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/ssh/test_putty.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/vpn/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/vpn/test_openvpn.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/vpn/test_wireguard.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webhosting/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webhosting/test_cpanel.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webserver/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webserver/test_apache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webserver/test_caddy.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webserver/test_citrix.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webserver/test_iis.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webserver/test_nginx.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/apps/webserver/test_webserver.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/child/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/child/test_hyperv.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/child/test_virtuozzo.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/child/test_wsl.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/ntfs/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/ntfs/test_mft.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/ntfs/test_usnjrnl.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/test_acquire_handles.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/test_acquire_hash.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/test_icat.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/test_resolver.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/test_walkfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/test_yara.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/unix/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/unix/test_capability.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/filesystem/unix/test_suid.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/general/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/general/test_config.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/general/test_default.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/general/test_plugins.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/general/test_scrape.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/general/test_users.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/bsd/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/bsd/citrix/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/bsd/citrix/test__os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/bsd/osx/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/bsd/osx/test__os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/bsd/osx/test_user.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/android/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/android/test__os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/debian/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/debian/test_apt.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/debian/test_dpkg.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/redhat/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/redhat/test_yum.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/suse/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/suse/test_zypper.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_cmdline.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_environ.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_iptables.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_modules.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_netstat.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_proc.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_processes.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_services.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/linux/test_sockets.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/log/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/log/test_atop.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/log/test_audit.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/log/test_auth.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/log/test_lastlog.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/log/test_messages.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/log/test_utmp.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test__os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_generic.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_history.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_ips.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_journal.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_locale.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_packagemanager.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_shadow.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_users.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/unix/test_version.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/log/test_etl.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/log/test_evt.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/log/test_evtx.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/regf/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/regf/test_appxdebugkeys.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/regf/test_cit.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/regf/test_clsid.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/regf/test_muicache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/regf/test_trusteddocs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/regf/test_userassist.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test__os.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_adpolicy.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_amcache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_clfs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_datetime.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_defender.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_dpapi.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_env.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_generic.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_lnk.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_locale.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_mru.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_notifications.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_prefetch.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_recyclebin.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_registry.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_sam.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_shimcache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_sru.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_syscache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_tasks.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_thumbcache.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_ual.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/plugins/os/windows/test_wer.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/test_container.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/test_filesystem.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/test_plugin.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/test_registration.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/test_report.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/test_target.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/test_volume.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/tools/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/tools/test_dump.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/tools/test_fs.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/tools/test_mount.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/tools/test_query.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/tools/test_shell.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/tools/test_utils.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/volumes/__init__.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/volumes/test_bde.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tests/volumes/test_md.py +0 -0
- {dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/tox.ini +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dissect.target
|
3
|
-
Version: 3.15.
|
3
|
+
Version: 3.15.dev28
|
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
|
@@ -13,7 +13,6 @@ from typing import (
|
|
13
13
|
BinaryIO,
|
14
14
|
Callable,
|
15
15
|
Iterator,
|
16
|
-
List,
|
17
16
|
Optional,
|
18
17
|
Type,
|
19
18
|
Union,
|
@@ -217,7 +216,7 @@ class Filesystem:
|
|
217
216
|
"""
|
218
217
|
return self.get(path).scandir()
|
219
218
|
|
220
|
-
def listdir(self, path: str) ->
|
219
|
+
def listdir(self, path: str) -> list[str]:
|
221
220
|
"""List the contents of a directory as strings.
|
222
221
|
|
223
222
|
Args:
|
@@ -228,7 +227,7 @@ class Filesystem:
|
|
228
227
|
"""
|
229
228
|
return list(self.iterdir(path))
|
230
229
|
|
231
|
-
def listdir_ext(self, path: str) ->
|
230
|
+
def listdir_ext(self, path: str) -> list[FilesystemEntry]:
|
232
231
|
"""List the contents of a directory as FilesystemEntry's.
|
233
232
|
|
234
233
|
Args:
|
@@ -487,7 +486,7 @@ class Filesystem:
|
|
487
486
|
"""
|
488
487
|
return self.get(path).sha256()
|
489
488
|
|
490
|
-
def hash(self, path: str, algos: Optional[Union[
|
489
|
+
def hash(self, path: str, algos: Optional[Union[list[str], list[Callable]]] = None) -> tuple[str]:
|
491
490
|
"""Calculate the digest of the contents of ``path``, using the ``algos`` algorithms.
|
492
491
|
|
493
492
|
Args:
|
@@ -574,7 +573,7 @@ class FilesystemEntry:
|
|
574
573
|
"""
|
575
574
|
raise NotImplementedError()
|
576
575
|
|
577
|
-
def listdir(self) ->
|
576
|
+
def listdir(self) -> list[str]:
|
578
577
|
"""List the contents of a directory as strings.
|
579
578
|
|
580
579
|
Returns:
|
@@ -582,7 +581,7 @@ class FilesystemEntry:
|
|
582
581
|
"""
|
583
582
|
return list(self.iterdir())
|
584
583
|
|
585
|
-
def listdir_ext(self) ->
|
584
|
+
def listdir_ext(self) -> list[FilesystemEntry]:
|
586
585
|
"""List the contents of a directory as FilesystemEntry's.
|
587
586
|
|
588
587
|
Returns:
|
@@ -823,7 +822,7 @@ class FilesystemEntry:
|
|
823
822
|
"""
|
824
823
|
return hashutil.sha256(self.open())
|
825
824
|
|
826
|
-
def hash(self, algos: Optional[Union[
|
825
|
+
def hash(self, algos: Optional[Union[list[str], list[Callable]]] = None) -> tuple[str]:
|
827
826
|
"""Calculate the digest of this entry, using the ``algos`` algorithms.
|
828
827
|
|
829
828
|
Args:
|
@@ -225,7 +225,10 @@ class Target:
|
|
225
225
|
|
226
226
|
loader_cls = loader.find_loader(path, parsed_path=parsed_path)
|
227
227
|
if loader_cls:
|
228
|
-
|
228
|
+
try:
|
229
|
+
loader_instance = loader_cls(path, parsed_path=parsed_path)
|
230
|
+
except Exception as e:
|
231
|
+
raise TargetError(f"Failed to initiate {loader_cls.__name__} for target {path}: {e}", cause=e)
|
229
232
|
return cls._load(path, loader_instance)
|
230
233
|
return cls.open_raw(path)
|
231
234
|
|
@@ -281,7 +284,8 @@ class Target:
|
|
281
284
|
try:
|
282
285
|
ldr = loader_cls(sub_entry, parsed_path=parsed_path)
|
283
286
|
except Exception as e:
|
284
|
-
getlogger(sub_entry).error("Failed to initiate loader",
|
287
|
+
getlogger(sub_entry).error("Failed to initiate loader: %s", e)
|
288
|
+
getlogger(sub_entry).debug("", exc_info=e)
|
285
289
|
continue
|
286
290
|
|
287
291
|
try:
|
@@ -9,6 +9,7 @@ import sys
|
|
9
9
|
from dissect.util.stream import RangeStream
|
10
10
|
|
11
11
|
from dissect.target import Target
|
12
|
+
from dissect.target.exceptions import TargetError
|
12
13
|
from dissect.target.tools.utils import (
|
13
14
|
catch_sigpipe,
|
14
15
|
configure_generic_arguments,
|
@@ -39,7 +40,12 @@ def main():
|
|
39
40
|
|
40
41
|
process_generic_arguments(args)
|
41
42
|
|
42
|
-
|
43
|
+
try:
|
44
|
+
t = Target.open(args.target)
|
45
|
+
except TargetError as e:
|
46
|
+
log.error(e)
|
47
|
+
log.debug("", exc_info=e)
|
48
|
+
parser.exit(1)
|
43
49
|
|
44
50
|
if len(t.disks) > 1:
|
45
51
|
parser.exit("Target has more than one disk")
|
@@ -10,6 +10,7 @@ import shutil
|
|
10
10
|
import sys
|
11
11
|
|
12
12
|
from dissect.target import Target
|
13
|
+
from dissect.target.exceptions import TargetError
|
13
14
|
from dissect.target.helpers.fsutil import TargetPath
|
14
15
|
from dissect.target.tools.utils import (
|
15
16
|
catch_sigpipe,
|
@@ -113,7 +114,13 @@ def main():
|
|
113
114
|
|
114
115
|
process_generic_arguments(args)
|
115
116
|
|
116
|
-
|
117
|
+
try:
|
118
|
+
target = Target.open(args.target)
|
119
|
+
except TargetError as e:
|
120
|
+
log.error(e)
|
121
|
+
log.debug("", exc_info=e)
|
122
|
+
parser.exit(1)
|
123
|
+
|
117
124
|
path = target.fs.path(args.path)
|
118
125
|
|
119
126
|
if not path.exists():
|
@@ -8,6 +8,7 @@ from pathlib import Path
|
|
8
8
|
from typing import Union
|
9
9
|
|
10
10
|
from dissect.target import Target
|
11
|
+
from dissect.target.exceptions import TargetError
|
11
12
|
from dissect.target.helpers.record import TargetRecordDescriptor
|
12
13
|
from dissect.target.tools.query import record_output
|
13
14
|
from dissect.target.tools.utils import (
|
@@ -72,22 +73,27 @@ def main():
|
|
72
73
|
targets = targets[:-1]
|
73
74
|
args.targets = targets
|
74
75
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
76
|
+
try:
|
77
|
+
for i, target in enumerate(Target.open_all(args.targets)):
|
78
|
+
try:
|
79
|
+
if args.jsonlines:
|
80
|
+
print(json.dumps(get_target_info(target), default=str))
|
81
|
+
elif args.json:
|
82
|
+
print(json.dumps(get_target_info(target), indent=4, default=str))
|
83
|
+
elif args.record:
|
84
|
+
rs = record_output(args.strings)
|
85
|
+
rs.write(InfoRecord(**get_target_info(target), _target=target))
|
86
|
+
else:
|
87
|
+
if i > 0:
|
88
|
+
print("-" * 70)
|
89
|
+
print_target_info(target)
|
90
|
+
except Exception as e:
|
91
|
+
target.log.error("Exception in retrieving information for target: `%s`. Use `-vv` for details.", target)
|
92
|
+
target.log.debug("", exc_info=e)
|
93
|
+
except TargetError as e:
|
94
|
+
log.error(e)
|
95
|
+
log.debug("", exc_info=e)
|
96
|
+
parser.exit(1)
|
91
97
|
|
92
98
|
|
93
99
|
def get_target_info(target: Target) -> dict[str, Union[str, list[str]]]:
|
@@ -3,6 +3,7 @@ import logging
|
|
3
3
|
from typing import Union
|
4
4
|
|
5
5
|
from dissect.target import Target, filesystem
|
6
|
+
from dissect.target.exceptions import TargetError
|
6
7
|
from dissect.target.helpers.utils import parse_options_string
|
7
8
|
from dissect.target.tools.utils import (
|
8
9
|
catch_sigpipe,
|
@@ -44,7 +45,13 @@ def main():
|
|
44
45
|
if not HAS_FUSE:
|
45
46
|
parser.exit("fusepy is not installed: pip install fusepy")
|
46
47
|
|
47
|
-
|
48
|
+
try:
|
49
|
+
t = Target.open(args.target)
|
50
|
+
except TargetError as e:
|
51
|
+
log.error(e)
|
52
|
+
log.debug("", exc_info=e)
|
53
|
+
parser.exit(1)
|
54
|
+
|
48
55
|
vfs = filesystem.VirtualFilesystem()
|
49
56
|
vfs.mount("fs", t.fs)
|
50
57
|
|
@@ -14,6 +14,7 @@ from dissect.target import Target
|
|
14
14
|
from dissect.target.exceptions import (
|
15
15
|
FatalError,
|
16
16
|
PluginNotFoundError,
|
17
|
+
TargetError,
|
17
18
|
UnsupportedPluginError,
|
18
19
|
)
|
19
20
|
from dissect.target.helpers import cache, record_modifier
|
@@ -254,148 +255,152 @@ def main():
|
|
254
255
|
execution_report.set_cli_args(args)
|
255
256
|
execution_report.set_event_callbacks(Target)
|
256
257
|
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
if args.dry_run:
|
265
|
-
print(f"Dry run on: {target}")
|
266
|
-
|
267
|
-
record_entries = []
|
268
|
-
basic_entries = []
|
269
|
-
yield_entries = []
|
270
|
-
|
271
|
-
# Keep a set of plugins that were already executed on the target.
|
272
|
-
executed_plugins = set()
|
273
|
-
|
274
|
-
first_seen_output_type = default_output_type
|
275
|
-
cli_params_unparsed = rest
|
276
|
-
|
277
|
-
func_defs, _ = find_plugin_functions(target, args.function, compatibility=False)
|
278
|
-
excluded_funcs, _ = find_plugin_functions(target, args.excluded_functions, compatibility=False)
|
279
|
-
excluded_func_paths = {excluded_func.path for excluded_func in excluded_funcs}
|
280
|
-
|
281
|
-
for func_def in func_defs:
|
282
|
-
if func_def.path in excluded_func_paths:
|
283
|
-
continue
|
284
|
-
|
285
|
-
# Avoid executing same plugin for multiple OSes (like hostname)
|
286
|
-
if func_def.name in executed_plugins:
|
287
|
-
continue
|
288
|
-
executed_plugins.add(func_def.name)
|
289
|
-
|
290
|
-
# If the default type is record (meaning we skip everything else)
|
291
|
-
# and actual output type is not record, continue.
|
292
|
-
# We perform this check here because plugins that require output files/dirs
|
293
|
-
# will exit if we attempt to exec them without (because they are implied by the wildcard).
|
294
|
-
# Also this saves cycles of course.
|
295
|
-
if default_output_type == "record" and func_def.output_type != "record":
|
296
|
-
continue
|
258
|
+
try:
|
259
|
+
for target in Target.open_all(targets, args.children):
|
260
|
+
if args.child:
|
261
|
+
try:
|
262
|
+
target = target.open_child(args.child)
|
263
|
+
except Exception:
|
264
|
+
target.log.exception("Exception while opening child '%s'", args.child)
|
297
265
|
|
298
266
|
if args.dry_run:
|
299
|
-
print(f"
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
267
|
+
print(f"Dry run on: {target}")
|
268
|
+
|
269
|
+
record_entries = []
|
270
|
+
basic_entries = []
|
271
|
+
yield_entries = []
|
272
|
+
|
273
|
+
# Keep a set of plugins that were already executed on the target.
|
274
|
+
executed_plugins = set()
|
275
|
+
|
276
|
+
first_seen_output_type = default_output_type
|
277
|
+
cli_params_unparsed = rest
|
278
|
+
|
279
|
+
func_defs, _ = find_plugin_functions(target, args.function, compatibility=False)
|
280
|
+
excluded_funcs, _ = find_plugin_functions(target, args.excluded_functions, compatibility=False)
|
281
|
+
excluded_func_paths = {excluded_func.path for excluded_func in excluded_funcs}
|
282
|
+
|
283
|
+
for func_def in func_defs:
|
284
|
+
if func_def.path in excluded_func_paths:
|
285
|
+
continue
|
286
|
+
|
287
|
+
# Avoid executing same plugin for multiple OSes (like hostname)
|
288
|
+
if func_def.name in executed_plugins:
|
289
|
+
continue
|
290
|
+
executed_plugins.add(func_def.name)
|
291
|
+
|
292
|
+
# If the default type is record (meaning we skip everything else)
|
293
|
+
# and actual output type is not record, continue.
|
294
|
+
# We perform this check here because plugins that require output files/dirs
|
295
|
+
# will exit if we attempt to exec them without (because they are implied by the wildcard).
|
296
|
+
# Also this saves cycles of course.
|
297
|
+
if default_output_type == "record" and func_def.output_type != "record":
|
298
|
+
continue
|
299
|
+
|
300
|
+
if args.dry_run:
|
301
|
+
print(f" execute: {func_def.name} ({func_def.path})")
|
302
|
+
continue
|
303
|
+
|
304
|
+
try:
|
305
|
+
output_type, result, cli_params_unparsed = execute_function_on_target(
|
306
|
+
target, func_def, cli_params_unparsed
|
307
|
+
)
|
308
|
+
except UnsupportedPluginError as e:
|
309
|
+
target.log.error(
|
310
|
+
"Unsupported plugin for %s: %s",
|
311
|
+
func_def.name,
|
312
|
+
e.root_cause_str(),
|
313
|
+
)
|
314
|
+
|
315
|
+
target.log.debug("%s", func_def, exc_info=e)
|
316
|
+
continue
|
317
|
+
except PluginNotFoundError:
|
318
|
+
target.log.error("Cannot find plugin `%s`", func_def)
|
319
|
+
continue
|
320
|
+
except FatalError as fatal:
|
321
|
+
fatal.emit_last_message(target.log.error)
|
322
|
+
parser.exit(1)
|
323
|
+
except Exception:
|
324
|
+
target.log.error("Exception while executing function `%s`", func_def, exc_info=True)
|
325
|
+
continue
|
326
|
+
|
327
|
+
if first_seen_output_type and output_type != first_seen_output_type:
|
328
|
+
target.log.error(
|
329
|
+
(
|
330
|
+
"Can't mix functions that generate different outputs: output type `%s` from `%s` "
|
331
|
+
"does not match first seen output `%s`."
|
332
|
+
),
|
333
|
+
output_type,
|
334
|
+
func_def,
|
335
|
+
first_seen_output_type,
|
336
|
+
)
|
337
|
+
parser.exit()
|
338
|
+
|
339
|
+
if not first_seen_output_type:
|
340
|
+
first_seen_output_type = output_type
|
341
|
+
|
342
|
+
if output_type == "record":
|
343
|
+
record_entries.append(result)
|
344
|
+
elif output_type == "yield":
|
345
|
+
yield_entries.append(result)
|
346
|
+
elif output_type == "none":
|
347
|
+
target.log.info("No result for function `%s` (output type is set to 'none')", func_def)
|
348
|
+
continue
|
349
|
+
else:
|
350
|
+
basic_entries.append(result)
|
357
351
|
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
352
|
+
# Write basic functions
|
353
|
+
if len(basic_entries) > 0:
|
354
|
+
basic_entries_delim = args.delimiter.join(map(str, basic_entries))
|
355
|
+
if not args.cmdb:
|
356
|
+
print(f"{target} {basic_entries_delim}")
|
357
|
+
else:
|
358
|
+
print(f"{target.path}{args.delimiter}{basic_entries_delim}")
|
362
359
|
|
363
|
-
|
364
|
-
|
365
|
-
|
360
|
+
# Write yield functions
|
361
|
+
for entry in yield_entries:
|
362
|
+
for e in entry:
|
363
|
+
print(e)
|
366
364
|
|
367
|
-
|
365
|
+
# Write records
|
366
|
+
count = 0
|
367
|
+
break_out = False
|
368
368
|
|
369
|
-
|
370
|
-
modifier_type = record_modifier.Modifier.RESOLVE
|
369
|
+
modifier_type = None
|
371
370
|
|
372
|
-
|
373
|
-
|
371
|
+
if args.resolve:
|
372
|
+
modifier_type = record_modifier.Modifier.RESOLVE
|
374
373
|
|
375
|
-
|
374
|
+
if args.hash:
|
375
|
+
modifier_type = record_modifier.Modifier.HASH
|
376
376
|
|
377
|
-
|
378
|
-
continue
|
377
|
+
modifier_func = record_modifier.get_modifier_function(modifier_type)
|
379
378
|
|
380
|
-
|
381
|
-
|
382
|
-
try:
|
383
|
-
for record_entries in entry:
|
384
|
-
rs.write(modifier_func(target, record_entries))
|
385
|
-
count += 1
|
386
|
-
if args.limit is not None and count >= args.limit:
|
387
|
-
break_out = True
|
388
|
-
break
|
389
|
-
except Exception as e:
|
390
|
-
# Ignore errors if multiple functions
|
391
|
-
if len(funcs) > 1:
|
392
|
-
target.log.error(f"Exception occurred while processing output of {func}", exc_info=e)
|
393
|
-
pass
|
394
|
-
else:
|
395
|
-
raise e
|
379
|
+
if not record_entries:
|
380
|
+
continue
|
396
381
|
|
397
|
-
|
398
|
-
|
382
|
+
rs = record_output(args.strings, args.json)
|
383
|
+
for entry in record_entries:
|
384
|
+
try:
|
385
|
+
for record_entries in entry:
|
386
|
+
rs.write(modifier_func(target, record_entries))
|
387
|
+
count += 1
|
388
|
+
if args.limit is not None and count >= args.limit:
|
389
|
+
break_out = True
|
390
|
+
break
|
391
|
+
except Exception as e:
|
392
|
+
# Ignore errors if multiple functions
|
393
|
+
if len(funcs) > 1:
|
394
|
+
target.log.error(f"Exception occurred while processing output of {func}", exc_info=e)
|
395
|
+
else:
|
396
|
+
raise e
|
397
|
+
|
398
|
+
if break_out:
|
399
|
+
break
|
400
|
+
except TargetError as e:
|
401
|
+
log.error(e)
|
402
|
+
log.debug("", exc_info=e)
|
403
|
+
parser.exit(1)
|
399
404
|
|
400
405
|
timestamp = datetime.utcnow()
|
401
406
|
|
@@ -6,7 +6,7 @@ import argparse
|
|
6
6
|
import logging
|
7
7
|
|
8
8
|
from dissect.target import Target
|
9
|
-
from dissect.target.exceptions import RegistryError
|
9
|
+
from dissect.target.exceptions import RegistryError, TargetError
|
10
10
|
from dissect.target.tools.utils import (
|
11
11
|
catch_sigpipe,
|
12
12
|
configure_generic_arguments,
|
@@ -36,23 +36,28 @@ def main():
|
|
36
36
|
|
37
37
|
process_generic_arguments(args)
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
try:
|
40
|
+
for target in Target.open_all(args.targets):
|
41
|
+
try:
|
42
|
+
if args.value:
|
43
|
+
for key in target.registry.keys(args.key):
|
44
|
+
try:
|
45
|
+
print(key.value(args.value))
|
46
|
+
except RegistryError:
|
47
|
+
continue
|
48
|
+
else:
|
43
49
|
try:
|
44
|
-
print(
|
50
|
+
print(target)
|
51
|
+
for key in target.registry.keys(args.key):
|
52
|
+
recursor(key, args.depth, 0)
|
45
53
|
except RegistryError:
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
log.exception("Failed to find registry value")
|
54
|
-
except Exception:
|
55
|
-
log.exception("Failed to iterate key")
|
54
|
+
log.exception("Failed to find registry value")
|
55
|
+
except Exception:
|
56
|
+
log.exception("Failed to iterate key")
|
57
|
+
except TargetError as e:
|
58
|
+
log.error(e)
|
59
|
+
log.debug("", exc_info=e)
|
60
|
+
parser.exit(1)
|
56
61
|
|
57
62
|
|
58
63
|
def recursor(key, depth, indent):
|
@@ -29,6 +29,7 @@ from dissect.target.exceptions import (
|
|
29
29
|
RegistryError,
|
30
30
|
RegistryKeyNotFoundError,
|
31
31
|
RegistryValueNotFoundError,
|
32
|
+
TargetError,
|
32
33
|
)
|
33
34
|
from dissect.target.filesystem import FilesystemEntry, RootFilesystemEntry
|
34
35
|
from dissect.target.helpers import cyber, fsutil, regutil
|
@@ -1233,7 +1234,11 @@ def main() -> None:
|
|
1233
1234
|
if args.quiet:
|
1234
1235
|
logging.getLogger("dissect").setLevel(level=logging.ERROR)
|
1235
1236
|
|
1236
|
-
|
1237
|
+
try:
|
1238
|
+
open_shell(args.targets, args.python, args.registry)
|
1239
|
+
except TargetError as e:
|
1240
|
+
log.error(e)
|
1241
|
+
log.debug("", exc_info=e)
|
1237
1242
|
|
1238
1243
|
|
1239
1244
|
if __name__ == "__main__":
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dissect.target
|
3
|
-
Version: 3.15.
|
3
|
+
Version: 3.15.dev28
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/containers/__init__.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
|
{dissect.target-3.15.dev27 → dissect.target-3.15.dev28}/dissect/target/filesystems/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|