Vuln visualizer is a tool to interactively visualize the vulnerabilities in a given c source.
- *nix enviornment (Tested on Windows WSL 2)
- Python 3.6
- Flask
- GCC
see requirements.txt
for more information
Start the project using python:
python app.py
Then navigate to the given url in your browser.
To run the interactive compiler, use the following command:
python vuln_compile/interpreter.py
Using D3.js, the frontend displays the stack and heap in a graph to help visualize the vulnerabilities.
Flask is used to serve the frontend and provide an API for the frontend to interact with the backend.
The compiler is a python script that takes a c source file and add helper information for the program to identify the stack and heap layout. It also proxy to the gcc compiler to compile to a binary that's used to attach with ptrace.
app.py
- The main flask appvuln_compile/
- The compilervuln_compiler.py
- The compilerintepreter.py
- Interactive compiler test
template/
- The frontendindex.html
- The main paged3_test.html
- A test for d3.jscompile.html
- API for compiling
static/
- Static filesjs/
- Javascript filesmain.js
- The main javascript filed3.v3.min.js
- D3.js
css/
- CSS filesoverride.css
- The main css file
- Compiler
- Proxy to gcc
- Cross platform support
- Add stack and heap information
- Extend C syntax for easy vulnerability production / identification
- Backend
- Flask server
- API
- Disassembler
- Frontend
- Code editor
- Display assembly
- Display stack and heap