This project is part of the Hardware Security Lab at UNC, focused on developing a hardware security visualization tool to analyze symbolic execution and hyperflow graphs of Verilog RTL designs. The goal is to create an intuitive interface for visualizing execution paths and exploring security vulnerabilities in hardware systems, making complex verification tasks more accessible and efficient. This is a work in progress.
This tool is aimed to integrate with SEIF and SYLVIA, two symbolic execution frameworks, to enhance hardware security analysis by mitigating path explosion problems and improving execution efficiency.
Check out the website Here
- React.js and React Router
- Express.js - To manage API endpoints for file uploads and processing.
- FastAPI - Built on top of Seif and Sylvia to process incoming files
- PostgreSQL with neon.tech - To store execution logs and user files.
- D3.js/ graph.js / GraphCytoscape.js / Recharts.js - To visualize execution flow dynamically.
- NetworkX, Graphviz, PyViz - Python libraries for visualizing graphs
- WebAssembly (Future consideration) - To run Verilog analysis efficiently in the browser.
- Upload Verilog Files - Users can upload Verilog RTL files for processing.
- Symbolic Execution Visualization - Displays execution paths in a clear, structured format.
- Security Flow Analysis - Helps identify vulnerabilities in hardware designs.
- Integration with SEIF and SYLVIA - Enhancing symbolic execution capabilities for improved security analysis.
- Iteractive UI for hyperflow graphs and paths in symbolic execution
- Clone the repository:
git clone https://github.com/your-repo/hardware-visualization.git cd hardware-visualization - Open the Dev Container:
- Open VScode and Install Dev Containers extension
- Reopening the project in a dev container can be done with Ctrl+Shift+P(or Cmd+Shift+P on Mac) and typing "Dev Containers: Reopen in Container" and selecting that option. NOTE: You also may see a pop up in VSCode on the bottom right hand side of your screen roughly stating "Would you like to reopen this project in a dev container?" which you can click yes to to achieve the same result.
- Install dependencies:
NOTE: If you have any security vulnerabilities when running
cd frontend npm install cd ../backend npm install
npm install, runnpm audit fixto resolve these - Run the application's frontend and backend:
in a new terminal
cd ../frontend npm run devcd backend node server.js
Note: The Sylvia and Seif APIs are not available to use right now but will be deployed soon. External users cannot access the database. This will all be available once deployed on OKD.
This project is actively evolving, and feedback on UI improvements, backend optimizations, and new visualization techniques is encouraged.