What's New
What's new in IDA 7.1.180227
What's new in IDA 7.0.171130 (SP1)
What's new in IDA 7.0.170914
What's new in IDA 6.95.160808
What's new in IDA 6.9.151221
What's new in IDA 6.8.150413
What's new in IDA 6.7.141229
What's new in IDA 6.6.140604
What's new in IDA 6.5.131217
What's new in IDA 6.4.130306
What's new in IDA 6.4
What's new in IDA 6.3
What's new in IDA 6.2
What's new in IDA 6.1
What's new in IDA 6.0
What's new in IDA 5.7
What's new in IDA 5.6
What's new in IDA 5.5
What's new in IDA 5.4
What's new in IDA 5.3
What's new in IDA 5.2
What's new in IDA 5.1
What's new in IDA 5.0
What's new in the IDA 4.9 Service Pack
What's new in IDA 4.9
What's new in IDA 4.8
link to 4.7 what's new
What's new in IDA 4.6
link to 4.6 what's new
What's new in IDA < 4.6
link to < 4.6 what's new
What's new in IDA < 4.0
link to < 4.0 what's new
Major Features
- 'instant debugger': the debugger can
be launched and a process started without a database. This feature
is available locally and remotely and allows the debugger to be attached
to any running process in the system. IDA can be used as the default
system debugger.
- Remote 64-bit debugger for MS Windows 64 running
on AMD64/EMT64. IDA itself runs in 32-bit mode while the debugger server
runs in 64-bit mode to launch and debug 64-bit applications.
- full type system support for the ARM processor.
IDA supports the function calling conventions and comments function
parameters in the same way as it does on PC. The ARM module has been
significantly improved: see a list of all the ARM specific enhancements
below.
- Wizard-like interface to load new files.
IDA assists the user in the initial load process by asking relevant
questions about the file. This interface is configurable with XML files.
Processor Modules
- new processor: Analog Devices ADSP 218x (Professional
version)
- ARM: "no automatic arm-thumb switch" option
has been added.
- ARM: conditional instructions modifying SP are not
taken into account while tracing SP.
- ARM: ADDAL PC,... always stops the execution flow.
- ARM: EPOC imported function glue code is recognized.
- ARM: IDA creates ALIGN directives before and after
jump tables in the thumb mode.
- ARM: IDA displays jump table comments for all types
of jump tables.
- ARM: IDA knows about function calling conventions.
- ARM: IDA propagates the T bit for all code xrefs; since
there are many ARM/THUMB switches now, superfluous directives to switch
the mode are not displayed.
- ARM: R_ARM_PC13 relocation type is supported.
- ARM: a function consisting of MOV PC,LR in the thumb
mode is recognized as a nullsub.
- ARM: for jump targets: do not automatically switch
to another mode if there is already an instruction disassembled in
the current mode.
- ARM: it is possible to modify the operand type of indirect
operands like '=xxx'.
- ARM: jump table recognition has been improved.
- ARM: some BL instructions are treated as simple B (not
as function calls): if the target destroys the LR in its first basic
block.
- ARM: thumb mode EPOC apps are recognized and
analyzed properly.
- ARM: IDS files for MFC.
- ARM: Windows CE types are added.
- ARM: lots of imrpvement in function creation.
- ARM: new IDS files.
- ARM: updated flair signatures.
- IBM PC: "test x, y" operands are reversed
if x and y both are registers. For some obscure reason all assemblers
reverse them.
- IBM PC: alternative collapsed output of structures.
- IBM PC: better detection of the function frame size.
- IBM PC: emulator knows about functions starting with
mov rX, rX
- IBM PC: for instruction "lea xxx, ds:###" the
second operand is automatically converted to an offset if it makes
sense.
- IBM PC: imul instruction always has signed immediate
operand because unsigned negative operands are compiled incorrectly.
- IBM PC: int xx instructions generate xref to low addresses
only in the binary files.
- IBM PC: support for TASM ideal mode has been added.
- IBM PC: parameters of linux system calls for pc are
commented (there are some problems with some syscalls, like socket())
- IBM PC: better handling of the _alloca_probe() function:
ida does not blindly delete the stack frame of functions using the
__alloca_probe function - this might lead to more unreferenced variables.
- IBM PC: __chkstk is recognized as a function changing
the stack (as __alloca_probe).
- MC68K: immediate instruction operands are represented
as unsigned numbers by default (with some exceptions)
- 68K: better treatment of pea/lea instructions (please
reanalyze existing databases!)
- PPC: added support for subi/subic instructions based
on TOC/segment registers
- 80196: changing to processor type to 80186NP makes
the segment registers available immediately (no need to reload the
database)
- DSP56K: many nops in a row are not disassembled automatically
- H8/500: considerably improved the analysis, fixed bugs
- better handling of segment registers for ARM, M7700
File Formats
- Wizard-like interface to load new files into the database.
- COFF: Windows AMD64 files are supported. Relocation
information is not handled since documentation is not available.
- COFF: added support for Window64 object file relocations.
Since there is no documentation on the topic, some relocation might
be incorrectly handled
- COFF: improved file format detection for zero filled
files
- COFF: labels with '$' have less priority than normal
names
- COFF: added support for ARM THUMB files (relocations
are not supported yet)
- ELF loader allows to load files for unknown machine
types
- ELF: AMD64 .got relocation types are handled (.plt
is not handled yet)
- PE: crippled files with unusual information about the
PE header can be loaded into the database with the file header./LI>
- PE: in the manual mode IDA rounds up the exact segment
size in the header to the file alignment.
- PE: new option: create flat group. The segment registers
will use flat group instead of the real segment names.
- The default value is specified with the PE_CREATE_FLAT_GROUP
parameter in the IDA.CFG file.
- PE: files with partially corrupt relocation table can
be loaded into the database.
- PE: ida can load truncated import tables.
- Palm Pilot program analysis is improved (recognize
pea/rts sequence, some pilot debug info, handle pea in a special way
to create more code)
- Palm file loader uses 68K universal emulator by default.
- binary files: by default ida creates 32-bit segments
if the input file is bigger than 64K
- file loaders do not exit() to the operating system
in the case of problems with the input file but rather stop the loading
process and return to ida
- the analysis of MS DOS 32-bit extender files has been
improved
Kernel Enhancements
- dump database to idc': local names are saved to the IDC file
- added support for __declspec(align(#)) keyword in the type system.
- bitwise negation works for structure members.
- checkarg knows about nested structures (yh)
- coagulation algorithm has been improved.
- flirt: tiny (less than 8 bytes) unnamed library functions are ignored
- frame pointer delta has been introduced. This delta is useful for
functions with the frame pointer pointing to the middle of the stack
frame. Usually the frame pointer points either to the top or to the
bottom of the frame. However some new compilers set the frame pointer
midway. IDA knows about IBM PC function prologues with such frames
and automatically determines the frame pointer delta. For other compilers/processors,
the user can specify the detla value in the 'edit function' dialog
box.
+ ida uses new memory allocation scheme; the old memory allocation
algorithm was too conservative in the memory use.
- if the structure offset is equal to the structure size, then it is
displayed as "size struct_name".
- it is possible to include local names in the output map file.
- new environment variable: IDAUSR. This variable specifies the directory
with the user-specific settings.
- speed: ida tries to create function tails only if there is a reference
from a function to a non-function.
- structure variables can be displayed in the terse one-line form if
the target assembler supports this representation
- new output file type: assembly include file.
- added conditional expressions to the 'idsnames' file til selection.
Now IDA loads appropriate ntdkk file depending on the input file bitness.
- the default offset type depends on the current item size (before
only the current segment bitness was used to determine it).
- type system: added support for __declspec(align(#)) and __unaligned
keywords.
- FLAIR utilities are updated to support AMD64 files; Visual
C++ v8.0 signature files are added.
- TIL files for AMD64 are added; tilib is improved to handle constructs
in the new header files.
- combined vc6win.til and vc6winr.til - vc6winr.til does not exist
anymore.
- the use the -p switch is permitted for old databases.
- new analysis option: create data offsets when possible. This option
leads to more aggressive offset creation which improves the disassembly
in most cases.
- IDA does not comment function call parameters referencing to strings
because such comments make the string invisible at the call site
- __imp_ prefix is ignored in the type libraries.
- pointers to functions are supported in the parameter propagation;
trying to apply a data type to an instruction generates an error message.
- when creating a thunk function, IDA copies the target prototype to
the thunk.
- in the type libraries, [email protected]## is the same as 'name' (visual c++
uses both names to denote the same function)
- more aggressive parameter type propagation.
- better algorithm to create data arrays.
SDK and IDC
- IDC: added MakeNameEx() function to have full control
on renaming program addresses.
- SDK,IDC: added functions to manipulate
XML values in the internal XML tree.
- SDK: IDC functions can be called
without a database. Built-in functions have a special flag EXTFUN_BASE
telling that they must be called with an open database.
- SDK: SetFileExt,
FileExt, hasExt functions are renamed as set_file_ext, make_file_ext,
get_file_ext. Additional parameters to check buffer overflows are added.
- SDK:
added a possibility to tell 'this is definitely not a thunk function'
in the ph.is_jump_func notification for the processor modules; this
leads to the slight API change which should not pose any problems with
the existing modules.
- SDK: added more segment alignment codes.
- SDK: added
netnode::end() and netnode::prev() functions.
- SDK: additional parameter
for parse_type() - the name of the declared variable.
- SDK: bit masks
are supported by get_name_value().
- SDK: find_error(), find_notype(),
tag_skipcode() functions are added.
- SDK: functions dealing with the
signness and bitwise negation are revised; now the bitwise negation
has a bit in the flags which allows to use it in the structure and
enum definitions.
- SDK: gen_idc_file() is removed; use gen_file() instead.
- SDK:
introduced 'stack variable scaling factor'. Used for processors which
implicitly scale stack variable references, e.g. tms320c55.
- SDK: introduced
the notion of 'ephemeral' segments: debugger segments which are not
loader segments. The kernel does not analyze ephemeral segments.
- SDK:
introduced the notion of a 'loader' segment. All segments created by
loaders have this attribute.
- SDK: is_32bit_func() is replaced by get_func_bitness().
- SDK:
leading_zero_important() function has been added.
- SDK: only debugger
segments can be created when the debugger is active. you can use change_segment_status()
to convert debugger segments to regular segments afterwards.
- SDK:
ph.kernel_config_loaded callback has been added - for plugins who want
to set their own config settings
- SDK: removed the ph.align_size()
callback from the type system callbacks.
- SDK: shortened some field
names in the debugger related structures (thread_id -> tid, etc).
- SDK:
the string list is available to plugins.
- SDK: new function set_sreg_at_next_code();
ph.setsgr parameters are changed.
- SDK: introduced AS2_COLONSUF for
assemblers with :xx suffixes in the address expressions.
- SDK: renamed
'analyse' -> 'analyze' in all function names.
- SDK: added auto_queue_empty
callback.
- SDK: choose_ioport_device() has no default parameters
(so we have a compilation error instead of wrong runtime behaviour).
- SDK:
get_member_ti() accepts NULL as the buffer.
- SDK: interface to the
file loader has been changed. Instead of FILE *, now we use linput_t
* (see functions in diskio.hpp). linput_t allows to work with local
and remote files.
- SDK: modified the interface of many functions to
avoid buffer overflow vulnerability problems.
- SDK: new function sanitize_file_name()
- SDK: renamed
cmangle_name() -> decorate_name()
- SDK: splitSRarea() has been removed.
Use splitSRarea1()
- SDK: added a comment about the necessity of using
the invalidate_... functions from the debugger notification callbacks.
- SDK:
added func_t * to the display_flow_graph()
- SDK: added qisdir()
function.
- SDK: added qvector and qstring template classes to
IDA API.
- SDK: method to obtain the debugger
description has been changed: now the init() function of a debugger plugin must fill
the 'dbg' global variable if it wants to stay in the memory; the run()
method is not used for the debuggers anymore
User Interface
- new command: take memory snapshot.
- new command: 'generate
include file'. 'generate assembler file' does not generate the type
declarations anymore.
- new commands: find error operand and find all
error operands. these commands look for operands in red; 'search for
immediate' has new mode: look for untyped immediate values.
- 'disable
addresses' checkbox in the 'edit segment' dialog is taken into account
even if 'move adjacent segments' is on.
- added a warning message telling
that IDA does not handle relocation information of Mach-O files (in
other words, external references in Mach-O object files are not resolved).
- added
checkbox to modify 'loader segment' attribute.
- added separate menus
to run and attach to processes with no existing database (local & remote).
- arrows
to/from locations with huge number of xrefs are displayed fast.
- faster
display of data items (we do not analyze them repeatedly anymore).
- graphing
commands are available in the text version; the GRAPH_VISUALIZER parameter
is moved from idagui.cfg to ida.cfg.
- gui: added an option to confirm
the 'undefine' command only if there is a selected area.
- gui: command
line switches are used only for the first database.
- hidden areas have
short comment with the current address by default, words "[PRESS
PRESS + TO UNCOLLAPSE]" are not added to the
comment.
- if ida is launched with the file name in the command
line and the user decided not to load it, then ida quits immediately.
- mark
location: the name of the marked location is proposed as the default
mark description. up to 1024 locations can be remembered.
- the notepad
now uses the same font as the disassembly views.
- the strings window
is available in the text version.
- text: multiple selections
are supported in various lists.
- text: the text version uses
the system clipboard under MS Windows.
- tv: better handling
of the keyboard input under NT; fixed a bug with macro_ready;
window resizing (YH)
- tvlinux: xterm-scokey supports Shift-PgUp/Shift-PgDwn
key combinations.
- ui: eventually create 64-bit words by pressing D
if the input file contained 64-bit segments.
- ui: increased the limit
on the number of marked locations to 1024 (see the next Changelist!)
- ui: it is possible to edit the type of data items;
the item must have a name in order to have a type.
- ui: remembers the
last settings used in the 'make array' command.
- WINDIR parameter
is back in the gui version.
- 'Jump to new hex window' command added
in disassembly view popup menu for addresses and operand values
- 'log
breakpoint instructions' controls all breakpoint instructions, not
only the breakpoints not set by the debugger.
- CONFIRM_SETFUNCEND_COMMAND
config file parameter makes IDA to ask for a confirmation of the
'set functon end' command.
- library module sizes in the library
display are shown in hex with the leading zeroes - makes it possible
to sort by size.
- txt: multi-column lists with wide last column
(like list of strings) can be scrolled left to see the whole strings.
- txt:
text version always asks for a confirmation of 'undefine' command.
- ui: Shift-F12
opens the strings window in the text version (the same hotkey
as in the gui version).
- ui: the default button for the 'undefine'
command confirmation dialog box is 'no'
Debugger
- debugger: -r switch to run IDA and debugger without
a database.
- debugger: handle int3 SEH exceptions.
- debugger was
not active if the PE subsystem was not Windows. Now unknown subsystems
can be debugged too.
- debugger knows about fs:xxx references (ida
api has changed!); the debugger reference view has been improved
(text mode)
- debugger segments are created in the collapsed form.
- debugger:
'Library unloaded' events display the full path to the unloaded DLL
if available (exactly like 'Library loaded' events).
- debugger: IDA
automatically detaches from a previously attached process if the
user closes the database.
- debugger: network errors are handled
properly and do not lead to ida crashes.
- debugger: the debugger
server checks the interface version number upon connection to ida
interface.
- debugger: changed the default background color.
- debugger:
added a button to reload the exceptions table from the exceptions.cfg
file.
- debugger: exception handling is improved, added exceptions.cfg:
the exception handling information for new databases; the exception
info originates from this file and is passed to the debugger module.
- ida
can be used as the system just-in time debugger in windows.
- it
is possible to delete problems directly from the 'choose problem'
modal dialox box.
- text debugger: 'set current ip' and 'show application
screen' commands have been added.
- text debugger: added possibility
to save/restore the application screen so that ida and the debugger
application can share the same screen (YH).
- text debugger: display
the current operand value/address
Bugfixes
- 'dump to database to idc' was producing incorrect
Function_###() functions.
- 'reload input file' of a database with the
resources section of a PE file would not reload the resources section.
- 'search for void' was not stopping at the correct
operand in the text version.
- 16 and 8 bit offset expressions are calculated
with appropriate arithmetic.
- 6812: memory mapping of data references
was sometimes wrong; other modifications.
- 68K module was incorrectly
tracing SP for some instructions.
- 8051: addressing to FSR and RAM
has been corrected.
- AIF loader was not loading properly big endian
files.
- AVR uses OOFW_8 instead of OOFW_IMM+dt_byte to represent
numbers because dt_byte has 16 bits.
- AnalyseArea(0, BADADDR) was not
working.
- COFF loader could reject some correct files.
- Ctrl+V
was not working in the notepad.
- IBM PC movmskps instruction was disassembled
incorrectly ; movddup, movsldup, movshdup instructions were unknown;
(everything due to intel manuals from 2003); only mm form of pmulhuw
was disassembled.
- IBM PC: sldt/str instruction have 16 bit operands
because 32 bit operands are rejected by the existing assemblers. Intel
docs say that these instruction may have 32-bit operands.
- IDA complains
about patching relocation bytes only if they really change their values.
- IDA
could crash if a function in the navigation stack was destroyed and
the user decided to return to it.
- IDA could spend huge amount of time
refreshing the navigation band when loading some files.
- IDA was too
agressive in function tail creation.
- IDC: if(...) {} could not be
executed.
- IDC: the definition of function with long names were
properly parsed but it was impossible to call them properly.
- MC68K:
IDA was not taking into account that lea xxx(sp),sp instruction modifies
the stack pointer.
- MC68K: pea/lea instructions with offset operands
were not creating xrefs; fixed a small typo in processor specific options
dialog box.
- MS DOS overlayed exe files were incorrectly assigned
the small memory model.
- PPC module was incorrectly using general registers
instead of floating point registers in some instructions.
- PPC: IDA
was too aggressively creating xrefs to lis/addi pairs.
- PPC: do not
truncate TOC offsets to 16 bits anymore.
- PPC: lfsx first operand is
a floating point register.
- Palm pilot module was using big endian
mode for all processors (and the base == 0 regardless of the user settings).
- SP
was not properly traced for F2MC, MC6816, TMS320C54, TMS320C55.
- TMS320C3
module could crash on some opcodes.
- TMS320C54 had several problems:
wrong data type of memory operands; (DP<<&)+Smem operands
were displayed incorrectly; wrong xref type of macp, macd instructions.
- TMS320C54:
stack variables were not correct because the return address size was
not specified for the module.
- access violation during analysis if
the data segment was not loaded (manual load; refuse to load the .data
segment).
- access violation in the following case: start idag
with a wrong file name in the command line, press cancel on the file
selection dialog and close ida by pressing the 'close' window cross.
- autoanalysis
queue was losing requested addresses in some rare circumstances.
- collapse
the current segment only if the cursor is at the segment start; this
is done to avoid segment collapsing when the user presses '-' inadvertently.
- comhelper
plugin was accepting only "_GUID" as the structure
name.
- compiling an idc file from a running idc script could
pose problems.
- debugger register views were not wide enough.
- debugger:
IDA was sometimes returning wrong paths for loaded DLLs - we now try
two different technics to determine the full DLL path, and finally
return the export name from the DLL in case of failure.
- debugger:
in some cases it was impossible to manually detach/terminate a process.
- debugger:
attaching to a remote process several times might cause problems.
- debugger:
modifying a register value inside an IDC condition was not working
properly for multi-threaded applications.
- debugger: stepping over "repne
jmp short label" would lead
to running the application.
- debugger: the EFLAGS register was not
properly updated after the user manually modified a CPU flag.
- debugger:
when switching the main registers window from MDI to desktop/on top,
some controls were disappearing.
- del_cref() might delete a data, not
only instruction if there were no references to the target address.
- displaying
hints to collapsed hidden areas could hang ida for long time.
- double
clicking in the list of found items would change the position in the
disassembly view but would not switch to it, confusing the user.
- en
masse operations with the value range would not affect non-void operands.
- function
addresss iterator might return a wrong address for some special cases
(for functions with several tails and a condition which is not satisfied
for some for them). In particular, the list of xrefs to stack variables
might be wrong if the function had several tails without any stack
variables in them.
- guess_type() could crash if the address of a pointer
referencing to itself was passed.
- hopefully the problem with persistent
'please wait' box is fixed.
- ida could loop infinitely if a function
tail would call itself and could not be converted to a function.
- if
IDA has been minimized, chaning the desktop color would crash IDA.
- in
PE files IDA thought there was a relocation attached to the first address
of a segment with relocations. This might have lead to the treatment
of entry points at the segment starts as non-function exports but as
data exports.
- it was impossible to cancel an offset operand by pressing
'o' in some cases.
- it was impossible to detach from a process in the
suspended state (process would crash).
- it was impossible to disassemble
files with the 'reg' extension.
- it was impossible to load resources
of LX files.
- it was impossible to select one line address range
in the text version.
- it was impossible to set a software breakpoint
in a readonly page.
- it was impossible to specify a function prototype
to insert/shift arguments + the type of function arguments in the stack
frame is adjusted when modifying the function prototype.
- it was impossible
to use any keystrokes in the cpu register window is the focus was on
a register value field. Now it reacts only to hex values and backspace.
- item
types are displayed regardless of how the demangled names are displayed.
before they were not displayed if demangled names were displayed in
the listing as names (not as comments).
- linux debugger was not closing
file handlers before launching the debugged application.
- linux version
was creating ~/.idapro with wrong permissions.
- linux: information
about hidden messages is saved in the user directory, not in ida directory.
- linux_stub
file was missing which made impossible to debug linux programs from
ms windows.
- locret_ labels are generated correctly for wide byte
processors with high byte first.
- message boxes could not be displayed
recursively.
- output map files were wrong after rebasing a PE file.
- pelf
was not aware of module names separated by '\n'
- qbasename() does not
crash on NULL (it seems that it was designed not to crash but there
was a bug).
- rebasing the database would lead to the corruption
of the function list.
- references to stack variables at offset 0 from
esp were not listed in the xrefs window.
- removed minor memory leaks
(occuring in some cases for IDC expressions returning a string).
- renaming
a variable with a dummy name to which there was a reference from a
manual operand would leave the manual operand unchanged.
- some key
combination in the text version were not available.
- some object files
from libraries could not be loaded.
- structure definitions were not
padded correctly at the end.
- structure pathes were one byte too long
in the case of normal members (not really important); added a comment
about structure pathes in nalt.hpp.
- structure sizes were not properly
padded.
- temporary input file from an archive was not deleted
at the end.
- text mode debugger would have a garbage character in
the line prefixes of continuation lines.
- text version was not handling
properly database rebasings.
- text version: displaying a wait box does
not change the cursor position in the input line.
- the 'Flow chart'
command was broken for a selected code area.
- the 'IDC scripts' toolbar
was disappearing when loading scripts and was not restored properly.
- the
'Lock highlight' button was not properly refreshed.
- the first operand
of the 68K moveq instruction should be signed extended to 32-bit.
- the
strings window was empty at the file loading time if a hex view was
open.
- tv (text version): it was not possible to use the clipboard
in the notepad.
- wide byte data array might be displayed incorrectly.
- windows
gcc library was wrong in the sdk.
- wrong "variable %s not found" message
could appear after running an idc script.
- wrong ARM-THUMB switching
after some BX instructions.
- z180 configuration file had wrong definitions.
- "reset
hidden messages" was not resetting the hidden welcome
box.
- ARM could make the T register value 2 or even 3
- H8/500
rtd instruction was disassembled incorrectly.
- a memory leak in the
lexical analyzer is fixed.
- if the user zooms in on the navigation band
and clicks on the left arrow and holds the left mouse button to scroll,
and moves the mouse cursor to the left outside of the navigation band
window (while holding the button), the band starts scrolling to the
right instead of to the left.
- in some cases IDA would not undecorate
the function name for the 'set type' command.
- trying to disassemble
a file in the root directory undef linux would crash IDA.
- when loading
.h files IDA was not decorating the function names.
- 'Clear trace'
and breakpoints menu items in popup menus of the Trace, Entry points,
Functions & Names windows could be duplicated.
- IDA could crash
if a stack view was open, then the corresponding function was deleted
and the user tried to create a new stack varaible for the dead function.
- IDA
could hang trying to guess function types for HPPA.
- IDA could undefine
items in the imports segment trying to apply type information; now
items in the imports segment are not undefined.
- Jump commands were
not available in popup menu for operands pointing to an undefined value.
- M32R
displacement operands were truncated during display; addi and other
instruction operands are signed by default.
- SDK: debugger: calling
run_requests() from a debug event handler was processing waiting step
requests too slowly (in fact during idle time).
- adding/deleting tils
always refreshs the disassembly view.
- fixed a memory leak in the name
handling.
- fixed a memory leak with til files.
- h8/500: clr.w
@-sp was not modifying the stack pointer; slightly changed the output
of fucntion headers (always output far/near keyword).
- hint for the "create
flat group" checkbox of the 'load
file' dialog box was incorrect in the gui version.
- it was not possible
to jump to a location if the cursor was just behind the end of the
line on the screen.
- the xrefs list would not be immediately refreshed
after changing the xref parameters using the Options menu.
- there
was a GDI resource leak in the colors dialog box.
- txt: open
the strings window without closing it would make it empty.
- while
deleting debugger segments, IDA could delete the first non-zero
flag of the next segment.