Welcome Contributors
Contributions of all kinds are welcome to make xAnalyzer better for everyone. Whether you’re reporting bugs, improving documentation, adding API definitions, or contributing code, your help is appreciated.You don’t need to be a developer to contribute! Bug reports, documentation improvements, and API definition additions are all valuable contributions.
Ways to Contribute
Report Bugs
Help identify and document issues
Improve Documentation
Enhance guides, fix typos, add examples
Add API Definitions
Expand the API definition database
Submit Code
Fix bugs or implement new features
Reporting Bugs
High-quality bug reports help us fix issues faster.Before Reporting
Isolate the issue
Test with only xAnalyzer loaded (no other plugins) to ensure the issue is with xAnalyzer itself.
Search existing issues
Check if the issue has already been reported on GitHub Issues.
Creating a Bug Report
If the issue persists after the above steps, open a new issue with:Clear Title
Clear Title
Use a descriptive title that summarizes the problem (e.g., “Analysis fails on executables with multiple dots in filename”).
Version Information
Version Information
- xAnalyzer version (check About dialog)
- x64dbg version
- Operating system version
Detailed Description
Detailed Description
- What you were trying to do
- What you expected to happen
- What actually happened
Steps to Reproduce
Steps to Reproduce
Clear, numbered steps that allow maintainers to replicate the issue:
- Load executable X
- Enable option Y
- Run analysis Z
- Observe error…
Error Messages
Error Messages
- Log output from x64dbg Log tab
- Any error dialogs or messages
- Screenshots if applicable
Sample File (if possible)
Sample File (if possible)
If you can provide a sample executable that demonstrates the issue, it greatly helps with debugging. Make sure it’s safe to share.
Contributing API Definitions
One of the easiest ways to contribute is by adding or fixing API definitions.When to Add Definitions
- You notice an API call that isn’t being detected
- An API is detected incorrectly (wrong argument types or order)
- New Windows APIs that aren’t in the current definition files
Definition File Structure
API definition files are located in theapis_def folder with .api extension. Header files with data types are in apis_def/headers with .h.api extension.
Definition Format Rules
File Naming
File Naming
- Main file:
dllname.api(e.g.,kernel32.api,user32.api) - Header file:
headername.h.api(e.g.,shell.h.api) - File names should match the DLL module name
Function Entry Format
Function Entry Format
Data Types
Data Types
- Simple types:
HANDLE,LPCTSTR,DWORD,BOOL, etc. - Bracketed types:
[TypeName]refers to a type defined in a header file - Pointer types: Add
*or useLPprefix as appropriate
Header File Format
Header File Format
TypeDisplay: How the type appears in commentsBase: Underlying data typeType: EitherFlag(bitmask) orEnum(enumeration)
Testing Your Definitions
Test analysis
Load an executable that uses the API you defined and run analysis to verify it’s detected correctly.
Contributing Code
For code contributions (bug fixes, new features, refactoring):Development Setup
- Fork the repository on GitHub
- Clone your fork locally
- Set up build environment (Visual Studio 2017 or later)
- Create a branch for your changes
Code Contribution Guidelines
- Follow existing code style for consistency
- Test your changes with various executables (x86 and x64)
- Document your changes in code comments where appropriate
- Update relevant documentation if adding features
- Keep commits focused - one logical change per commit
Submitting Pull Requests
Create a clear description
Explain what your PR does and why it’s needed. Reference any related issues.
Documentation Contributions
Improving documentation helps all users:- Fix typos or unclear wording
- Add examples and use cases
- Expand troubleshooting guides
- Translate documentation (if applicable)
Even small documentation improvements are valuable. Don’t hesitate to submit PRs for minor fixes!
License
By contributing to xAnalyzer, you agree that your contributions will be licensed under the MIT License.MIT License Summary
MIT License Summary
Community Guidelines
- Be respectful to maintainers and other contributors
- Be constructive in feedback and criticism
- Be patient - this is an open source project maintained by volunteers
- Be helpful - assist other users when you can
Getting Started
GitHub Repository
Visit the main repository
Open Issues
Find issues to work on
Latest Release
Get the latest version
Contributions Badge
See all contributors
Thank you for contributing to xAnalyzer! Your efforts help make this tool better for the entire reverse engineering community.
