Repository navigation
Releases: bisug/BinaryInspector
Releases · bisug/BinaryInspector
Release list
v0.3.1
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
Highlights
- Security fix — stripped binaries now parse correctly: when section headers are absent, the dynamic table is decoded from the
PT_DYNAMICsegment viaDT_STRTAB/DT_STRSZwithPT_LOADvaddr→offset mapping.DT_NEEDED, interpreter, RPATH/RUNPATH, andDF_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:
--jsonversioned output: stable JSON to stdout with aschema_version: 1envelope (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
What's New in v0.2.0
Multi-Platform Desktop GUI
- Windows (x86_64): Standalone native executable (
binary-inspector-gui.exein 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::ELOOPfromO_NOFOLLOWdirectly toAppError::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_NOWtag 24,DF_BIND_NOW, andDF_1_NOW). - Stack Canary Protection: Detection for stack protection symbols including
__stack_chk_fail,__stack_chk_guard, and__stack_chk_fail_localon 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
_chklibrary 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_rowsvirtual 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