Automatic binary deobfuscation
Tóm tắt
This paper gives an overview of our research in the automation of the process of software protection analysis. We will focus more particularly on the problem of obfuscation. Our current approach is based on a local semantic analysis, which aims to rewrite the binary code in a simpler (easier to understand) way. This approach has the advantage of not relying on a manual search for “patterns” of obfuscation. This way of manipulating the code is, at the end, quite similar to the optimising stage of most of compilers. We will exhibit concrete results based on the development of a prototype and its application to a test target. Current limitations and future prospects will be discussed in as well.
Tài liệu tham khảo
Guillot Y., Gazet A.: Semi-automatic binary protection tampering. J. Comput. Virol. 5(2), 119–150 (2009)
Guillot, Y.: Metasm. In: 5ème Symposium sur la Sécurité des Technologies de l’Information et des Communicatins (SSTIC’07). http://actes.sstic.org (2007)
Tip F.: A survey of program slicing techniques. J. Program. Lang. 3, 121–189 (1995)
Wroblewski, G.: General method of program code obfuscation (2002)
Beck, J., Eichmann, D.: Program and interface slicing for reverse engineering. In: In IEEE/ACM 15th Conference on Software Engineering (ICSE’93), pp. 509–518. IEEE Computer Society Press (1993)
Quist, D., Valsmith: Covert debugging—circumventing software armoring techniques (2007)
Bohne, L.: Pandora’s bochs: automated malware unpacking (2008)
Kang, M.G., Poosankam, P., Yin, H.: Renovo: a hidden code extractor for packed executables (2007)
Perriot, F.: Defeating polymorphism through code optimization (2003)
Webster, M., Malcolm, G.: Detection of metamorphic and virtualization-based malware using algebraic specification. In: EICAR (2008)
Christodorescu, M., Kinder, J., Jha, S., Katzenbeisser, S., Veith, H.: Malware normalization. Technical Report 1539, University of Wisconsin, Madison, Wisconsin, USA (Nov 2005)
http://orange-bat.com
Futamura Y.: Partial evaluation of computation process—an approach to a compiler-compiler. Syst. Comput. Controls 2, 45–50 (1971)
Rolles, R.: Optimizing and compiling (2008)
Marlet, R.: Vers une formalisation de l’évaluation partielle. PhD thesis, L’Université de Nice - Sophia Antipolis, École Doctorale - Sciences pour l’Ingénieur (1994)
Hartmann, L., Jones, N.D., Simonsen, J.G.: Interpretive overhead and optimal specialisation
Dullien, T., Porst, S.: Reil: a platform-independent intermediate representation of disassembled code for static code analysis. In: CanSecWest (2009)