Skip to content

Releases: bisug/BinaryInspector

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 11 Oct 17:29

What's Changed

  • chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 by @dependabot[bot] in #4
  • chore(deps): bump actions/attest-build-provenance from 2.4.0 to 4.2.2 by @dependabot[bot] in #5
  • chore(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.4 by @dependabot[bot] in #6
  • chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 by @dependabot[bot] in #7
  • fix: bound note text and tolerate out-of-bounds section extents by @bisug in #8
  • chore(ci): correct stale action version comments by @bisug in #9
  • chore(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 by @dependabot[bot] in #14
  • chore(deps): bump libc from 0.2.189 to 0.2.190 by @dependabot[bot] in #13
  • chore(deps): bump github/codeql-action/init from 4.38.1 to 4.38.2 by @dependabot[bot] in #12
  • chore(deps): bump github/codeql-action/upload-sarif from 4.38.1 to 4.38.2 by @dependabot[bot] in #11
  • chore(deps): bump github/codeql-action/analyze from 4.38.1 to 4.38.2 by @dependabot[bot] in #10

Full Changelog: v0.3.0...v0.3.1

v0.3.0 — Stripped-Binary Parsing, Tri-State Mitigations, Versioned JSON Output

Choose a tag to compare

@bisug bisug released this 21 Sep 11:31

Highlights

  • Security fix — stripped binaries now parse correctly: when section headers are absent, the dynamic table is decoded from the PT_DYNAMIC segment via DT_STRTAB/DT_STRSZ with PT_LOAD vaddr→offset mapping. DT_NEEDED, interpreter, RPATH/RUNPATH, and DF_1_PIE-based PIE detection all work on fully stripped ELF files.
  • Tri-state security mitigations: checksec results now report Yes / No / Unknown instead of silently treating undetectable properties as absent — no more false negatives on mitigation status.
  • Bounded entropy: per-section entropy computation is capped, so pathological section layouts cannot burn unbounded CPU.
  • New: --json versioned output: stable JSON to stdout with a schema_version: 1 envelope (models were already typed; key order follows model declaration order).
  • Hardening of the hardening tool: rejects section-header tables pointing beyond EOF (prevents work amplification from overlapping/oversized sections), regression tests for stripped binaries and oversized tables, and the scheduled fuzzing workflow now fails CI on any crash instead of swallowing it.

Documentation

All documentation moved to the GitHub wiki — 15 pages covering installation, the CLI reference, GUI guide, security checks, JSON schema, exit codes, the safety model, architecture, building, fuzzing, and FAQ.

Assets

Asset Contents
binary-inspector-cli-linux-x86_64.tar.gz Linux x86-64 CLI (binary-inspector)
binary-inspector-gui-linux-x86_64.tar.gz Linux x86-64 GUI (binary-inspector-gui)
binary-inspector-gui-macos.tar.gz macOS (Apple Silicon) GUI
binary-inspector-gui-windows-x86_64.zip Windows x86-64 GUI (binary-inspector-gui.exe)
SHA256SUMS.txt SHA-256 checksums for the archives

Verify with sha256sum -c SHA256SUMS.txt. Install: curl -fsSL https://raw.githubusercontent.com/bisug/BinaryInspector/main/install.sh | bash.

v0.2.0: Enhanced ELF Inspection, Security Scorecard, Multi-Platform GUI & Robust Error Handling

Choose a tag to compare

@bisug bisug released this 19 Sep 19:23

What's New in v0.2.0

Multi-Platform Desktop GUI

  • Windows (x86_64): Standalone native executable (binary-inspector-gui.exe in zip package).
  • macOS: Native desktop binary (binary-inspector-gui).
  • Linux (x86_64): Native desktop binary (binary-inspector-gui) and CLI executable (binary-inspector).

Structured Error Handling & Robustness

  • Domain ParseError: Strongly typed error variants for every ELF format and structural failure (FileTooShort, InvalidMagic, UnsupportedVersion, UnsupportedClass, UnsupportedEndianness, OutOfBounds, IntegerOverflow, InvalidHeader, InvalidStringTable, LimitExceeded, Malformed).
  • Panic-Free Parsing: Eliminated all .expect(...) calls across numeric readers in favor of compile-time panic-free array unpacking.
  • Target & Filesystem Validation: Mapped Unix libc::ELOOP from O_NOFOLLOW directly to AppError::InvalidFileType; explicit distinctions for non-regular files (directories, FIFOs, special devices) and 512 MiB size limits.
  • GUI Remediation Guidance: Actionable remediation guidance cards in failed state explaining causes and user tips above technical diagnostics.

Security Hardening Scorecard (checksec)

  • RELRO Detection: Full & Partial RELRO analysis (accurately recognizing DT_BIND_NOW tag 24, DF_BIND_NOW, and DF_1_NOW).
  • Stack Canary Protection: Detection for stack protection symbols including __stack_chk_fail, __stack_chk_guard, and __stack_chk_fail_local on PIC / 32-bit binaries.
  • NX / DEP Stack: Non-executable stack verification via PT_GNU_STACK.
  • Position Independent Executable (PIE): Detection of PIE, No-PIE, and DSO binaries, including static PIE binaries via DT_DEBUG.
  • Fortify Source: Identifies imported _chk library functions with versioned symbol support.
  • RWX Segments: W^X permission violation alerts on segments with concurrent Write and Execute permissions.
  • Insecure RPATH / RUNPATH: Flags search paths containing empty entries, relative paths, or ..

Extended ELF Analysis

  • Symbols (-s, --symbols): Static (.symtab) and dynamic (.dynsym) symbols with types, bindings, visibilities, and import/export identification.
  • ELF Notes (-n, --notes): Decodes GNU Build ID, OS ABI requirements, and hardware properties (x86 IBT/SHSTK, ARM BTI/PAC).
  • Relocations (-r, --relocations): SHT_REL and SHT_RELA records with $O(1)$ symbol table resolution.

Desktop GUI Performance & UI/UX Overhaul

  • Virtualized Tables: egui::ScrollArea::show_rows virtual row culling for 60 FPS scrolling through tables with up to 65k symbols and 32k relocations.
  • Sticky Column Headers: Pinned sortable headers with resizable column widths and reset shortcuts.
  • Live Search Filtering: Search by symbol name, section, and relocation target with instant updates.
  • Smooth Background Loading: Asynchronous inspection with continuous 50ms repaint scheduling.

Checksums (SHA256)

2956be8d90dbd9a259f927fc5102ed6fb1db222e96d435a607d212ec21c9832b  binary-inspector-cli-linux-x86_64.tar.gz
05a2bc8c98ed28bfda661de5d66a566dc7ca3741b29e65ced828c3bfe31ea11e  binary-inspector-gui-linux-x86_64.tar.gz
f9e301191a511693e6bb24c4d9f1f03db0b43d86fc54a87d7d77aaa4d64a9b4d  binary-inspector-gui-macos.tar.gz
737ee0ae5be133ae79d12158f4be1d247b62f596f9c7d9dfd0dcfebe9e700415  binary-inspector-gui-windows-x86_64.zip