Questions tagged [hexrays]
A decompiler plugin for IDA, producing (pseudo-)C/C++ code, developed by the company of the same name (Hex-Rays).
139
questions
2
votes
1
answer
365
views
Hex-Ray Decompiler: inline function not recognized
While trying to decompile an application with Hex-Ray 7.0, I stumbled upon the problem that in nearly all cases, what seems to be a certain inline function will not be recognised, which bloats the ...
1
vote
2
answers
1k
views
Methods for preventing IDA decompiler
I want to write a C function, such that hex-rays decompiler will fail on it. I want to do it for study purposes, and not for an actual anti-reversing method. Do you have any recommendations/approaches ...
3
votes
1
answer
992
views
IDA pseudocode support
How can I know which processors IDA knows how to view pseudocode of?
If IDA does not know to view pseudocode for my processor, how can I fix that??
1
vote
2
answers
1k
views
Hex-Rays skips code
I have using IDA Pro 6.8 (Hex-Rays 2.2), the default settings.
The problem starts to happen when I'm trying to analyze function (which actual size ~2886 bytes), pressing F5 (without errors or alerts) ...
2
votes
2
answers
2k
views
How to help IDA to auto complete libc functions?
I have a x86_64 ELF binary which is statically compiled. With some digging,
I have found the C library is musl. In IDA Pro 7.0, the decompiled pseudo code
shows sycalls as inline assembly code. But in ...
2
votes
1
answer
1k
views
Is there a way to show exceptions handlers in Hex-Rays decompiler output?
Is there a way to show these exception handlers in the decompiled code?
I can't tell that a block is in a __try block without looking into the disassembly.
__int64 __fastcall ...
2
votes
1
answer
476
views
How to migrate IDA/HexRays database to the new version of the same application?
I have an .idb and PE file of an old version of an application. Now I want to transfer all knowledge to a new database for the new version of PE. How can I do this?
It seems that I need to compare ...
1
vote
0
answers
332
views
How Can I Clean Up After IDA Decompation with IDAPython or other resource
When I am working on a source code recovery project I am usually left with a lot of code that needs to be manually cleaned up by hand. This can take a lot of time and as projects get larger , I am ...
-1
votes
1
answer
185
views
Understanding (pseudo-)C function from a video game [closed]
I recently found a function using IDA within a game that creates a CRC from a string. I don't understand much of the code or how the game takes in the string as data.
__int64 __fastcall ITF::...
3
votes
2
answers
7k
views
Decompile large function in IDA
I'm working on a crack me, specifically: jaunsacco's DragonCrack and the first thing I've gotten stuck on is that the program is built mostly as a enormous main function. After attempting to decompile ...
1
vote
1
answer
370
views
Weird IDA/Decompiler floating point output
I stumbled upon this (reduced for readability) function. It does weird things that I have never encountered before.
// a2 is always 60.0
void some_function(struct_123 *this, float a1, float a2)
{
...
1
vote
0
answers
306
views
IDA Pro Reset All Stack Pointers to Default
Is there a way letting IDA scan all the database and reset all stack pointers values to it's default state that were previously modified? i.e like it was when I first started the analyzing the binary?
...
2
votes
0
answers
301
views
IDA Hex-Rays Decompiler Generates ASM Code Issue
For a long time now, I've been struggling with some functions generated with IDA HexRays plugin that seem to be corrupted.
Some of the decompiled generated plain C code, show as ASM code :/
i.e:
...
0
votes
1
answer
3k
views
How can I follow virtual function calls in IDA?
I'm trying to reverse a video game that was made with the CryEngine 5 game engine. CryEngine 5 source code is available on GitHub, so I can look at the CryEngine source code and cross reference with ...
0
votes
1
answer
165
views
Why Ida pseudo-code translate test as AND?
In IDA when disassembling a x86 EXE file there is a line
test byte ptr [ebp+XXX], cl
Before this line cl has a value of 0x11
The Hex-Rays decompiler plugin translates it as if (v10 &0x11).
Why ...
1
vote
2
answers
3k
views
IDA Hex-Rays: How to SAFELY fix incorrect function declarations?
Update:
The problem turned out to be more complex and complex because Hex-Rays incorrectly restores the stack after calls of stdcall functions from cdecl functions:
.text:00403F2F 074 ...
0
votes
2
answers
4k
views
IDA Hex-Rays: How to find all references to the certain field of all instances of the data type?
This question has already been asked here but for some reason it was deleted, as "dead".
I will try to explain again. I have a specific data type. It is used in a large number of disassembled ...
1
vote
3
answers
3k
views
Understanding Hex-Rays pseudo code
What is the meaning of the following pseudo-code?:
BYTE1(v2) or BYTE1(v2)
HIBYTE(v2)
Is there any explanation for those macros? How can I implement those macros in C code?
5
votes
3
answers
976
views
Nested Structures in IDA
I'm trying to figure out how to explore structs in IDA, and getting stuck on the basics. I wrote a very basic test app;
int main() {
const int kBits = 1024;
const int kExp = 3;
RSA *rsa = ...
1
vote
2
answers
853
views
How to remove all goto statements in pseudocode?
IDA shows multiple goto statements in the decompiled pseudocode. I've read this manual page: https://www.hex-rays.com/products/decompiler/manual/config.shtml and tried to disable/enable these flags ...
1
vote
0
answers
861
views
IDA 7 handling strings in debugger pseudocode
When running a remote debugger to a linux server, is there a way to get IDA (7.0) to properly handle strings? When I go to the pseudocode view, I get things like this;
v7 = sub_804AD60((std::string *)...
1
vote
2
answers
2k
views
.NET assembly IDA PRO, using LDSTR IL op code, how to patch a string?
I'm trying to patch a string. So right now I'm trying to replace instruction LDSTR with LDSTR "mystring"; however, I have been unsuccessful. After assembling the LDSTR op code, I don't quite ...
4
votes
1
answer
2k
views
Resolving FLAGS bits with IDA
While disassembling a binary, IDA decompiler decompiles the call as mmap(0x80000000, 4096, 7, 50, -1, 0); While there is nothing wrong with the decompilation itself, it could be more useful to decode ...
0
votes
1
answer
479
views
Translating ida macros and pseudocode into C++/C
What would be the translated C output of this hexrays decompiler pseudocode? The values of v6 and v5 are floats just as v8. The value of xmmword_108365D0 is 7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFFh
v8 = (...
1
vote
2
answers
4k
views
How to add/find parameters to a function declaration in IDA/HexRays?
I've a binary opened in IDA. It uses a function pointer from a COM vtable. I found that the COM method has 13 parameters (including this). But IDA shows only 4 parameters as shown in this pseudocode:
...
3
votes
2
answers
6k
views
IDA Hex-Rays Decompiler : Show strings instead of offset
How can i settings IDA show me string instead of offset_xxx?
4
votes
1
answer
2k
views
How do I resolve IDA pro Hexrays aliased local variables?
It appears to me that in my function the compiler has reused a stack slot for two variables of types. However, Hex-Rays has not recognized it as such. How can I split the local variable into two?
-2
votes
2
answers
187
views
Some question about IDA [closed]
This binary was from a CTF challenge.
I found 2 way to solve this, one is run & debug the bin, set a break point and see result in flag after the bin running, another is trying to understand the ...
8
votes
2
answers
2k
views
Split variable in Hexrays decompiler?
With Microsoft Visual C++ executables, I often run into decompilations like this:
void __cdecl Pbdf::ReadString(char *dst, Pbdf *pbdfOrLength)
{
Pbdf *pbdf; // esi
pbdf = pbdfOrLength;
...
1
vote
1
answer
382
views
Odd convention for accessing elements of an array?
While reverse engineering a game using the Hex Rays decompiler I was looking for how an array of NPC's was accessed. I found the array but I don't quite understand the unusual formula for getting the ...
2
votes
1
answer
378
views
Hex-Rays function signature does not match demangled name
From the demangled name, I know that a function takes an std::string const& as a parameter but when generating psuedo-c code with Hex-Rays' decompiler it autodetects the parameters as (int a1, int ...
-2
votes
1
answer
932
views
(Hex-Rays) How to define C macro?
Im want create reverse macro for constant integers, how i can do it?
Example:
#define MU_ITEM(x, y) (x * 512 + y)
My goal is make result of number format like: before & after.
1
vote
0
answers
271
views
IDA Pro 7.0 showing incorrect LOCALS in pseudocode view
Whenever I debug something and I switch to pseudocode and then rename some of the "variables" that IDA Pro creates, the values shown in the LOCALS window don't match what the actual values of those ...
0
votes
2
answers
504
views
IDA Hex-Rays suggests an invalid offset
While running Hex-Rays decompiler against an application, Hex-Rays gave the following output:
__int64 v29; // r10 ... v29 = 0i64; if( !v28) v19 = 0;
do
{
v30 = *(_BYTE *)(v29 + ...
4
votes
2
answers
2k
views
HexRays: Variadic methods like printf
I have identified a routine that behaves exactly like printf in an ARM64 binary. Arguments are passed in the standard fashion (e.g. X0, X1, X2 ...) and I have given the function the signature (Y) of:
...
2
votes
4
answers
6k
views
How to decompile with Hex Rays via a Python API?
If i have a large set of files and I'd like to run Hex-rays over them to produce output as C - can I do so in python?
I see there is IDA Python
And I see Hex-rays has a C++ SDK
Is there a python Hex-...
3
votes
0
answers
2k
views
STL map and map entry structures for IDA/HexRays
I have several binaries (Visual Studio 2005, amd64/x86_64) that I need a portion of each reversed in order to better understand the reasons for their malfunction in certain edge cases (they are long ...
0
votes
2
answers
103
views
Tracing the last written value of a memory location without slowdown
I'm trying to debug the corruption of a linked list structure inside of a Win32 DLL with IDA Pro and Hexrays. The offending assembly traverses a doubly-linked list forwards checking a condition, and ...
2
votes
1
answer
2k
views
IDA Pro PowerPC Decompiler Plugin supporting Floating Point Instructions
So I far I have been using Snowman for PowerPC decompilation. It is bad though but better than nothing. However, right now it doesn't support floating point instructions. They are simply written down ...
0
votes
1
answer
393
views
Why does IDA identify so many non-existent methods in this binary?
The decompilation and auto-analysis of this binary is grossly inaccurate. I am providing the binary as well as the IDB. IDA v6.95, 32 bit was used for the analysis. Can anyone take a look and suggest ...
3
votes
1
answer
4k
views
Doesn't IDA Pro 6.95 support decompiling MIPS executable?
I am working on a MIPS binary: ELF 32-bit MSB executable, MIPS, MIPS-II version 1 (SYSV), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=76438e9ed749bcfc6e191e548da153d0d3b3ee28, not stripped
....
1
vote
0
answers
390
views
Is there a from...import * equivalent of idaapi.require()?
Loading your own modules from your IDAPython scripts with idaapi.require() suggests using idaapi.require() to load user modules in IDAPython scripts. However in my script, I have extensively used from ...
1
vote
1
answer
431
views
Is it possible to redirect IDAPython stack trace to console?
I am facing a weird problem! When my IDAPython script crashes, it produces a stack trace in the IDA default warning box that pops up right in front. The size of the box is neither adequate enough to ...
0
votes
1
answer
927
views
Is there any IDA plugin to display AST?
Hex Ray has introduced a decompiler API as part of IDA v6.6. Is there any plugin which displays the detail Abstract Syntax Tree (AST) produced by the decompiler graphically?
I want something like ...
1
vote
1
answer
590
views
How can I walk up along the AST using IDAPython decompiler API?
I am using IDAPython for my analysis. In IDA v6.95, the header file plugins/hexrays_sdk/include/hexrays.hpp defines the following:
typedef ctree_items_t parents_t;
parents_t parents; ///< ...
0
votes
1
answer
335
views
How can I see the IDAPython implementation of HexRay's decompiler API?
I am trying to use HexRay's decompiler API, however having trouble due to its lack of documentation. Is there any means so That I can get to see the Python implementation of decompiler API?
3
votes
3
answers
872
views
Cleaning HexRays Output
My HexRays decompiler output often looks like:
v0 = LoadLibraryW(L"wininet.dll");
v1 = v0;
if ( !v0 )
goto LABEL_1;
v2 = GetProcAddress(v0, "InternetOpenW");
v3 = GetProcAddress(v1, "...
3
votes
1
answer
1k
views
How to find matching braces in IDA's decompiled code?
For the source generated by Hex Ray's decompiler in IDA, is it possible to highlight matching braces once I place the pointer at the beginning of a block?
As an example, in the screenshot below, the ...
0
votes
1
answer
5k
views
What all are the built-in data types available in IDA?
Hex Rays decompiler assigns weird looking data types to variables, e.g. __int64. How do I get to know what all are the built-in data types available in IDA?
0
votes
1
answer
324
views
DNameNode class from MSVC binaries
I'm reversing some old game (for fun, to restore its priceless rules). It's been most probably linked statically to MSVCRT, some very old version. Also it uses heavily WinAPI (like ODCBC drivers, ...