C++/Decompiler and Obfuscator System Software programs
Expert: vijayan - 5/31/2011
QuestionDear Vijayan
I want to get some inputs from your end regarding Decompiler and Obfuscator software programs.
Decompiler -> retrieving source code from Binary file/s i.e .exe, .dll. it performs reverse engineering.
Helps in recovering software source code crashes.
Obfuscator -> Protecting source code i.e intellectual property of programmer/company from tampering, hacking and decompiling source code.
1. Some information on Logic and Algorithms for Designing and Building a Decompiler program - say .net decompiler, javascript decompiler, c decompiler etc
2. what could be the probably programming language/s for building decompiler and obfuscator software programs ?
i.e c, c++, java, assembly language ?.
3. Is it a important investment by the IT Service co/s in purchasing those third party component/s,tools ?
For example : IT Cos who are giving solutions on .net/j2ee architecture will find these tools invaluable assets ?
Thanks & Regards,
Prashant S Akerkar
Answer> Some information on Logic and Algorithms for Designing and Building a Decompiler program -
> say .net decompiler, javascript decompiler, c decompiler etc
Here is a reasonable introduction to the topic:
http://www.backerstreet.com/decompiler/introduction.htm
For an example of what a fairly widely used decompiler does, see:
http://www.hex-rays.com/idapro/
> what could be the probably programming language/s for building decompiler and obfuscator software programs ?
AFAIK, the language is not an absolute barrier. In practice, a Turing-complete language like C++ is the most common choice.
> Is it a important investment by the IT Service co/s in purchasing those third party component/s,tools ?
There is a market for commercial tools of this kind, but AFAIK it is a niche market. Quite a few software houses prefer not to use it, because they rely on their software license to protect them and/or because obfuscation makes identifying the causes of run-time errors and tracing them back to the original program extremely hard; the cost of debugging goes up exponentially. Some others do use some obfuscation, but depend on free software for this.
Here is some more information:
http://www.obfuscator.info/