Last week we started improving decompilation of a simple function. While you can go quite far with renaming and retyping, some things need more explanation than a simple renamng could provide.
Comments
When you can’t come up with a good name for a variable or a function, you can add a comment with an explanation or […]
Previously we’ve covered how to start using the decompiler, but unmodified decompiler output is not always easy to read, especially if the binary doesn’t have symbols or debug information. However, with just a few small amendments you can improve the results substantially. Let’s look at some basic interactive operations available in the pseudocode view.
Renaming
Although […]
IDA supports more than 40 file formats out of box. Most of them are structured file formats – with defined headers and metadata – so they’re recognized and handled automatically by IDA. However, there are times when all you have is just a piece of a code without any headers (e.g. shellcode or raw firmware) […]
The Hex-Rays decompiler is one of the most powerful add-ons available for IDA. While it’s quite intuitive once you get used to it, it may be non-obvious how to start using it.
Basic information
As of the time of writing (May 2021), the decompiler is not included with the standard IDA Pro license; some editions of IDA […]
Today, IDA turns thirty years old. In commemoration of the anniversary we’ll describe the beginnings and major milestones of the epic journey.
Background
In the early 1990’s, DOS was the most popular OS for PCs which were majorly 8086 with occasional 80286 (80386 was still very expensive). Typical PC had at most 1MB of RAM leaving little […]
The Edit > Export Data command (Shift+E) offers you several formats for extracting the selected data from the database:
hex string (unspaced): 4142434400
hex string (spaced): 41 42 43 44 00
string literal: ABCD
C unsigned char array (hex):
unsigned char aAbcd[] =
{
0x41, 0x42, 0x43, 0x44, 0x00
};
C unsigned char array (decimal):
unsigned char aAbcd[] =
{
65, 66, […]
In addition to the disassembly and decompilation (Pseudocode) views, IDA also allows you to see the actual, raw bytes behind the program’s instructions and data. This is possible using the Hex view, one of the views opened by default (or available in the View > Open subviews menu).
Even if you’ve used it before, there may […]
Although IDA is mostly intended to be used for static analysis, i.e. simply looking at unaltered binaries, there are times you do need to make some changes. For example, you can use it to fix up some obfuscated instructions to clean up the code flow or decompiler output, or change some constants used in the […]
Today, Hex-Rays announces the release of Service Pack 1 (SP1) for IDA 7.6.
We are glad to announce the release of IDA 7.6 Service Pack 1 today! This Service Pack is primarily a bug fix release for a few errors that might affect some users.
How to request the new versions
As usual, the new versions are free […]
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 […]