π€ AI-powered reverse engineering assistant using Google Gemini API
AutoReverse is a comprehensive IDA Pro 9.0 plugin designed to accelerate reverse engineering workflows with AI assistance. Specifically tuned for World of Warcraft 3.3.5a binary analysis, but applicable to general x86 reverse engineering tasks.

Note: Currently only coded for using free gemini tier. Model Gemini pro 2.5. eventually will add multi model support, paid tier, etc. Also currently only tested "Analyze Current Item" , will start working on other features soon TM.
- Deep Context Analysis: Gathers comprehensive function context including callers, called functions, disassembly, and pseudocode
- WoW-Specific Insights: Specialized prompts for World of Warcraft client analysis
- Interactive Chat Interface: Follow-up questions and iterative analysis
- Token Management: Smart context limits and rate limiting handling
- Function Documentation: Automatic purpose identification and parameter analysis
- Data Structure Analysis: Smart structure recognition and creation
- Cross-Reference Analysis: Complete XREFs TO/FROM analysis with context
- Calling Convention Detection: Automatic identification of calling patterns
- Variable Renaming: AI-suggested meaningful variable names
- Type Setting: Automatic function signature generation
- Structure Creation: Data structure analysis and IDA integration
- Copy-Paste Ready: Type declarations ready for IDA Pro
- Rich Chat Interface: HTML-formatted responses with syntax highlighting
- Multiline Input: Markdown support with Shift+Enter for new lines
- Progress Tracking: Real-time analysis progress and token counting
- Error Handling: Comprehensive error messages with suggestions
# Download the repository
git clone https://github.com/AzDeltaQQ/AutoReverseIDA9.0.git
# Run the Windows installer
cd AutoReverseIDA9.0
python AutoReverse/install_windows.py-
Copy files to your IDA Pro plugins directory:
C:\Program Files\IDA Professional 9.0\plugins\ βββ auto_reverse.py # This file must go in plugins folder by itself. βββ AutoReverse/ # This Folder must be in plugins folder . βββ modules/ β βββ config_manager.py β βββ context_gatherer.py β βββ gemini_client.py β βββ struct_analyzer.py β βββ type_setter.py β βββ ui_manager.py β βββ variable_renamer.py βββ install_windows.py βββ README.md βββ LICENSE βββ requirements.txt -
Install dependencies:
pip install -r AutoReverse/requirements.txt
- Visit Google AI Studio
- Create a new API key
- Copy the key for plugin configuration
- Start IDA Pro 9.0
- Open any binary file
- Go to Edit > AutoReverse > Configure API Key
- Paste your Gemini API key
- Edit > AutoReverse > Settings to configure preferences
1. Position cursor in any function
2. Edit > AutoReverse > Analyze Current Item
3. Get comprehensive AI analysis with:
- Function purpose and WoW context
- Parameter analysis and calling convention
- Cross-reference analysis
- Copy-pastable type declaration
- Ask follow-up questions about the analysis
- Request specific insights or clarifications
- Get code suggestions and improvements
- Shift+Enter for multiline input
1. Position cursor on data/offset/pointer
2. Edit > AutoReverse > Analyze Current Item
3. Get detailed data structure analysis
Edit > AutoReverse > Settings
- Toggle prompt display in chat
- View current model settings
- Context limit information
- FrameScript System: Lua-to-C++ bridge analysis
- Game Object Recognition: Player, NPC, item structures
- Network Protocol: Packet handling and opcodes
- UI System: WoW's custom UI framework analysis
- Memory Management: Custom allocators and object pools
Function: FrameScript_SerializeStringOrNil
Purpose: Pushes string or nil value onto Lua stack for UI scripting
Parameters: lua_State* L, const char* str
Context: FrameScript system for WoW UI addon communication
Type Declaration:
void FrameScript_SerializeStringOrNil(lua_State* L, const char* str);
- IDA Pro 9.0 with Python support
- Windows (installer supports Windows, manual install for other OS)
- Python 3.8+
- Google Gemini API access
- Google Gemini 2.5 Pro: 2M token context window
- Rate Limiting: Smart handling with helpful error messages
- Context Optimization: Automatic truncation for API efficiency
- Safety Settings: BLOCK_NONE for technical content
- Context Limits:
- Max 8 callers per function (reduced from 10)
- 80 lines disassembly (reduced from 100)
- 40 lines per caller (reduced from 50)
- Token Estimation: Improved accuracy accounting for system prompts
- Parallel Processing: Async analysis with progress tracking
# 1. Open WoW 3.3.5a client in IDA Pro
# 2. Navigate to any function (e.g., spell casting, movement)
# 3. Use AutoReverse to get AI analysis
# 4. Get instant insights about game mechanics# 1. Find data structures (player object, item data, etc.)
# 2. Analyze with AutoReverse
# 3. Get IDA structure definitions
# 4. Apply to improve analysis accuracy# 1. Analyze complex function
# 2. Ask follow-up questions in chat:
# - "How does this relate to spell casting?"
# - "What WoW systems use this function?"
# - "Can you explain the network protocol here?"AutoReverse/modules/
βββ config_manager.py # Settings and API key management
βββ context_gatherer.py # Function analysis and context collection
βββ gemini_client.py # Google Gemini API integration
βββ struct_analyzer.py # Structure analysis and creation
βββ type_setter.py # Type setting functionality
βββ ui_manager.py # User interface management
βββ variable_renamer.py # Variable renaming suggestions
- Error Handling: Comprehensive try-catch with detailed logging
- Context Gathering: Smart XREFs analysis with external function filtering
- UI Components: PyQt5 integration with HTML rendering
- API Management: Rate limiting, token counting, and fallback handling
Plugin Not Loading
- Check IDA Pro 9.0 Python support
- Verify all files in correct locations
- Check Output window for detailed errors
API Errors
- Verify Gemini API key is correct
- Check internet connectivity
- Monitor token usage (free tier: 250k/minute)
Performance Issues
- Large functions may hit rate limits
- Use Settings to adjust context limits
- Analyze smaller functions first
- Free Tier: 15 RPM, 250k tokens/minute
- Paid Tier: Higher limits available
- Context Optimization: Plugin automatically manages context size
- Error Recovery: Helpful suggestions for limit exceeded errors
MIT License - see LICENSE for details.
- Fork the repository
- Create feature branch:
git checkout -b feature-name - Commit changes:
git commit -am 'Add feature' - Push to branch:
git push origin feature-name - Submit pull request
- GitHub Issues: Report bugs and request features
- Documentation: Check AutoReverse/README.md for detailed usage
- IDA Output Window: Enable debug logging for troubleshooting
- Google Gemini: AI analysis capabilities
- IDA Pro: Reverse engineering platform
- Hex-Rays: Decompiler integration
- WoW Community: Reverse engineering insights
AutoReverse Plugin - Accelerating reverse engineering with AI assistance π