Assembly Annotator is a web-based tool that makes assembly code readable and understandable through line-by-line annotation, pattern detection, and advanced analysis features.
It’s designed for reverse engineers, developers, and learners who want to analyze, document, or better understand assembly code.
- Features
- Why Use Assembly Annotator
- Screenshots
- Installation
- Usage
- Code Structure
- Extending the Tool
- Testing
- Contributing
- License
- References
- Clear, human-readable explanations for hundreds of assembly instructions.
- Includes usage examples and references to official documentation.
- Supports Intel and AT&T syntaxes.
- Works with x86, ARM, and MIPS architectures.
- Automatic detection of dialect and architecture for accurate annotation.
- Detects function prologues/epilogues, stack setups, password checks, loops, and conditional jumps.
- Flags reverse engineering idioms, anti-debugging tricks, and obfuscation patterns.
- Uses regex-based matching for customizable detection.
- Export annotated code as JSON, HTML, or PDF.
- Import previous analysis files to continue work or share.
- Syntax highlighting for code input and annotated output.
- Clickable explanations with cross-references.
- User customization for verbosity, pattern sets, and themes.
- Responsive design with smooth UX.
- Plugin architecture and API hooks.
- Connect with popular disassemblers and debugging tools.
- Extend functionality with custom scripts or plugins.
- Efficient backend processing to handle large assembly files.
- Optimized rendering for responsiveness even with large outputs.
- Detects suspicious or potentially malicious code patterns.
- Aids reverse engineers in identifying malware-like behavior.
- Quickly understand cryptic assembly instructions.
- Detect common and advanced patterns automatically.
- Supports multiple architectures and dialects.
- Save, share, and document your analysis.
- Designed for both learners and professionals.
- Python 3.7 or higher
- pip package manager
git clone https://github.com/zoecyber001/assembly-annotator.git
cd assembly-annotator(Optional but recommended)
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtRun the application:
python app.pyOpen your browser and navigate to:
http://127.0.0.1:5000/
-
Paste or type your assembly code in the input area.
-
Select the assembly dialect and architecture if needed.
-
Click Analyze to generate line-by-line annotations and detect patterns.
-
Review explanations and detected patterns in the output panel.
-
Export results as JSON, HTML, or PDF.
-
Import previously saved annotated files to continue analysis.
-
app.py– Flask backend handling annotation, pattern detection, and export. -
templates/– HTML templates for the frontend UI. -
static/style.css– UI styling.script.js– Frontend logic and API calls.
-
requirements.txt– Python dependencies.
-
Add new instruction explanations by editing the
EXPLANATIONSdictionary inapp.py. -
Define or update patterns in the
PATTERNSlist with keywords or regex. -
Customize the UI by editing HTML, CSS, and JavaScript.
-
Extend the backend API for integration with other tools.
-
Backend API endpoints: test with curl, Postman, or other tools.
-
Frontend UI: test manually by interacting with the interface.
-
Automated tests: recommended using pytest (backend) and frameworks like Jest (frontend).
Contributions are welcome!
-
Fork the repository.
-
Create a feature branch.
-
Submit a pull request with a clear description of your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
