Skip to content

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
· 45 commits to main since this release

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