Preview

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

Advanced search

Delphi object files decompiler

https://doi.org/10.15514/ISPRAS-2017-29(6)-5

Abstract

Работа посвящена решению задачи декомпиляции одного из разновидностей формата DCU - файлов .dcuil, создаваемых компиляторами тех версий Delphi, которые работали для платформы .NET. Разработан метод решения этой задачи, состоящий из ряда этапов: синтаксический анализ кода CIL; формирование графа потока управления; генерация промежуточного представления; структурирование графа потоков управления; анализ потоков данных с учётом семантики команд CIL; улучшение промежуточного представления с учётом особенностей работы компилятора Delphi; генерация кода.

About the Authors

A. A. Mikhailov
Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences
Russian Federation


A. E. Hmelnov
Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences
Russian Federation


References

1. Turing A. M. On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London mathematical society, vol. 2, no. 1, 1937, pp. 230-265.

2. DCU format specification in FlexT. 2017. URL: http://geos.icc.ru:8080/scripts/WWWBinV.dll/ShowR?DCU32.rfi. accessed: 10.09.2017

3. A.Y. Hmelnov, I.V. Bychkov, A.A. Mikhailov. A declarative language FlexT for analysis and documenting of binary data formats. Trudy ISP RAN/Proc. ISP RAS, vol. 28, issue 5, 2016, pp. 239-268. (in Russian). DOI: 10.15514/ISPRAS-2016-28(5)-15

4. Necula G. C., McPeak S., Rahul S. P. et al. CIL: Intermediate language and tools for analysis and transformation of C programs. International Conference on Compiler Construction. Springer, 2002, pp. 213-228.

5. Mikhailov A. A. Intermediate representation for dcuil files decompilation. Vestnik Buryatskogo gosudarstvennogo universiteta [Bulletin of the Buryat State University], No. 9-3, 2014, pp 32-38 (in Russian).

6. Mikhailov A. A. Control flow analysis for dcuil files decompilation. Vestnik Novosibirskogo gosudarstvennogo universiteta. Seriya: Informacionnye tekhnologii [Novosibirsk State University Journal of Information Technologies], vol. 12, no 2. 2014, pp 74-79 (in Russian).

7. Allen F. E., Cocke J. A program data flow analysis procedure. Communications of the ACM, vol. 19, №. 3, 1976, p. 137.

8. Aho A. V. Compilers: Principles, Techniques and Tools (for Anna University), 2/e. Pearson Education India, 2003.

9. Allen F. E. Control flow analysis. ACM Sigplan Notices, ACM, vol. 5, № 7, 1970, pp. 1-19.

10. Cifuentes C. Structuring decompiled graphs. Compiler Construction. Springer Berlin/Heidelberg, 1996, pp. 91-105.

11. Johnson R., Pearson D., Pingali K. The program structure tree: Computing control regions in linear time. ACM SigPlan Notices, vol. 29, №. 6, 1994, pp. 171-185.

12. Cooper K. D., Harvey T. J., Kennedy K. A simple, fast dominance algorithm. Software Practice & Experience, vol. 4, №. 1-10, 2001, pp. 1-8.

13. Alfred V. Aho, Jeffrey D. Ullman. The theory of parsing, translation, and compiling. 1978.

14. Lengauer T., Tarjan R. E. A fast algorithm for finding dominators in a flowgraph. ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 1, № 1, 1979, pp. 121-141.

15. Donald E. Knuth. The Art of Computer Programming: Sorting and Searching. Addison Wesley Series in Computer Science and Information Processing, 2000. Vol. 3.

16. Williams R. N. An extremely fast Ziv-Lempel data compression algorithm. Data Compression Conference, 1991. DCC’91, IEEE, 1991, pp. 362-371.

17. Troshina E. N. Decompilation methods. Phd dissertation. Lomonosov Moscow State University. 2009.


Review

For citations:


Mikhailov A.A., Hmelnov A.E. Delphi object files decompiler. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2017;29(6):105-116. (In Russ.) https://doi.org/10.15514/ISPRAS-2017-29(6)-5



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


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