

New product: an integrated set of tools to bring seamlessĬollaboration among teams of engineers. We've been hard at work putting the finishing touches to our Version bump - is the introduction of IDA Teams. The code is pretty straight forward ( ), this is mostly written for being done while using one-liner, its the same thing as catching the exception when trying to decompile.As usual, IDA has improved on many fronts, but the most importantįeature this time around - and the one that justifies the major So about the BipFunc.can_decompile function: like indicated in the documentation ( ) it will just try to decompile the function and see if an error occurs. Probably not your case but might still help. You can typically view this case by an error telling you "failed analysis at ADDR" in the IDAPython console, and then look at the problem. Just for information the basic reason for decompilation error, is that it is not able to make a correct translation of some piece of code because it does not understand the assembly, this is typically true if there is a problem during the analysis and the code is not correctly detected (also happens a lot if you are dealing with obfuscation). Print("0x functions "Decompile twice with cache clear") Plugin for decompiling all the function in the "Invalidate hexrays caches") I though I put that in the Bip repository somewhere but I can't find it, so here is a small plugin/code which should allows to do that: from bip import *

So basically it means you have to decompile the function in an order, which is a pain, for fixing that the simplest way is to just decompile everything twice, but it can take quite some time if you do it on "big" binaries. But once that function has been decompiled, the information fetched by IDA will be updated, and so the decompilation of the caller function might now work.

When decompiling a function IDA will try to gather information on the function called by this one and in some case fail to get those information which will make the decompilation fail. If it works on some case and other it does not it is probably because of the call analysis. There is several reason you can get an error on the decompilation from IDA.
