Surveyor
Supported file types
A survey fingerprints every file in its input, whatever the type. The formats below are the ones it also opens, so it can survey what is inside them, or recognizes as packages. Containers nest: a jar inside a tarball inside a disk image is opened all the way down.
Archives and containers
| Category | Formats | Examples |
|---|---|---|
| ZIP-family archives | ZIP, JAR, WAR, EAR and other Java archives, Android APK | app.zip, myapp.jar, webapp.war, app.ear, app.apk |
| Container images | docker save tarballs, OCI image layouts | myimage.tar (with manifest.json), a folder with oci-layout, index.json and blobs/ |
| Tar and other archives | tar, cpio, ar | backup.tar, initrd.cpio, libfoo.a |
| Compressed files | gzip, bzip2, xz, lzma, zstd | data.tar.gz, logs.tar.bz2, archive.xz, payload.zst |
| OS packages | RPM, Debian, Arch Linux (pacman), Alpine, FreeBSD and OpenBSD packages | nginx-1.24.0-1.el9.x86_64.rpm, curl_8.5.0_amd64.deb, musl-1.2.5-r0.apk |
| ISO 9660 images | ISO disc images | ubuntu-24.04-live-server-amd64.iso |
| Disk images | qcow2, VMDK, VHD, VHDX, VDI, raw, AMI, Google Cloud images | disk.qcow2, vm.vmdk, machine.vhdx, os.vdi, disk.raw, gcp-image.tar.gz |
| File systems in disk images | ext2, ext3, ext4, FAT32, exFAT, NTFS, XFS, Btrfs, SquashFS, HFS+, APFS, behind MBR or GPT partition tables and LVM | an ext4 partition inside a .qcow2, a SquashFS root file system in a firmware image |
| Firmware and binary containers | Linux kernel images, U-Boot FIT images, device tree blobs, ELF, Raspberry Pi firmware, Android boot images, WIM, DMG | zImage, fitImage, bcm2711-rpi-4-b.dtb, boot.img, install.wim, app.dmg |
Compressed files are decompressed first, and the result is then checked against the other formats. A disk image is read through every file system on it, including those in LVM volumes.
Packages
Besides opening files, a survey identifies the packages they belong to:
| Ecosystem | What it reads | Examples |
|---|---|---|
| Java | Jars and other Java archives, with their Maven metadata | commons-codec-1.17.0.jar |
| .NET | Managed assemblies | System.Data.dll, MyApp.exe |
| Installed OS packages | The package databases inside container images and file systems | Debian, RPM and Alpine packages in an image |
| Lockfiles | Declared dependencies, such as npm, cargo and Python requirements | package-lock.json, Cargo.lock, requirements.txt |
| Go | Modules built into Go binaries | a compiled Go service |
| Language package archives | npm, PyPI, Go modules, crates.io, RubyGems, Packagist, Conda, CocoaPods, CPAN, Hex and LuaRocks packages | lodash-4.17.21.tgz, requests-2.32.3-py3-none-any.whl, serde-1.0.200.crate, rails-7.1.3.gem |