# IDA 8.2

**IDA 8.2.221215** ***December 15, 2022***

## IDA 8.2 Highlights

### 32-bit support in IDA64

As another step towards sunsetting 32-bit IDA which we started with 8.1, 32-bit debugging and decompilation is now possible in IDA64. For decompilation, you need to have a corresponding 32-bit decompiler license. IDA Home and IDA Free now also support decompilation of 32-bit binaries using the cloud decompiler.

![32-BIT decompiler in IDA64](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-548d4e9916657b40c5b429677e32f3e53e9a1c46%2Fdecompiler32.png?alt=media)

### Processor module improvements

* Xtensa module has been extensively reworked with the addition of various optional and macro instructions (number of supported instructions almost tripled) Most common switch patterns are recognized and marked up.

![Xtensa switch and options](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-0d43aaf8d9126df93bb365c4ab16a7f89e753dd9%2Fxtensa.png?alt=media)

Stack variables are now tracked and created in functions.

![Xtensa stack vars](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-9ba8dc6b6b78174a226c088d0d3dfe2c46e95599%2Fxtensa_stack.png?alt=media)

* RISC-V module can now disassemble vector extension instructions.

![RISC-V Vector instructions](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-9fef7ce2d39acab96df977167c8727867aab863f%2Friscv_v.png?alt=media)

### Swift

Metadata structures generated by the Swift compiler are parsed, fomatted and labeled. Some of the simple types which can be represented in IDA are imported into Local Types.

![SWIFT formatted metadata](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-34342538e67a7d6996ec5e4bbbaa0c2989ec8f0a%2Fswift_metadata.png?alt=media) ![SWIFT formatted metadata 2](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-574cc532be1d477b893fcb59a31677206e271154%2Fswift_metadata2.png?alt=media) ![SWIFT imported type](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-d0ec953ce46bf6e418e3aed4682cd775179e8b1a%2Fswift_type.png?alt=media) ![SWIFT imported struct](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-cc4571fa5f72428a7d98aa71dc326f4ac1c090f3%2Fswift_struct.png?alt=media)

### picture\_search

A new plugin which can search for and display images(pictures) embedded in the current binary.

![Image search plugin](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-3a8d062ac33f6b3535d44063fe73e5b3bad433ed%2Fpicture_search.png?alt=media)

### UI candy

CSS-based IDA themes now support background images in many of IDA's views

![IDA custom background](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-968b7361ea4711a95af572f5b236fa4e7f88f26a%2Fida_bg.jpg?alt=media)

## Full list of changes and new features:

### IDA Teams and Lumina

* lumina: added support for recent MySQL versions which default to TLS connection
* teams: the password for Vault is now saved securely in the OS-specific keychain
* vault/lumina: allow any local MAC address to match the one specified in .lic file

### Procesor modules

* XTENSA: added support for many additional instructions, registers, stack variables (thanks to Zak Escano)
* XTENSA: added support for many standard switch patterns (thanks to Zak Escano)
* XTENSA: detect used ABI (CALL0 or windowed)
* RISC-V: added support for vector extension instructions
* TRICORE: decode FTOHP and HPTOF instructions from TC1.6.2

### File formats

* macho: added USE\_SEG\_PREFIXES option to macho.cfg, which instructs IDA to use the Mach-O segment name as a prefix for IDA segment names, e.g. "\_\_TEXT:\_\_text"

### FLIRT / TILS / IDS

* FLIRT: added signatures for vc1434 (Visual Studio 16.11)
* FLIRT: added MFC signatures for vc1434 (Visual Studio 16.11)
* FLIRT: added signatures for icl 222 (Intel C++ 2021.2)
* FLIRT: added signatures for icl 2221 (Intel C++ 2021.2.1)
* TIL: added a type library for Aarch64 (ARM64) UEFI 2.5
* idaclang: added "--idaclang-mangle-format" switch. it works similarly to the -G option for tilib when the user wants to set a custom name mangling format

### Standard plugins

* PDB: on Windows, enabled fallback mode by default so that MSDIA is used to load legacy PDB files
* picture\_search: new plugin for finding and displaying raster images embedded in the binary
* svdimport: added support for cluster, derivedFrom and dim/dimIncrement peripheral attributes
* svdimport: use a folder-based tree for the plugin's UI
* swift: parse and format Swift metadata
* swift: import simple types (enums, structs) into Local Types

### Kernel

* kernel: added a new flag REFINFO\_SELFREF for offsets (base is equal to the address of the current element)

### Scripting & SDK

* IDAPython: expose the C++ SDK's `processor_t` (as `ida_idp._processor_t`)
* SDK: added capture\_process\_output() to capture output of an external program;
* SDK: added support for lazy-loaded dirtree choosers. CH2\_LAZY\_LOADED flag can be used with dirtree-based choosers to load contents of a directory when it's expanded.
* SDK: deprecated qerrcode() (errno can be accessed directly instead)

### UI

* UI: added an easy way to take memory snapshot of current segment
* UI: improved highlighting of matching registers on platforms which use various prefixes (e.g. @r1)
* UI: in the disassembly, addresses in the line prefixes of structure or array members now increase with those members' offsets.
* UI: it is now possible to attribute an image as background to the listings (IDA View, Pseudocode, ...) using CSS in themes
* UI: jumping to an address in the middle of a struct or an array now positions cursor on the correct line of the disassembly listing
* UI: the "Wait" dialog now only shows after a certain timeout (thereby reducing the number of interfering popping dialogs)

### Decompilers

* decompiler: added an action to jump to a new pseudocode windows with 'alt+enter' shortcut
* decompiler: enabled decompiling of 32-bit files in IDA64 if a corresponding 32-bit decompiler license is available

### Bugfixes

* BUGFIX: arm: "set callee" (Alt-F11) failed to create cross-references for BLR instructions
* BUGFIX: alpha: 'lda' instructions could cause wrong sized stack variables to be created
* BUGFIX: DWARF: Debug information present in .dwz companion files (pointed to by .gnu\_debugaltlink) would be skipped when the link is absolute
* BUGFIX: FLAIR: The pelf utility could crash when used with incorrect 'pelf.rtb' files
* BUGFIX: IDA could crash if an array typedef was replaced by a structure of the same size
* BUGFIX: IDA could fail to detect dyld (and any loaded modules) after attaching to a process on macOS 13.
* BUGFIX: IDA could fail to parse Objective-C method data during debugging.
* BUGFIX: IDAPython: cfunc\_t.arguments array could have function arguments in wrong order
* BUGFIX: IDAPython: documentation for `ida_kernwin.Choose` callbacks was missing
* BUGFIX: IDAPython: get\_reg\_vals() was not usable
* BUGFIX: IDAPython: using values in the range \[128,255) as 'tag' for ida\_netnode functions, would fail
* BUGFIX: ios\_deploy "symbols" phase would fail on iOS 14-16.
* BUGFIX: lumina: private lumina server could fail starting with certain MySQL setups, due to case sensitivity in INFORMATION\_SCHEMA.COLUMNS fields
* BUGFIX: PC: callee target was not printed for some call instructions
* BUGFIX: svdimport: fixed problem with odd (+1) start addresses in segments
* BUGFIX: ui/qt: IDA could crash when passed the wrong widget to `ida_kernwin.get_highlight()`
* BUGFIX: ui: "size" expressions in 'Structure offset' context menu differed from 'T' hotkey
* BUGFIX: ui: exporting data from hex view with non-default item width could produce wrong output
* BUGFIX: UI: IDA on Windows would hang if the accessibilty option "Use text cursor indicator" was enabled
* BUGFIX: ui: improvements for accessibility under Windows for "Text Cursor Indicator" on "Output" widget
* BUGFIX: vault: 'hv purge' command was not usable
* BUGFIX: xtensa: write acccesses for stack variables were not shown properly
