Preview

Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS)

Advanced search

Description of the approach to development of the obfuscating compiler

https://doi.org/10.15514/ISPRAS-2012-23-4

Abstract

Nowadays protecting intellectual property rights for created software is very important because of many competing companies and ubiquitous piracy. The powerful technique for this protection is to obfuscate program code. This paper describes an approach for developing an obfuscation tool based on a compiler infrastructure. Using the compiler infrastructure is beneficial as during compilation we have the complete information about the compiled program for free and we do not need to solve problems like correct disassembling, new target support etc. We have formulated the efficiency criteria for an obfuscating technique: an obfuscation transformation should obfuscate both control flow and data flow simultaneously. The main feature of the described approach is using the set of transformations, which mask the various aspects of the obfuscated application. Together, this set provides the strong protection against the static analysis. Opaque predicates insertions, flattening and increasing indirection transformation are the most efficient transformations. Also we have formulated the compiler infrastructure requirements that need to hold for successfully implementing an obfuscating compiler using this infrastructure. The essential requirements are complied with LLVM (low level virtual machine) compiler infrastructure.

Keywords


About the Authors

Sh. F. Kurmangaleev
ISP RAS, Moscow
Russian Federation


V. P. Korchagin
ISP RAS, Moscow
Russian Federation


H. A. Matevosyan
ISP RAS, Moscow
Russian Federation

Savchenko V.V. sinmipt@ispras.ru

ISP RAS, Moscow, Russia

Sargsyan S.S. sevaksargsyan@ispras.ru

ISP RAS, Moscow, Russia



References

1. Christian Collberg; JasvirNagra Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection Addison-Wesley Professional Pub. Date: July 24, 2009 Print ISBN-10: 0-321-54925-2, 748 стр.

2. Chris Lattner. LLVM: An Infrastructure for Multi-Stage Optimization. — Master’s thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, Urbana, IL.

3. А.В. Чернов. Анализ запутывающих преобразований программ. Труды ИСП РАН, том 3, 2002, стр. 7-38

4. Д. А. Щелкунов. Применение запутывающих преобразований и полиморфных технологий для автоматической защиты исполняемых файлов от исследования и модификации. Труды международной конференции РусКрипто. Апрель 2008 г.

5. M. H. Halstead. Elements of Software Science. Elsevier North-Holland, 1977.

6. E. I. Oviedo. Control flow, data flow, and program complexity. In Proceedings of IEEE COMPSAC, 1980, pp. 146-152.

7. Simon Moll. Decompilation of LLVM IR. B.Sc. Thesis, Saarland University, 2011.

8. М.Г. Бакулин, С.С. Гайсарян, Ш.Ф. Курмангалеев, И.Н. Ледовских, В.А. Падарян, С.М. Щевьева Динамический анализ обфусцированных приложений с диспетчеризацией или виртуализацией кода. Сдано в печать: Труды ИСП РАН, том 23, 2012, 17 стр.


Review

For citations:


Kurmangaleev Sh.F., Korchagin V.P., Matevosyan H.A. Description of the approach to development of the obfuscating compiler. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2012;23. (In Russ.) https://doi.org/10.15514/ISPRAS-2012-23-4



Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)