Won best cybersecurity (1Password Sponsor track) hack at UofTHacks13
See the codeTransform executables into readable C code using Ghidra and Gemini AI.
Built for UofTHacks 13.
.exe or ELF binary onto the page.c filegit clone https://github.com/yourusername/uofthacks13.git
cd uofthacks13
# Create .env file in server directory
echo "GEMINI_API_KEY=your-gemini-api-key-here" > server/.env
echo "GHIDRA_INSTALL_DIR=/path/to/ghidra" >> server/.env
cd server
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the server
uvicorn main:app --reload --host 0.0.0.0 --port 8000
cd client
# Install dependencies
npm install
# Run development server
npm run dev
Visit http://localhost:3000 in your browser.
For production deployment with sandboxed binary analysis:
# Set your Gemini API key
export GEMINI_API_KEY=your-gemini-api-key-here
# Build and run with Docker Compose
docker-compose up --build
uofthacks13/
├── client/ # Next.js frontend
│ ├── app/
│ │ ├── page.tsx # Main page
│ │ ├── layout.tsx # Root layout
│ │ └── globals.css # Cyberpunk theme styles
│ ├── components/
│ │ ├── FileDropzone.tsx # Drag-drop upload
│ │ ├── ProgressStepper.tsx
│ │ ├── ConsoleStream.tsx
│ │ └── CodeViewer.tsx # Monaco split view
│ └── lib/
│ └── api.ts # API client
├── server/ # FastAPI backend
│ ├── main.py # FastAPI app
│ ├── routers/
│ │ └── decompile.py # Upload & job endpoints
│ ├── services/
│ │ ├── ghidra_service.py # PyGhidra integration
│ │ └── ai_service.py # GPT-4o refactoring
│ └── models/
│ └── schemas.py # Pydantic models
└── docker-compose.yml # Production deployment
| Endpoint | Method | Description |
|---|---|---|
/api/upload | POST | Upload a binary file for decompilation |
/api/job/{id} | GET | Get job status and logs |
/api/job/{id}/result | GET | Get decompilation results |
For the best hackathon demo:
Built at UofTHacks 13 by Leo Zhang, Sean Zhao, and Lukas Li
Won best cybersecurity (1Password Sponsor track) hack at UofTHacks13
See the codeTransform executables into readable C code using Ghidra and Gemini AI.
Built for UofTHacks 13.
.exe or ELF binary onto the page.c filegit clone https://github.com/yourusername/uofthacks13.git
cd uofthacks13
# Create .env file in server directory
echo "GEMINI_API_KEY=your-gemini-api-key-here" > server/.env
echo "GHIDRA_INSTALL_DIR=/path/to/ghidra" >> server/.env
cd server
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the server
uvicorn main:app --reload --host 0.0.0.0 --port 8000
cd client
# Install dependencies
npm install
# Run development server
npm run dev
Visit http://localhost:3000 in your browser.
For production deployment with sandboxed binary analysis:
# Set your Gemini API key
export GEMINI_API_KEY=your-gemini-api-key-here
# Build and run with Docker Compose
docker-compose up --build
uofthacks13/
├── client/ # Next.js frontend
│ ├── app/
│ │ ├── page.tsx # Main page
│ │ ├── layout.tsx # Root layout
│ │ └── globals.css # Cyberpunk theme styles
│ ├── components/
│ │ ├── FileDropzone.tsx # Drag-drop upload
│ │ ├── ProgressStepper.tsx
│ │ ├── ConsoleStream.tsx
│ │ └── CodeViewer.tsx # Monaco split view
│ └── lib/
│ └── api.ts # API client
├── server/ # FastAPI backend
│ ├── main.py # FastAPI app
│ ├── routers/
│ │ └── decompile.py # Upload & job endpoints
│ ├── services/
│ │ ├── ghidra_service.py # PyGhidra integration
│ │ └── ai_service.py # GPT-4o refactoring
│ └── models/
│ └── schemas.py # Pydantic models
└── docker-compose.yml # Production deployment
| Endpoint | Method | Description |
|---|---|---|
/api/upload | POST | Upload a binary file for decompilation |
/api/job/{id} | GET | Get job status and logs |
/api/job/{id}/result | GET | Get decompilation results |
For the best hackathon demo:
Built at UofTHacks 13 by Leo Zhang, Sean Zhao, and Lukas Li