Skip to main content
xAnalyzer integrates into x64dbg through the Plugins menu in the main window and through context menus in the disassembly window. This reference documents all available menu options and their functions.

Plugin menu location

Access xAnalyzer through two locations:
  • Main menu: Plugins > xAnalyzer
  • Disassembly context menu: Right-click in disassembly window > Plugins > xAnalyzer

Analysis menu options

Analyze Selection

Performs fast analysis on selected instructions in the disassembly window. Menu path: Plugins > xAnalyzer > Analyze Selection Requirements
  • One or more instructions must be selected in the disassembly window
  • Selected instructions must be within executable code sections
Behavior
  • Analyzes API calls within the selection
  • Adds function argument comments
  • Annotates data types and definitions
  • Processes multiple function calls if present
Equivalent command: xanal selection
Use this for quick analysis of specific code blocks without processing entire functions.

Analyze Function

Analyzes the complete function containing the current instruction. Menu path: Plugins > xAnalyzer > Analyze Function Requirements
  • Cursor must be positioned within a function
  • Function boundaries must be detectable (prolog/epilog)
Behavior
  • Automatically detects function boundaries
  • Processes all instructions from prolog to return
  • Detects loops within function scope
  • Identifies indirect function calls
  • Annotates all API calls with argument information
Equivalent command: xanal function
Function detection relies on standard prologs and return statements. Functions with non-standard patterns may require manual selection.

Analyze Module

Executes comprehensive analysis across the entire loaded module. Menu path: Plugins > xAnalyzer > Analyze Module Requirements
  • A module must be loaded in x64dbg
  • Sufficient memory for analysis data storage
Behavior
  • Processes all code sections in the module
  • Respects the Extended Analysis configuration option
  • Shows progress indicators in the log window
  • May take significant time for large executables
Equivalent command: xanal module Configuration impact
  • Extended Analysis ON: Deep analysis of all sections (higher resource usage)
  • Extended Analysis OFF: Standard analysis of executable sections
Module analysis on large executables can consume significant time and memory, especially with Extended Analysis enabled.

Removal menu options

Remove Analysis from Selection

Clears analysis data from selected instructions. Menu path: Plugins > xAnalyzer > Remove Analysis from Selection Requirements
  • Instructions must be selected in the disassembly window
Behavior
  • Removes automatic comments added by xAnalyzer
  • Clears function argument labels
  • Removes data type annotations
  • Preserves user-added comments (depending on configuration)
Equivalent command: xanalremove selection

Remove Analysis from Function

Clears analysis data from the entire function. Menu path: Plugins > xAnalyzer > Remove Analysis from Function Requirements
  • Cursor must be within a function
Behavior
  • Detects function boundaries
  • Removes all xAnalyzer annotations from the function
  • Preserves manual annotations based on configuration
Equivalent command: xanalremove function

Remove Analysis from Module

Clears all analysis data from the loaded module. Menu path: Plugins > xAnalyzer > Remove Analysis from Module Requirements
  • A module must be loaded
Behavior
  • Removes all xAnalyzer-generated annotations
  • Clears automatic comments and labels throughout the module
  • Respects configuration options for preserving manual comments
Equivalent command: xanalremove module
Use this before re-analyzing with different configuration settings to ensure clean results.

Configuration menu options

Automatic Analysis

Enables or disables automatic analysis when the debugger reaches the entry point. Menu path: Plugins > xAnalyzer > Automatic Analysis Type: Checkbox option (toggle on/off) Default: OFF Behavior
  • ON: Automatically launches full module analysis when reaching entry point
  • OFF: Manual analysis trigger required
Use case: Enable for OllyDbg-like automatic analysis behavior
Automatic analysis is skipped if a backup database file exists for the executable.

Extended Analysis

Controls the depth of analysis performed during module analysis. Menu path: Plugins > xAnalyzer > Extended Analysis Type: Checkbox option (toggle on/off) Default: OFF Behavior
  • ON: Performs deep analysis across entire code section
  • OFF: Standard analysis of executable sections only
Impact
  • Extended analysis increases processing time significantly
  • Memory usage may be substantially higher
  • More comprehensive results, especially for complex executables
Enable Extended Analysis only when necessary. Large executables may cause significant memory consumption.

Analyze Undefined Functions

Enables analysis of functions not present in API definition files. Menu path: Plugins > xAnalyzer > Analyze Undefined Functions Type: Checkbox option (toggle on/off) Default: OFF Behavior
  • ON: Uses generic analysis for undefined functions
  • OFF: Only analyzes functions present in definition files
Coverage: When enabled, analyzes:
  • Functions not in API definition files
  • Register-based calls: CALL {REGISTER}
  • Displacement calls: CALL {REGISTER + DISPLACEMENT}
  • Dynamic pointer calls: CALL {DYNAMIC_POINTER}

Smart Function Tracking

Enables intelligent tracking of indirect function calls. Menu path: Plugins > xAnalyzer > Smart Function Tracking Type: Checkbox option (toggle on/off) Default: ON (since version 2.5.0) Behavior
  • Tracks function pointers through registers
  • Follows indirect call chains
  • Resolves dynamic function calls when possible
  • Labels function pointers with their resolved names
Detection patterns
  • CALL [REGISTER]
  • CALL [POINTER]
  • CALL [DYNAMIC_MEMORY]
  • Multiple jump indirections before API calls

Clear Automatic Comments

Controls whether automatic comments are cleared before new analysis. Menu path: Plugins > xAnalyzer > Clear Automatic Comments Type: Checkbox option (toggle on/off) Default: ON Behavior
  • ON: Removes automatic comments before re-analyzing
  • OFF: Preserves existing automatic comments
Use case: Enable to avoid duplicate comments during re-analysis

Clear Automatic Labels

Controls whether automatic labels are cleared before new analysis. Menu path: Plugins > xAnalyzer > Clear Automatic Labels Type: Checkbox option (toggle on/off) Default: ON Behavior
  • ON: Removes automatic labels before re-analyzing
  • OFF: Preserves existing automatic labels
Use case: Useful when working with map loader plugins like SwissArmyKnife

Clear User Comments

Controls whether user-added comments are cleared during analysis removal. Menu path: Plugins > xAnalyzer > Clear User Comments Type: Checkbox option (toggle on/off) Default: OFF Behavior
  • ON: Removes user comments during cleanup operations
  • OFF: Preserves manually added comments
Enable this option with caution. User comments will be permanently removed during cleanup operations.

Clear User Labels

Controls whether user-added labels are cleared during analysis removal. Menu path: Plugins > xAnalyzer > Clear User Labels Type: Checkbox option (toggle on/off) Default: OFF Behavior
  • ON: Removes user labels during cleanup operations
  • OFF: Preserves manually added labels

Help menu option

About

Displays plugin version and author information. Menu path: Plugins > xAnalyzer > About Information shown
  • Plugin name and version number
  • Author information
  • Links to documentation and repository
  • License information

For developers and advanced users, the menu options are defined in plugin.h with the following enumeration:
enum
{
    MENU_ANALYZE_UNDEF = 1,          // Analyze Undefined Functions
    MENU_ANALYZE_AUTO,               // Automatic Analysis
    MENU_ANALYZE_DISASM,             // Analyze Module
    MENU_ANALYZE_EXT,                // Extended Analysis
    MENU_ANALYZE_CLEAR_CMTS,         // Clear User Comments
    MENU_ANALYZE_CLEAR_ACMTS,        // Clear Automatic Comments
    MENU_ANALYZE_CLEAR_LBLS,         // Clear User Labels
    MENU_ANALYZE_CLEAR_ALBLS,        // Clear Automatic Labels
    MENU_ANALYZE_TRACK_UNDEF,        // Smart Function Tracking
    MENU_ANALYZE_DISASM_FUNCT,       // Analyze Function
    MENU_ANALYZE_DISASM_SELEC,       // Analyze Selection
    MENU_REM_ANALYSIS_DISASM_SELEC,  // Remove Analysis from Selection
    MENU_REM_ANALYSIS_DISASM_FUNCT,  // Remove Analysis from Function
    MENU_REM_ANALYSIS_DISASM,        // Remove Analysis from Module
    MENU_ABOUT                       // About
};

Workflow recommendations

Initial analysis workflow

  1. Load executable in x64dbg
  2. Configure desired options (Extended Analysis, Analyze Undefined Functions)
  3. Use Analyze Module for comprehensive initial analysis
  4. Fine-tune with Analyze Function or Analyze Selection as needed

Iterative analysis workflow

  1. Enable Clear Automatic Comments and Clear Automatic Labels
  2. Disable Clear User Comments and Clear User Labels
  3. Use Remove Analysis from Module before re-analyzing
  4. Adjust configuration options
  5. Re-run Analyze Module

Focused analysis workflow

  1. Navigate to specific function of interest
  2. Use Analyze Function for targeted analysis
  3. Adjust analysis with Analyze Selection for specific blocks
  4. Use removal options to clear and re-analyze as needed

Build docs developers (and LLMs) love