BinSight is a powerful, modular binary analysis tool built for security researchers, reverse engineers, and developers. It currently supports ELF binaries, with planned support for PE and Mach-O formats. BinSight offers detailed insights into a binary’s structure, security properties, symbols, and metadata via both TUI and CLI interfaces.
- Modular Design - Add or extend analysis with plug-and-play modules
- Multi-Format Support - Analyze ELF now, PE and Mach-O coming soon
- Export Ready - Output full analysis as machine-readable JSON
- TUI Explorer - Navigate binary internals via ncurses UI (msfconsole-like)
- CLI Mode - Run headless for automation, CI, or pipelines
- Lua Plugin Support - Script modules dynamically, no recompilation
- GCC or Clang
- CMake
ncursesdevelopment headers (libncurses-devor similar)libmagicdevelopment headers (libmagicor similar)
make./binsight /path/to/binaryBinSight is built around a modular plugin system. Each plugin defines:
typedef struct {
const char *name;
const char *description;
bool (*supports_format)(BinaryFormat fmt);
char* (*run)(const BinaryFile *bin);
} Plugin;- Create your plugin source file in
src/modules/<format>/. - Implement the
Plugininterface. - Register it in the module registry (static for now).
- Rebuild the binary — your plugin will appear in the TUI/CLI interface.
BinSight/
├── src/
│ ├── core/ # Core engine (Arena Allocator, Error handler, Dispatcher...etc)
│ ├── formats/ # Format loaders (ELF, PE, etc.)
│ │ ├── elf/ # ELF parser and helpers
│ │ └── pe/ # PE parser and helpers (planned)
│ ├── modules/ # Built-in and custom analysis modules
│ │ ├── common/ # Generic modules (entropy, strings, etc.)
│ │ ├── elf/ # ELF-specific
│ │ └── pe/ # PE-specific
│ ├── scripting/ # Lua scripting backends
│ ├── main.c # Entry point
│ └── config.h # Feature flags and global settings
│
├── include/ # Shared public headers
├── scripts/ # Lua plugin scripts
├── modules.json # Optional plugin metadata registry
├── CMakeLists.txt # Build configuration (CMake)
├── Makefile # Build wrapper for convenience
├── LICENSE # MIT License
└── README.md # This file
- ELF format support
- Plugin system
- ncurses TUI (msfconsole-like)
- JSON export
- PE format support
- Mach-O format support
- Headless CLI-only mode
- Lua plugin scripting
- Plugin metadata registry (modules.json dynamic loading)
This project is licensed under the MIT License — see LICENSE for details.
Pull requests are welcome! For major changes, please open an issue first to discuss the proposed addition or fix.
Contributions are especially welcome in:
- Plugin development
- PE/Mach-O support
- Lua scripting integration
- UI and UX improvements
- Documentation