Igor’s tip of the week #36: Working with list views in IDA

List views (also called choosers or table views) are used in many places in IDA to show lists of different kind of information. For example, the Function list we’ve covered previously is an example of a list view. Many windows opened via the View > Open subviews menu are list views: Exports Imports Names Strings Segments Segment registers Selectors Signatures Type libraries Local types Problems Patched […]

Igor’s tip of the week #35: Demangled names

Name mangling (also called name decoration) is a technique used by compilers to implement some of the features required by the language. For example, in C++ it is used to distinguish functions with the same name but different arguments (function overloading), as well as to support namespaces, templates, and other purposes. Mangled names often end up in the […]

Igor’s tip of the week #34: Dummy names

In IDA’s disassembly, you may have often observed names that may look strange and cryptic on first sight: sub_73906D75, loc_40721B, off_40A27C and more. In IDA’s terminology, they’re called dummy names. They are used when a name is required by the assembly syntax but there is nothing suitable available, for example the input file has no […]

Igor’s tip of the week #33: IDA’s user directory (IDAUSR)

The user directory is a location where IDA stores some of the global settings and which can be used for some additional customization. Default location  On Windows: %APPDATA%/Hex-Rays/IDA Pro On Linux and Mac: $HOME/.idapro For brevity, we’ll refer to this path as $IDAUSRin the following text. Contents/settings The directory is used to store the processor module caches (proccache.lst and proccache64.lst) as well […]

2021 IDA Training Course: Registration is now open!

The 2021 IDA training course will take place online from 10–14 and 17-19 May 2021, CEST time. Due to the ongoing COVID-19 situation, the world-class IDA Training course is taking place online for the second time from 10-14 and 17-19 May 2021 (CEST time). The course is devised to help professional reverse engineers master IDA […]

Igor’s tip of the week #32: Running scripts

Scripting allows you to automate tasks in IDA which can be repetitive or take a long time to do manually. We previously covered how to run them in batch (headless) mode, but how can they be used interactively? Script snippets File > Script Command… (Shift+F2) Although this dialog is mainly intended for quick prototyping and database-specific […]

Igor’s tip of the week #31: Hiding and Collapsing

You may have come across the menu items View > Hide, Unhide but possibly never used them. These commands allow you to hide, or collapse and unhide/uncollapse parts of IDA’s output. They can be used in the following situations: Hiding instructions or data items To make your database more compact and reduce clutter, you can opt to hide […]

Igor’s tip of the week #30: Quick views

IDA has three shortcuts as an alternative to some menus which could be cumbersome to navigate. Quick view Probably the most commonly used, it is triggered by the shortcut Ctrl+1 and shows the items under the View > Open subviews menu. It can be especially useful for opening views which have no dedicated shortcut such as Notepad (although […]

Igor’s tip of the week #28: Functions list

The Functions list is probably one of the most familiar features of IDA’s default desktop layout. But even if you use it every day, there are things you may not be aware of. Modal version Available via Jump > Jump to function… menu, or the Ctrl–P shortcut, the modal dialog lets you see the full width of the […]

Igor’s tip of the week #27: Fixing the stack pointer

As explained in Simplex method in IDA Pro, having correct stack change information is essential for correct analysis. This is especially important for good and correct decompilation. While IDA tries its best to give good and correct results (and we’ve made even more improvements since 2006), sometimes it can still fail (often due to wrong […]