User Manual

(the manual describes build 1110xx)

Configuration

The decompiler has a configuration file. It is installed into the 'cfg' subdirectory of the IDA installation. The configuration file is named 'hexrays.cfg'. It is a simple text file, which can be edited to your taste. Currently the following keywords are defined:

  • LOCTYPE_BGCOLOR
    Background color of local type declarations. Currently this color is not used.
    Default: default background of the disassembly view
  • VARDECL_BGCOLOR
    Background color of local variable declarations. It is specified as a hexadecimal number 0xBBGGRR where BB is the blue component, GG is the green component, and RR is the red component. Color -1 means the default background color (usually white).
    Default: default background of the disassembly view
  • FUNCBODY_BGCOLOR
    Background color of the function body. It is specified the same way as VARDECL_BGCOLOR.
    Default: default background of the disassembly view
  • BLOCK_INDENT
    Number of spaces to use for block indentations.
    Default: 2
  • COMMENT_INDENT
    The position to start indented comments.
    Default: 48
  • RIGHT_MARGIN
    As soon as the line length approaches this value, the decompiler will try to split it. However, it some cases the line may be longer.
    Default: 120
  • HEXOPTIONS
    Combination of various analysis and display options:

    • HO_JUMPOUT_HELPERS
      If enabled, the decompiler will handle out-of-function jumps by generating a call to the JUMPOUT() function. If disables, such functions will not be decompiled.
      Default: enabled
    • HO_DISPLAY_CASTS
      If enabled, the decompiler will display cast operators in the output listing.
      Default: enabled
    • HO_HIDE_UNORDERED
      If enabled, the decompiler will hide unordered floating point comparisons. If this option is turned off, unordered comparisons will be displayed as calls to a helper function: __UNORDERED__(a, b)
      Default: enabled
    • HO_SSE_INTRINSICS
      If enabled, the decompiler will generate intrinsic functions for SSE instructions that use XMM/MMX registers. If this option is turned off, these instructions will be displayed using inline assembly.
      Default: enabled
    • HO_IGNORE_OVERLAPS
      If enabled, the decompiler will produce output even if the local variable allocation has failed. In this case the output may be wrong and will contain some overlapped variables.
      Default: enabled
    • HO_FAST_STRUCTURAL
      If enabled, fast structural analysis will be used. It generates less number of nested if-statements but may occasionally produce some unnecessary gotos. It is much faster on huge functions.
    • HO_CONST_STRINGS
      Only print string literals if they reside in read-only memory (e.g. .rodata segment). When off, all strings are printed as literals. You can override decompiler's decision by adding 'const' or 'volatile' to the string variable's type declaration.
    • HO_SCMP_TO_BITOPS
      Convert signed comparisons of unsigned variables with zero into bit checks.
      Before: (signed int)x < 0
      After: (x & 0x80000000) != 0

  • WARNS1
    Specifies the warning messages that should be displayed after decompilation. Please refer to hexrays.cfg file for the details.
    Default: all warnings are on