3 ms·
Because for two years it was my job to make sure that decompilers didn't work on code generated by my company... It's so easy to throw automatic analysis tools
by demallien 15y ago
Because for two years it was my job to make sure that decompilers didn't work on code generated by my company... It's so easy to throw automatic analysis tools of the track. It's easy to throw humans, and we're way better at this game than automated tools, at least for the time being.
To give you an idea of how easy it is, if you want the decompiler to drop the ball on a for-loop, all you need to do is something simple like increment by two and then decrement by one at the start of the loop body... The tool might be looking for the use of an INC instruction, but because you increment by two, the compiler generates an ADD... and now your tool doesn't know how to recognise the loop.
- verroq 15y agoI don't think anyone uses decompilers to analyse machine code.
- demallien 15y agoErr, what do you think decompilers are for then?
- verroq 15y agoWell in reversing applications, most people use disassemblers and debuggers to step/trace/analyse the machine code. Just because they exist doesn't mean what they provide is of any practical value, as you said it yourself they decompile badly.
- swolchok 15y agoThe Hex-Rays decompiler is very good, and I've used it for reversing several times. In particular, it was extremely useful for our analysis of the Green Dam censorware system (http://www.cse.umich.edu/~jhalderm/pub/gd/ http://www.cse.umich.edu/~jhalderm/pub/gd/).
- Luyt 15y agoThanks for exposing that shipwreck of government-mandated Horrorware. From the Wikipedia article: "As of 30 June 2009, the mandatory pre-installation of the Green Dam software on new computers has been delayed to an undetermined date." Source: http://en.wikipedia.org/wiki/Green_Dam http://en.wikipedia.org/wiki/Green_Dam
- DCoder 15y agoThe decompilation quality really depends on how obfuscated the original code was, and how much time you care to invest. For example, I'm using Hex-Rays to decompile Command & Conquer: Red Alert 2 and extend it, and now its output looks like [1] , which is a lot better than raw assembly menemonics. Though I've been digging into this game since late 2008, which is a long time. [1] http://img824.imageshack.us/img824/1188/hexrayscpp.png http://img824.imageshack.us/img824/1188/hexrayscpp.png
- zeugma 15y agoWhat was the reason to do that ? Apart from rendering your own code completely unreadable ?
- ma2rten 15y agoThat is exactly what I though. I don't know enough about decompilation to argue with OP, but it is my impression that people are too focused on making something that is always guaranteed to work. If you would use some kind of statistical machine learning instead and learn from data (like machine translation for human languages), I would think that you can come a long way, or am I mistaken?