https://github.com/dvurechensky/binnexus
BinNexus β visualize and explore relationships inside binaries.
https://github.com/dvurechensky/binnexus
binary-analysis binary-visualization call-graph cytoscape dependencies disassembler dll dvurechensky dvurechenskypro exe exports graph pe-format reverse-engineering software-analysis visualization windows
Last synced: 26 days ago
JSON representation
BinNexus β visualize and explore relationships inside binaries.
- Host: GitHub
- URL: https://github.com/dvurechensky/binnexus
- Owner: Dvurechensky
- License: mit
- Created: 2026-04-12T16:25:12.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-04-22T15:36:15.000Z (about 1 month ago)
- Last Synced: 2026-04-22T17:34:35.775Z (about 1 month ago)
- Topics: binary-analysis, binary-visualization, call-graph, cytoscape, dependencies, disassembler, dll, dvurechensky, dvurechenskypro, exe, exports, graph, pe-format, reverse-engineering, software-analysis, visualization, windows
- Language: Python
- Homepage: https://dvurechensky.github.io/Freelancer.Reverse.Runtime/
- Size: 15.6 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
---

---
Language:
π·πΊ Russian
|
πΊπΈ English (current)
---
BinNexus is a tool for analyzing Windows binaries (DLL / EXE) that generates an **interactive web portal** with a dependency graph and export exploration.
It allows you to move from a set of files to understanding the **structure of the system**.
Live demo:
https://dvurechensky.github.io/Freelancer.Reverse.Runtime/
---
- [Features](#features)
- [Dependency Graph](#dependency-graph)
- [Export Explorer](#export-explorer)
- [Global Search](#global-search)
- [Noise Filtering](#noise-filtering)
- [How it works](#how-it-works)
- [Architecture](#architecture)
- [Quick Start](#quick-start)
- [Requirements](#requirements)
- [Limitations](#limitations)
- [Runtime Analysis (experimental)](#runtime-analysis-experimental)
- [Purpose](#purpose)
- [Notes](#notes)
---
## Features
### Dependency Graph
- visualization of relationships between DLLs and EXEs
- identification of core modules
- fast architecture analysis
### Export Explorer
- export list with addresses
- support for undecorated symbols
- filtering:
- all
- reverse
### Global Search
- search by:
- DLL
- symbols
- undecorated names
- addresses
### Noise Filtering
- excludes:
- CRT (msvcrt)
- WinAPI
- system DLLs
- forward exports
---
## How it works
1. Scan the directory containing the DLL/EXE
2. Extract:
- Imports (via dumpbin)
- Exports (via pefile)
3. Generate a static dependency graph
4. (Optional) Perform runtime analysis
5. Generate an HTML portal
---
## Architecture
Starting with the current version, BinNexus is no longer a monolithic script.
The tool is built as a modular system consisting of individual components:
- `analysis.static` β static analysis (imports / exports)
- `analysis.runtime` β dynamic dependency analysis
- `graph` β graph construction and aggregation
- `portal` β HTML interface generation
- `cli` β argument processing and pipeline management
This allows:
- easy functionality expansion
- adding new analyzers
- control over each processing stage
> [!NOTE]
> The architecture is designed with future expansion in mind (plugins, new analysis engines).
---
## Quick Start
See π [Build & Run (Windows)](docs/BUILD.md)
---
## Requirements
- Windows
- Visual Studio / Build Tools
- Python 3.10+
---
## Limitations
- Static analysis depends on dumpbin (x86 Native Tools)
- Runtime analysis is experimental
- Limited architecture support (main focus is x86)
- No call graph
- No function logic analysis
---
### Runtime Analysis (experimental)
BinNexus supports runtime dependency analysis.
This allows you to identify:
- dynamically loaded DLLs
- real dependencies missing from static dependencies
- application behavior at startup
Features:
- binary launch via an auxiliary runtime loader
- collecting a list of loaded modules
- integrating results into a common graph
> [!IMPORTANT]
> Runtime analysis complements static analysis and does not replace it.
> [!WARNING]
> This mode is currently x86-specific and requires testing on other architectures.
[Example](docs/BUILD.md)
---
## Purpose
BinNexus solves the problem of:
> quickly understanding the structure of a binary application before disassembly
And complements it by:
> identifying the actual application dependencies both at the file level and at runtime
---
## Notes
> [!TIP]
> Use x86 Native Tools when working with legacy applications β this ensures correct dumpbin results.
> [!WARNING]
> Running outside Developer Command Prompt will result in missing dumpbin and broken import analysis.
> [!NOTE]
> System DLLs are intentionally excluded to reduce noise and improve graph readability.
---
β¨Dvurechenskyβ¨