LogoLogo
IDA 9.0
IDA 9.0
  • Welcome to Hex-Rays docs
    • What's new?
  • Getting Started
    • Install IDA
    • Licensing
    • Basic Usage
    • What's next?
  • User Guide
    • User Interface
      • Menu Bar
        • File
          • Load file
          • Script File
          • Script command
          • Produce output files
          • Invoke OS Shell
          • Take database snapshot
          • Save database
          • Save database as...
          • Abort IDA
          • Exit IDA
        • Edit
          • Export data
          • Undo an action
          • Redo an action
          • Clear undo history
          • Disable undo
          • Convert to instruction
          • Convert to data
          • Convert to string literal
          • Convert to array
          • Undefine a byte
          • Give Name to the Location
          • Operand types
            • Offset
            • Number
            • Perform en masse operation
            • Convert operand to character
            • Convert operand to segment
            • Complex Offset Expression
            • Convert operand to symbolic constant (enum)
            • Convert operand to stack variable
            • Change operand sign
            • Bitwise negate operand
            • User-defined operand
            • Set operand type
          • Comments
          • Functions
          • Structs
          • Segments
          • Patch core
          • Other
            • Rename Any Address
          • Plugins
        • Jump
          • Center current line in window
          • Problems List
        • Search
          • REGULAR EXPRESSION SYNTAX SUMMARY
        • View
          • Open subviews
          • Graphs
          • Message Window
          • Arrows window
          • Database snapshot manager
          • Highlighting identifiers
          • Browser options
          • Lumina options
          • Assembler level and C level types
          • C++ type details
          • Bookmarks window
          • Calculator
          • View segment registers
          • View Internal Flags
          • Hide
          • Unhide
          • Del hidden range
          • Hide all items
          • Unhide all items
          • Setup hidden items
        • Debugger
          • Debugger window
          • Process Control
            • Start process
            • Process options
            • Pause process
            • Terminate process
            • Step into
            • Step over
            • Run to cursor
            • Run until return
            • Attach to process
            • Detach from process
            • Set current ip
            • Show application screen
          • Breakpoints
          • Watches
          • Tracing
          • Source code view
            • Watch view (source level)
          • Process Memory
            • Take memory snapshot
            • Manual memory regions
            • Refresh memory
          • Thread list
          • Module list
          • Stack trace
          • Exceptions
          • Debugger options
          • Switch debugger
        • Lumina
        • Options
          • Low & High Suspicious Operand Limits
        • Windows
          • Rename a stack variable
          • Miscellanous Options
          • Environment variables
          • Reset Hidden Messages
          • Various dialog help messages
        • List of all menu options
      • Desktops
      • Command line
      • How To Use List Viewers in IDA
      • Licenses
        • Apache License for Ghidra
        • Apache License for LLVM
        • Common Public License Version 1.0
        • APPLE PUBLIC SOURCE LICENSE
        • PCRE2 LICENCE
        • GNU Lesser General Public License v2.1 for libiberty
      • Database conversion from idb to i64
    • Disassembler
      • Interactivity
      • Background Analysis
      • Graph view
        • Graphing tutorial
      • Proximity view
      • Navigation
        • Anchor
        • How to Enter a Segment Value
        • How to Enter a Number
        • How to Enter an Identifier
        • How to enter text
        • How to Enter an Address
      • Disassembly Gallery
        • Philips 51XA-G3
        • 6502 and 65C02 Disassembler
        • 6301, 6303, 6800, 6801 and 6803 Disassembler
        • 68040, Amiga
        • 6805 Disassembler
        • 6808 Disassembler
        • 6809 OS9 Flex Disassembler
        • 6809 Disassembler
        • 6811 Disassembler
        • 68HC12 Disassembler
        • 68HC16 Disassembler
        • 68k Amiga Disassembler
        • 68k Mac OS
        • 68k Palm Pilot
        • Unix COFF
        • NEC 78k0 and 78k0s Processor
        • 80196 Processor
        • 8051 Disassembler
        • Analog Devices 218x.
        • Alpha Processor – NT COFF
        • Alpha Processor – Unix ELF
        • Android ARM Executables (.elf)
        • ARC Processor
        • ARM Processor EPOC App
        • ARM Processor EPOC PE File
        • ARM Processor EPOC ROMFile
        • EPOC SIS File Handler
        • ARM Processor iOS (iPhone): Unlock
        • ARM Processor iOS (iPhone): Objective-C metadata
        • ARM Processor iOS (iPhone): Objective-C Instance variables
        • ARM Processor iOS (iPhone): Parameter Identification & Tracking (PIT)
        • ARM Processor iOS (iPhone): Start
        • ARM Processor iOS (iPhone): Switch statements
        • ARM Processor iOS (iPhone): C++ signatures
        • ARM Processor iOS (iPhone): Write
        • ARM Processor: Linux ELF
        • ARM Processor: AOF SDK
        • ARM Processor: Windows CE COFF Format
        • ARM Processor: Windows CE PE Format
        • ATMEL AVR Disassembler
        • C166 Processor
        • C166 Processor with ELF file
        • Rockwell C39
        • Microsoft .NET CLI Disassembler. VisualBasic library
        • CR16
        • Android Dalvik Executables (.dex)
        • Microsoft .NET CLI Disassembler
        • DSP56K
        • Fujitsu FR (.elf)
        • Gameboy
        • H8 300: COFF FILE Format
        • H8 300s: COFF FILE Format
        • H8 500
        • HPPA Risc Processor: HP-UX SOM
        • i51
        • i860
        • Intel i960
        • Intel IA-64 (Itanium)
        • Java Bytecode
        • Angstrem KR 1878
        • Renesas/Hitachi M16C
        • Renesas/Hitachi M32R
        • M740
        • M7700
        • M7900
        • MIPS Processor: Nintendo N64
        • MIPS R5900 Processor : Sony bin
        • MIPS Processor: Sony ELF
        • MIPS Processor: Sony PSX
        • MIPS Processor: Sony PSX
        • MIPS Processor: Unix COFF File Format
        • MIPS Processor: Unix ELF File Format
        • MIPS Processor: Windows CE PE File Format
        • MIPS Processor: Windows CE PE2 File Format
        • Panasonic MN102
        • Atmel OAK DSP
        • 80×86 Architecture: DOS Extender
        • 80×86 Architecture: Watcom Runtime
        • 80×86 Architecture: Geos APP
        • 80×86 Architecture: Geos DRV
        • 80×86 Architecture: Geos LIB
        • 80×86 Architecture: GNU COFF Format
        • 80×86 Architecture: OS/2 Linear Executable Format
        • 80×86 Architecture: Netware NLM
        • 80×86 Architecture: QNX Executable
        • 80×86 Architecture: Watcom Runtime
        • 80×86 Architecture: Windows OMF
        • 80×86 Architecture: Windows Portable Executable Format
        • 80×86 Architecture: Windows Virtual Device Driver
        • 80×86 Architecture: Windows 16 bits DLL
        • X-Box Disassembler
        • PDP 11: SAV File
        • PIC
        • PIC 12xx
        • Power PC AIF ECOFF file Format
        • Power PC Linux ELF
        • Mac OS PEF File
        • Mac OS X File
        • Windows NT PE File
        • Hitachi SH-1 Processor
        • Hitachi SH-3 Processor: Windows CE COFF format
        • Hitachi SH-3 Processor: Windows CE PE format
        • Hitachi SH-4 Processor: ELF File Format
        • Hitachi SH-4 Processor: Windows CE PE File Format
        • Super Nintendo Entertainement System (SNES)
        • SPARC Solaris COFF
        • SPARC Solaris ELF
        • SPARC Sun ELF
        • SPARC Sun ELF SO
        • ST 20C4
        • ST 7
        • ST 9
        • Toshiba TLCS 900
        • TMS 320c2 COFF
        • TMS 320c5
        • TMS 320c54
        • TMS 320c6 COFF File Format
        • TRICORE
        • SunPlus unSP
        • NEC V850
        • Z180 COFF File Format
        • Z380 COFF File Format
        • Z8
        • Z80
      • Supported processors
      • Supported file formats
        • Windmp file loader
      • Bitfields
        • Bit Fields tutorial
      • Structures tutorial
      • Union tutorial
      • Variable length structures tutorial
      • Data types, operands and constructs
      • Packed executables
    • Decompiler
      • Prerequisites
      • Quick primer
      • Exception handler
      • Introduction to Decompilation vs. Disassembly
        • Comparisons of ARM disassembly and decompilation
        • Comparisons of PowerPC disassembly and decompilation
        • Comparisons of MIPS disassembly and decompilation
        • Hex-Rays v7.4 vs. v7.3 Decompiler Comparison Page
        • Hex-Rays v7.3 vs. v7.2 Decompiler Comparison Page
        • Hex-Rays v7.2 vs. v7.1 Decompiler Comparison Page
      • Interactive operation
        • Rename
        • Set type
        • Set number representation
        • Edit indented comment
        • Edit block comment
        • Hide/unhide C statements
        • Split/unsplit expression
        • Force call type
        • Set call type
        • Add/del variadic arguments
        • Del function argument
        • Add/delete function return type
        • Jump to cross reference
        • Jump to cross reference globally
        • Generate HTML file
        • Mark/unmark as decompiled
        • Copy to assembly
        • Show/hide casts
        • Reset pointer type
        • Convert to struct *
        • Create new struct type
        • Split variable
        • Select union field
        • Jump to paired paren
        • Collapse/uncollapse item
        • Map to another variable
      • Batch operation
      • Configuration
      • Third party plugins
      • Floating point support
      • Support for intrinsic functions
      • Overlapped variables
      • gooMBA
      • Failures and troubleshooting
      • FAQ
      • Limitations
      • Tips and tricks
    • Debugger
      • Instant debugger
      • Remote debugging
        • Remote iOS Debugger
        • Android debugger
        • Dalvik debugger
        • Remote GDB Debugger
          • Remote GDB Debugger options
          • Debugging with gdbserver
          • Debugging with VMWare
          • Debugging with OpenOCD
          • Debugging with QEMU
          • External programs and GDB Debugger
          • Debugging code snippets with QEMU
        • PIN debugger
          • Building the PIN tool
          • Connecting a remote PIN tool instance from IDA
          • PIN support for MacOSX
        • Replayer debugger
        • Bochs debugger
          • Bochs Disk Image operation mode
          • Bochs IDB operation mode
          • Bochs PE operation mode
          • Bochs debugger FAQ
      • Local debugging
        • WinDbg Debugger
        • Linux debugger
        • Intel/ARM macOS debugger
      • Debugger tutorials
        • Debugging Dalvik Programs
        • IDA Win32 Local Debugging
        • IDA Linux Local Debugging
        • IDA Linux to Win64 Debugging
        • IDA Win32 to Linux Debugging
        • Debugging Mac OSX Applications with IDA Pro
        • Debugging iOS Applications using CoreDevice (iOS 17 and up)
        • Debugging iOS Applications with IDA Pro
        • Debugging Linux Applications locally
        • Debugging Linux/Windows Applications with PIN Tracer module
        • Debugging Windows Applications with IDA Bochs Plugin
        • Debugging Windows Applications with IDA WinDbg Plugin
        • Using the Bochs debugger plugin in Linux
        • Debugging Windows Kernel with VMWare and IDA WinDbg Plugin
        • Debugging Linux Kernel under VMWare using IDA GDB debugger
        • Windows Debugger Hub
        • Linux Debugger
        • Debugging a Windows executable locally and remotely
        • Debugging the XNU Kernel with IDA Pro
        • Remote debugging with IDA Pro
        • IDA Scriptable Debugger: overview
          • IDA Scriptable Debugger: scriptability
        • Debugging code snippets with QEMU debugger (a la IDA Bochs debugger)
        • Trace Replayer and managing traces
        • Using IDA Pro's tracing features
        • Working with PIN
        • Appcall
    • Creating Signatures
      • FLIRT
        • IDA F.L.I.R.T. Technology: In-Depth
        • Generate FLIRT signature file
        • Supported Compilers
          • Turbo Pascal
          • Delphi
      • Makesig
    • Creating Type Libraries
      • IDAClang
      • TILIB
    • Configuration
      • Configuration files
      • Command line switches
      • Keyboard macros
      • UI/Fonts/Themes
      • Shortcuts
      • Customizing IDA
      • CSS-based styling
    • Teams
      • IDA Teams Licenses
      • Diffing and Merging Databases with IDA Teams
      • Teams lc command reference manual
      • hv command reference manual
      • Hex-Rays Vault’s visual client user manual
    • Lumina
      • lc command reference manual
    • Plugins
      • Open Plugin Architecture
      • Plugin options
      • Plugins Shipped with IDA
        • Swift plugin
        • Golang plugin
        • Rust plugin
        • picture_search
        • Objective-C Analysis Plugin
        • DYLD Shared Cache Utils
        • Borland RTTI descriptors plugin
        • DWARF plugin
        • Patfind plugin
        • IDA Feeds
          • FLIRT Signature Bundle
      • Plugin Contest
      • How to write your own plugin?
    • Helper Tools
    • idalib
  • Developer Guide
    • C++ SDK
      • Getting Started with C++ SDK
      • C++ SDK Reference
      • Using the Decompiler SDK: Decompiler plugin
      • C++ SDK examples
      • How to create a plugin in C++?
      • C++ SDK Porting Guide from IDA 8.x to 9.0
    • IDAPython
      • Getting started with IDAPython
      • IDAPython API Reference
      • IDAPython examples
      • How to create a plugin in IDAPython?
      • IDAPython Porting Guide from IDA 8.x to 9.0
    • IDC
      • Core concepts
        • Expressions
        • Statements
        • Functions
        • Variables
        • Constants
        • Exceptions
        • Classes
        • Predefined symbols
        • loader_input_t class
        • Slices
      • IDC API Reference
        • Index of debugger related IDC functions
        • Alphabetical list of IDC functions
          • is_member_id
          • load_type
          • get_member_by_idx
          • get_ordinal_limit
          • set_selector
          • enable_tracing
          • get_prev_fixup_ea
          • del_segm
          • get_bmask_cmt
          • end_type_updating
          • Find
          • toggle_bnot
          • patch_byte
          • get_module_info
          • set_member_name
          • create_float
          • del_struc_member
          • read_dbg_memory
          • get_enum_width
          • getn_thread_name
          • del_struc
          • filelength
          • set_manual_insn
          • is_value...() functions
          • get_ip_val
          • del_extra_cmt
          • create_insn
          • op_offset_high16
          • get_cmt
          • expand_struc
          • get_idb_path
          • set_frame_size
          • get_file_ext
          • has_value
          • readshort
          • sanitize_file_name
          • get_member_flag
          • create_struct
          • ARM specific
          • set_enum_member_cmt
          • rename
          • set_ida_state
          • get_member_size
          • msg
          • qbasename
          • get_enum_member_enum
          • auto_mark_range
          • plan_to_apply_idasgn
          • set_named_type
          • op_offset
          • rename_entry
          • strlen
          • get_extra_cmt
          • get_enum_flag
          • fgetc
          • op_stkvar
          • get_last_index
          • get_field_ea
          • get_struc_id
          • select_thread
          • create_array
          • get_struc_cmt
          • set_array_string
          • set_func_attr
          • set_storage_type
          • get_struc_size
          • demangle_name
          • get_next_fixup_ea
          • get_next_bmask
          • delattr
          • gen_simple_call_chart
          • patch_qword
          • get_enum_name
          • loader_input_t.getc
          • get_debugger_event_cond
          • read_dbg_qword
          • define_local_var
          • generate_disasm_line
          • add_idc_hotkey
          • tolower
          • del_selector
          • set_debugger_event_cond
          • get_imagebase
          • gen_file
          • get_entry
          • find_custom_data_format
          • get_debug_name_ea
          • add_default_til
          • set_func_end
          • exit_process
          • delete_array
          • xtol
          • get_exception_code
          • detach_process
          • set_enum_cmt
          • get_wide_word
          • put_bookmark
          • is_loaded
          • add_enum_member
          • parse_decls
          • readstr
          • get_entry_qty
          • ord
          • sprintf
          • get_root_filename
          • get_enum_member_cmt
          • create_word
          • set_func_flags
          • loader_input_t.tell
          • create_align
          • read_dbg_dword
          • next_addr
          • get_bytes
          • batch
          • start_process
          • process_config_line
          • del_user_info
          • qmakefile
          • set_struc_name
          • print_decls
          • create_custom_data
          • del_enum_member
          • format_cdata
          • get_fixup_target_sel
          • get_item_size
          • loader_input_t.gets
          • get_last_bmask
          • Step Tracing Options
          • selector_by_name
          • get_enum_cmt
          • next_not_tail
          • prev_head
          • set_color
          • set_numbered_type
          • get_member_name
          • auto_wait
          • get_enum_member_bmask
          • fseek
          • get_segm_start
          • attach_process
          • Trace file functions
          • get_enum_member_value
          • op_stroff
          • get_next_offset
          • set_processor_type
          • get_bookmark_desc
          • create_data
          • lastattr
          • get_operand_value
          • collect_stack_trace
          • toupper
          • get_fixup_target_dis
          • set_cmt
          • add_entry
          • set_segm_addressing
          • qmake_full_path
          • get_source_linnum
          • fputc
          • resume_thread
          • get_func_attr
          • get_first_enum_member
          • add_sourcefile
          • get_first_bmask
          • read_selection_start
          • hasattr
          • get_member_cmt
          • gen_flow_graph
          • get_array_element
          • get_tinfo
          • loader_input_t
          • tinfo_errstr
          • TRUNC
          • add_segm_ex
          • Local types information and manipulation helpers
          • set_source_linnum
          • get_next_enum_member
          • loader_input_t.readbytes
          • set_array_params
          • jumpto
          • get_bookmark
          • set_enum_bf
          • prev_not_tail
          • toggle_sign
          • loader_input_t.size
          • Trace events functions
          • get_func_flags
          • get_gotea
          • set_segm_attr
          • get_item_head
          • set_default_sreg_value
          • print_insn_mnem
          • set_member_cmt
          • get_ordinal_qty
          • set_target_assembler
          • add_user_stkpnt
          • set_local_type
          • Hidden ranges
          • del_items
          • compile_idc_text
          • Dalvik debugger extension functions
          • byte_value
          • create_dword
          • is_code
          • del_func
          • get_enum
          • make_array
          • rotate_left
          • recalc_spd
          • search_path
          • CommonBits
          • get_processor_name
          • set_func_cmt
          • get_prev_bmask
          • Hashes
          • split_sreg_range
          • process_ui_action
          • set_fixup
          • get_fixup_target_type
          • create_oword
          • get_flags
          • get_func_name
          • create_strlit
          • add_struc
          • atol
          • load_debugger
          • mkdir
          • sizeof
          • get_enum_member_by_name
          • save_database
          • guess_type
          • get_segm_name
          • print_operand
          • qisabspath
          • get_member_qty
          • set_struc_cmt
          • get_fixup_target_flags
          • idadir
          • object.retrieve
          • add_auto_stkpnt
          • get_numbered_type_name
          • get_enum_member_name
          • get_next_index
          • prev_addr
          • get_name_ea
          • get_sp_delta
          • set_bmask_cmt
          • readlong
          • set_segm_name
          • get_prev_offset
          • set_segm_alignment
          • get_strlit_contents
          • forget_exception
          • get_item_end
          • add_func
          • get_name
          • Asks
          • get_spd
          • Debugger: control
          • get_wide_byte
          • plan_and_wait
          • set_enum_flag
          • RunPythonStatement
          • del_sourcefile
          • find_selector
          • get_frame_regs_size
          • op_num
          • define_exception
          • create_double
          • create_byte
          • read_selection_end
          • OpTypes
          • op_plain_offset
          • move_segm
          • get_member_id
          • set_segm_combination
          • get_current_thread
          • trim
          • Debugger: options
          • getn_thread
          • get_frame_id
          • typeinfo.print
          • to_ea
          • rebase_program
          • add_struc_member
          • get_exception_qty
          • get_first_index
          • import_type
          • set_segm_type
          • find_custom_data_type
          • get_next_seg
          • find_func_end
          • get_last_enum_member
          • getattr
          • get_frame_size
          • get_screen_ea
          • loader_input_t.read
          • set_reg_value
          • Debugger: modules
          • create_pack_real
          • writestr
          • exec_idc
          • get_enum_size
          • set_enum_name
          • create_tbyte
          • sel2para
          • atoa
          • loader_input_t.close
          • add_enum
          • ltoa
          • substr
          • del_idc_hotkey
          • Breakpoint handling functions
          • loader_input_t.seek
          • cleanup_appcall
          • object.store
          • get_type
          • qexit
          • get_debug_name
          • get_array_id
          • Can't Open File
          • suspend_process
          • process_config_directive
          • get_entry_name
          • get_last_member
          • get_struc_name
          • clear_selection
          • fclose
          • firstattr
          • create_yword
          • dbg_appcall
          • get_qword
          • patch_dword
          • begin_type_updating
          • read_dbg_byte
          • get_fpnum
          • qsleep
          • get_first_member
          • get_nsec_stamp
          • del_stkpnt
          • eval
          • savefile
          • eval_python
          • Xrefs
          • strstr
          • writeshort
          • get_sreg
          • get_segm_end
          • get_func_off_str
          • set_func_start
          • del_array_element
          • get_full_flags
          • set_exception_flags
          • rename_array
          • get_frame_args_size
          • op_flt
          • get_min_spd_ea
          • apply_type
          • get_prev_index
          • loadfile
          • retrieve_input_file_md5
          • get_wide_dword
          • patch_dbg_byte
          • Functions provided by the WinDbg debugger
          • get_original_byte
          • get_member_strid
          • call_system
          • writelong
          • get_thread_qty
          • nextattr
          • send_dbg_command
          • get_first_seg
          • get_processes
          • patch_word
          • get_manual_insn
          • ftell
          • get_entry_ordinal
          • set_array_long
          • delete_all_segments
          • TO_LONG
          • Function chunk related functions
          • Debugger: events
          • get_prev_func
          • op_seg
          • validate_idb_names
          • fprintf
          • fopen
          • strfill
          • del_fixup
          • get_bmask_name
          • inf_attr
          • is_bf
          • read_dbg_word
          • qdirname
          • get_segm_attr
          • func_contains
          • del_source_linnum
          • get_sourcefile
          • clr_database_flag
          • set_name
          • Refresh Screen
          • op_enum
          • getn_enum
          • get_db_byte
          • setattr
          • get_forced_operand
          • op_bin
          • Functions provided by the replayer debugger
          • prevattr
          • update_extra_cmt
          • get_str_type
          • op_man
          • choose_func
          • set_bmask_name
          • get_curline
          • decode_insn
          • set_segment_bounds
          • set_segm_class
          • write_dbg_memory
          • get_exception_name
          • get_enum_member
          • is_mapped
          • del_enum
          • get_frame_lvar_size
          • get_operand_type
          • set_root_filename
          • compile_idc_file
          • typeinfo.size
          • get_local_tinfo
          • get_fixup_target_off
          • is_union
          • unlink
          • get_segm_by_sel
          • set_enum_width
          • take_memory_snapshot
          • exec_python
          • get_next_func
          • get_member_offset
          • get_func_cmt
          • parse_decl
          • create_qword
          • next_head
          • suspend_thread
          • loader_input_t.getz
          • get_color
          • get_reg_value
          • load_and_run_plugin
          • set_database_flag
          • set_enum_member_name
          • set_member_type
          • get_prev_enum_member
      • IDC examples
        • Analyzing encrypted code
  • Admin Guide
    • Lumina server
    • Teams server
    • License server
      • Hex-Rays License Server Migration Guide
  • Release Notes
    • IDA 9.0
    • IDA 8.4sp2
    • IDA 8.4sp1
    • IDA 8.4
    • IDA 8.3
    • IDA 8.2sp1
    • IDA 8.2
    • IDA 8.1
    • IDA 8.0sp1
    • IDA 8.0
    • IDA 7.7sp1
    • IDA 7.7
    • IDA 7.6sp1
    • IDA 7.6
    • IDA 7.5sp3
    • IDA 7.5sp2
    • IDA 7.5sp1
    • IDA 7.5
    • IDA 7.4sp1
    • IDA 7.4
    • IDA 7.3
      • IDA 7.3 Undo: IDA can do it
    • IDA 7.2
      • IDA 7.2 The Mac Rundown
    • IDA 7.1
      • IDA 7.1 Debugger API 7.1 Porting Guide
    • IDA 7.0sp1
    • IDA 7.0
      • Internationalization (i18n)
      • Automatic discovery of string literals
      • API 7.0 Porting Guide
      • IDAPython backward compatibility
    • IDA 6.95
    • IDA 6.9
    • IDA 6.8
    • IDA 6.7
    • IDA 6.6
    • IDA 6.5
    • IDA 6.4
    • IDA 6.3
    • IDA 6.2
    • IDA 6.1
    • IDA 6.0
    • IDA 5.7
    • IDA 5.6
    • IDA 5.5
      • 5.5 Gallery
      • 5.5 Comparison
    • IDA 5.4
    • IDA 5.3
    • IDA 5.2
    • IDA 5.1
    • IDA 5.0
    • IDA 4.9SP
    • IDA 4.9
    • IDA 4.8
    • IDA 4.7
    • IDA 4.6
    • IDA 4.x
    • IDA 3.x
    • Cumulative bugfix for IDA
  • Archive
    • IDA’s Windbg plugin
    • IDA’s Bochs debugger plugin
    • IDA’s Bochs debugger plugin 2
    • DosWin32
    • Hex-Rays v1.1 vs. v1.0 Decompiler Comparison Page
    • Hex-Rays v1.2 vs. v1.1 Decompiler Comparison Page
    • Hex-Rays v1.3 vs. v1.2 Decompiler Comparison Page
    • Hex-Rays v1.6 vs. v1.5 Decompiler Comparison Page
    • Hex-Rays v1.7 vs. v1.6 Decompiler Comparison Page
    • Costly Greetings – An Adventure In Hostile Code Analysis
    • An Adventure In Hostile Code Analysis: Description
    • An Adventure In Hostile Code Analysis: Disassembly
    • Improved code flow analysis
    • Program Navigation Bar
    • IDA Home Contest
    • Pimp My IDA: vote results
    • Turning off IDA 6.x compatibility in IDAPython
    • Porting guide for IDA 7.4 turning off IDA 6.x API backwards-compatibility by default
    • Porting guide for IDA 7.4 IDAPython and Python 3
    • IDAPython and Python 3
    • Porting guide for changes in IDAPython-on-Python-3 APIs
    • Debugging iOS Applications With IDA
    • IDA Win32 to Win32 Debugging
    • IDA Win32 to Win64 Debugging
    • Legacy license server: Floating Licenses
      • Installing on Linux
      • Installing on Windows
      • Installing on OS X
    • Decompiler Installation
    • Enumerated types tutorial
  • Bug Bounty
Powered by GitBook
LogoLogo

Need Help?

  • FAQs
  • Support

Community

  • Forum
  • Plugins

Resources

  • Blog
  • Download center

© 2025 Copyright Hex-Rays

On this page

Was this helpful?

Export as PDF
  1. Release Notes

IDA 7.0sp1

Last updated 7 months ago

Was this helpful?

IDA 7.0.171130 (SP1) November 30, 2017

Welcome to IDA 7.0 SP1!

IDA 7.0 SP1 fixes numerous minor issues discovered since the release of .

Complete changelist

  • Processor Modules

    • h8: added support for Renesas H8/3687 Group microcomputers

  • BUGFIXES

    • BUGFIX: ARM: ida could interr (code 230) while trying to decode malformed arm64 instructions

    • BUGFIX: ARM: some standard ARMv8 instructions were incorrectly decoded as ARMv8.1 atomic instructions

    • BUGFIX: BOCHS: x64 memory mapping for IDB debugging was wrong in some cases

    • BUGFIX: C166: fixed output of the offsets for operands with the indirect memory reference

    • BUGFIX: Debugger > Run could fail either starting the process, or loading the binary file for auto-analysis in case the target file didn't exist on the remote computer and IDA was asked to push it there and it was requested to be pushed into a non-existing directory

    • BUGFIX: debugger: exceptions whose reporting was set to "Silent" or "Log", could still cause a warning to be shown

    • BUGFIX: debugger: bochs: improved PE+ (Win64) emulation support

    • BUGFIX: debugger: debug names could disappear after analyzing a module

    • BUGFIX: debugger: IDA could try to load PDB info for unsupported file formats if source debugging was enabled, leading to confusing error messages

    • BUGFIX: debugger: ios: 'ios_deploy proclist' would not display an error message if the device returned an empty process list

    • BUGFIX: debugger: ios: Attaching to a process and 'ios_deploy proclist' could crash with iOS 11

    • BUGFIX: debugger: ios: stack traces on iOS could have an incorrect address in the 0th frame

    • BUGFIX: debugger: linux: the process may not have stopped at entry point in some cases with ASLR active

    • BUGFIX: debugger: MEMORY segment could be missing when attaching to a debuggung session a second time

    • BUGFIX: debugger: PIN: IDA could freeze on 'reading trace...' waitbox

    • BUGFIX: debugger: When performing instant remote debugging of ELF files, DWARF info would not be loaded

    • BUGFIX: debugger: win32: fixed a handle leak

    • BUGFIX: debugger: win32: IDA could fail to correctly detect a loaded DLL's filename in case it had a bogus name in the Export Directory

    • BUGFIX: debugger: win32: if the exception table was lacking info about essential exception codes, the debugger would not recognize its own breakpoints

    • BUGFIX: debugger: win32: XMM register value was broken in WOW64 mode,

    • BUGFIX: decompiler: a recently renamed variable could show its old name in some cases

    • BUGFIX: decompiler: decompiler could mishandle a dereference of a pointer to an array

    • BUGFIX: decompiler: fixed many interrs

    • BUGFIX: decompiler: in rare cases the decompiler could lose essential instructions

    • BUGFIX: decompiler: in some cases 64bit comparison combining could produce wrong pseudocode

    • BUGFIX: decompiler: in some rare cases the decompiler produced incorrect function calls when recognized inlined 'strlen'

    • BUGFIX: decompiler: lvar allocation would wrongly replace some source operands during chain allocation

    • BUGFIX: decompiler: optimizer could incorrectly misidentify 64bit multiplication by a power of 2

    • BUGFIX: decompiler: was not honoring 'volatile' modifier in variable types

    • BUGFIX: DWARF: could erroneously decide that two different types are the same

    • BUGFIX: DWARF: IDA could interr (30331) on some files

    • BUGFIX: DWARF: could fail telling two types apart, in case they were only differing by one of their function pointer member's calling convention or prototype

    • BUGFIX: DWARF: could INTERR on anonymous types that are declared as part of a structure/class's destructor

    • BUGFIX: DWARF: could stop early on bad DWARF information for a DW_AT_encoding-missing "void" DW_TAG_base_type

    • BUGFIX: DWARF: when we spot compressed DWARF data (unsupported at the moment), let the user know about it, and prevent loading of erroneous data

    • BUGFIX: ELF: IDA could fail to load symbols from ELF files with .tbss sections

    • BUGFIX: ELF: IDA would attempt to apply relocations while debugging elf files

    • BUGFIX: ELF: IDA would no longer detect .init/.fini sections as init_proc/fini_proc

    • BUGFIX: ELF: image base address of ELF files was not aligned down to the memory page size

    • BUGFIX: fixed definition of FF_VAR so old scripts at least do not die (this bit is not used anymore)

    • BUGFIX: fixed interr 1199 that would be triggered if the byte at 0xFFFFFFFD had a name, value 0xFF and belonged to a code segment and the final pass of analysis was requested

    • BUGFIX: fixed potential buffer overflows when reading config files

    • BUGFIX: functions could be incorrectly truncated when autoanalysis deleted instructions at the end

    • BUGFIX: GDB: IDA would not show any registers for GDB stubs reporting unavailable registers

    • BUGFIX: IDA could ask to accept the EULA at every launch if the user name included non-ASCII characters

    • BUGFIX: IDA could display a bogus error message about "missing processor module sn_0_XXXXXX" when launched from a shortcut on OSX

    • BUGFIX: IDA could INTERR(40498) if idaapi.read_selection() was called with no arguments on an empty database

    • BUGFIX: ida.cfg: fix documentation about cultures (we don't consider Unicode blocks as cultures anymore; we use the 'Block_' prefix for those)

    • BUGFIX: IDAPythin: dbg_get_thread_sreg_base() could pretty much always fail

    • BUGFIX: IDAPython's Appcall.Consts would return 0 if a constant doesn't exist, which can cause hard-to-figure-out issues later

    • BUGFIX: IDAPython/bc695: get_name(from, ea) was not working anymore

    • BUGFIX: IDAPython/bc695: ida_kernwin.get_highlighted_identifier() was broken

    • BUGFIX: IDAPython/bc695: idc.ASCSTR_LEN2 & ASCSTR_LEN4 contained an incorrect value

    • BUGFIX: IDAPython/bc695: idc.DecodeInstruction was not working anymore

    • BUGFIX: IDAPython/bc695: idc.GetProcessorName() was broken

    • BUGFIX: IDAPython/bc695: idc.isEnabled was not working

    • BUGFIX: IDAPython/bc695: idc.MakeStr() was broken

    • BUGFIX: IDAPython/bc695: idc.SegStart, idc.SegEnd and idc.SetSegmType would raise AssertionError's in case the EA was not mapped to a segment

    • BUGFIX: IDAPython/bc695: IDP_Hooks.auto_queue_empty() was not called anymore

    • BUGFIX: IDAPython/bc695: op_offset() was not capable of working with an ea_t as a first argument

    • BUGFIX: IDAPython: hex-rays 'citem_t' (and subclasses) equality was not properly implemented

    • BUGFIX: IDAPython: place_t::generate was not usable()

    • BUGFIX: IDAPython: source wouldn't compile with Xcode >= 9, because comparisons between a pointer, and the value 0

    • BUGFIX: IDAPython: the low-level get_numbered_type() was unusable

    • BUGFIX: IDAPython: UI_Hooks.get_chooser_item_attrs() was not available

    • BUGFIX: idc snippets with if/for/while as the last statement but without {} for the body could not be executed

    • BUGFIX: IDC/IDAPython: AF2_DORTTI definition was missing

    • BUGFIX: idc: macro Batch() was unusable

    • BUGFIX: immediate search would fail to find a multi-byte value in an unexplored area for big-endian processors

    • BUGFIX: it was impossible to reopen an i64 file that was created from a crash dump

    • BUGFIX: objc plugin could cause IDA to INTERR(984) when loading iOS 11 dyldcaches with ASLR

    • BUGFIX: opening a binary file would automatically add its .idb file to the recent file list, even w/o the user ever saving it

    • BUGFIX: pc: frame pointer delta in x64 PE files could be wrong in some corner cases

    • BUGFIX: PE: .NET files with assembly references whose hash index was 0xFFFF, would cause IDA to show unexpected warnings

    • BUGFIX: PE: handle more correctly some peculiar PE files (e.g. section headers overlappping optional header)

    • BUGFIX: Renaming a register to the same name but different casing, wouldn't work (but renaming it to something unrelated and then to the differently cased name mentioned before, would work)

    • BUGFIX: SDK: get_8bit() would fail returning all but the lowest octet for non-8-bit bytes at the end of segments

    • BUGFIX: starting IDA w/o any database, opening "File > Script command..." and selecting 'Python' could cause IDA to crash at exit-time

    • BUGFIX: SuperH: IDA could produce interr 544 when analyzing code with turned off "Convert immediate loads" option

    • BUGFIX: Suspending x64 ELF processes at process start (or entry point) could fail due to ASLR

    • BUGFIX: tricore: ignore bits of reserved field in in the instructions LOOP, LDMST, PACK, MOVH.A (some compilers put non-zero bits there)

    • BUGFIX: UI: "Jump to new window" could cause the navigation bar's cursor to be off

    • BUGFIX: UI: "View > Toolbars" wouldn't reflect the current (advanced VS basic) state of the toolbars display

    • BUGFIX: UI: custom shortcuts for "UnHideAll" action wouldn't work anymore

    • BUGFIX: UI: disabling disassembly colors wasn't working anymore

    • BUGFIX: UI: IDA could crash if quick search was used on the left-hand list of the dialog used to batch-apply structure offsets to a selection in disassembly

    • BUGFIX: UI: if the first enum in the "Enums" window is empty, IDA could keep replicating its 1st line when scrolling up

    • BUGFIX: UI: in user graphs, setting the font would fail recomputing the graph rectangles size, resulting in clipped text

    • BUGFIX: UI: on OSX, loading a desktop that was saved while in a maximized state, while already in a maximized state, would cause the window to become un-maximized

    • BUGFIX: UI: restarting IDA after its UI was set to "Advanced mode", would show "Basic mode" selected in the menu

    • BUGFIX: UI: the listing views's status bar entries font became proportional, making it harder to quickly scan for some addresses when navigating around

    • BUGFIX: UI: the result of 'get_screen_ea()' could be outdated when navigation was being performed in the graph view

    • BUGFIX: UI: upon moving the dock around, Register views' foreground color could be lost

    • BUGFIX: UI: using "Function offsets" address representation, would cause the first instruction of each function to be offset by one space to the right

    • BUGFIX: UI: when editing bytes in the hex view, pressing "Escape" would leave the "Apply changes" action available

    • BUGFIX: UI: when setting the default encoding for string literals, if one had to add an encoding to the list of encodings known to IDA, that encoding wouldn't be automatically selected right after being added

    • BUGFIX: UI: changing the font on a "Registers" view, would cause the background to turn grey

    • BUGFIX: UI: ctrl-o could cause a crash on OS X

    • BUGFIX: UI: during debugging, right-clicking on a "comment" in a registers view, would show a popup menu with a non-default background color

    • BUGFIX: UI: fixed a bug that allowed to set the number of columns in a hexview to zero (such a value caused a very long loop in IDA, seemingly freezing it)

    • BUGFIX: UI: hexview: on non-8-bit bytes architectures, moving on unmapped addresses on a line (e.g., because the segment ends before the end of the line), could cause the line to be shifted

    • BUGFIX: UI: hexview: with exotic architectures (e.g., PIC with 14-bit bytes), IDA could show only partial text contents in the right-hand-side of the view

    • BUGFIX: UI: hexview: with non-8-bit bytes, navigating in the right-hand-side text part of the hexview would yield erroneous addresses

    • BUGFIX: UI: IDA could crash if invalid regular expression patterns were input in filters

    • BUGFIX: UI: IDA could fail to restore attributes of window "Enum" saved by version 6.95

    • BUGFIX: UI: in configuration files, invalid directives (i.e., bad keyword) could be reported with an erroneous line number & text

    • BUGFIX: UI: In the "Binary search" dialog, searching for 'Unicode strings' (i.e., data that's laid out as UTF-16) could fail if the input string contained non-ASCII characters

    • BUGFIX: UI: Launching a process through "Debugger > Run" with the "Stop at entry point" option checked more than once, could cause the process to not stop the 2nd (and subsequent) times

    • BUGFIX: UI: On Linux & OSX, opening the "Xrefs" window (i.e., "x") shortcut on a function whose name is > 255 characters, could cause the pseudo-registry file to be reported as being corrupted (although it was not)

    • BUGFIX: UI: On Windows & OSX, unfocused tabular views with a search filter & a selected entry, could show that selected entry with a white-ish text, on a white-ish background, making it rather difficult to read

    • BUGFIX: UI: OSX: in the "ARM specific options" window, the "Current architecture" description was only partially visible

    • BUGFIX: UI: pressing Ctrl-Down in the graph view would crash ida if there was no selected node

    • BUGFIX: UI: selecting text via double-click in the Output Window was broken with empty databases

    • BUGFIX: UI: some enum members could be missing in the Enums window output

    • BUGFIX: UI: some numeric input fields in dialogs were too narrow

    • BUGFIX: UI: text version would die with internal error 40172 when clickng on "File" and "Folder" buttons in dialogs

    • BUGFIX: UI: the current snippet was not selected when opening a code snippet window;

    • BUGFIX: UI: the default 1 byte-per-unit encoding wasn't used when printing characters resulting from evaluation of expressions (i.e., shortcut '?'))

    • BUGFIX: UI: the selection was not cleared after deleting several selected segments in "Program segmentation"

    • BUGFIX: UI: When in the "Structures" window, pressing <Enter> on a structure member, wouldn't add an entry into the location history (and thus 'Escape' wouldn't return no the previous location)

    • BUGFIX: UI: When printing terse structure literals, IDA could duplicate display of some of the first bytes

    • BUGFIX: UI: When starting IDA without an IDB, and running the debugger using "Debugger > Run", possibly-set debugging options would be lost (e.g., debuggee would be stopped at entry-point, instead of the requested process start)

    • BUGFIX: UI: With exotic architectures (e.g., PIC with 14-bits bytes), IDA could slow down a lot when generating disassembly

    • BUGFIX: UI: XMM registers tooltips during debugging were broken

    • BUGFIX: UI: hexview: all but the last octet of a non-8-bit byte sitting at the end of a segment, wouldn't show in the text contents in the right-hand-side of the view

    • BUGFIX: UI: when autoanalysis was disabled, the indicator could display wrong info

    • BUGFIX: windbg: ida would die with interr 1491 when debugging 32-bit windows kernel

    • BUGFIX: windbg: recent versions of WinDbg couldn't be loaded by IDA because some dependencies couldn't be resolved

IDA 7.0