Skip to content

Command Line Reference

bisu edited this page Sep 21, 2026 · 1 revision

Command-Line Reference

binary-inspector <FILE> [OPTIONS]

FILE must be a regular file. Symlinks, directories, FIFOs, sockets, and devices are rejected before any read (exit code 2). Maximum input size is 512 MiB.

Category flags

Flag Long form Category
-S --sections Section table (name, type, flags, address, offset, size, entropy)
-l --segments Program headers (type, RWE flags, virtual address, file/memory sizes)
-d --dependencies Interpreter, DT_NEEDED, RPATH, RUNPATH, binding mode, dynamic tags
-s --symbols .symtab and .dynsym symbols (long lists are summarized with a tail count)
-m --mitigations checksec report: RELRO, NX, PIE, canary, fortify, RWX segments, insecure RPATH
-n --notes ELF notes: GNU Build ID, OS ABI minimums, GNU property flags (IBT/SHSTK/BTI/PAC)
-r --relocations SHT_REL / SHT_RELA entries with resolved symbol names and section names
-a --all Explicitly select every category (also the default when no flag is given)

Flags combine; -Sld selects sections, segments, and dependencies.

Output flags

Flag Effect
--json Emit a versioned JSON document (schema 1) to stdout instead of human text. See JSON-Schema.
--no-color Accepted for future color support; human output is currently uncolored and honors this flag by contract.

Info flags

Flag Effect
--help, -h Usage and exit codes
--version binary-inspector <version>

Behavior notes

  • Human output is deterministic: rows preserve file order, and all binary-derived strings are sanitized to printable ASCII with every other byte escaped as \xNN (terminal-safe).
  • JSON output goes to stdout only; nothing else is printed there. It always contains the full inspection result regardless of category flags.
  • Pipelines: with --json, pipe through a file or jq rather than head to avoid broken-pipe write errors.

Examples

binary-inspector /bin/ls              # all categories
binary-inspector /bin/ls -m           # security report only
binary-inspector /bin/ls -s -n        # symbols + notes
binary-inspector ./app -S -l -d       # structure + dynamic linking
binary-inspector /bin/ls --json > ls.json
binary-inspector /bin/ls --json | jq '.mitigations'

Exit codes are documented in Exit-Codes-and-Errors.

Clone this wiki locally