Preview

Труды Института системного программирования РАН

Расширенный поиск

Декомпиляция объектных файлов *.dcuil

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

Аннотация

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

Об авторах

А. А. Михайлов
Институт динамики систем и теории управления имени В.М. Матросова СО РАН
Россия


А. Е. Хмельнов
Институт динамики систем и теории управления имени В.М. Матросова СО РАН
Россия


Список литературы

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 на языке FlexT. 2017. URL: http://geos.icc.ru:8080/scripts/WWWBinV.dll/ShowR?DCU32.rfi (дата обращения: 2017-10-09).

3. А. Е. Хмельнов, И. В. Бычков, А. А. Михайлов. Декларативный язык FlexT — инструмент анализа и документирования бинарных форматов данных. Труды ИСП РАН, том 28, вып. 5. 2016 г., pp. 239–268. 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. Михайлов А. А. Промежуточное представление подпрограмм в задаче декомпиляции объектных файлов dcuil. Вестник Бурятского государственного университета, №. 9-3, 2014 г., стр. 32-38.

6. Михайлов А. А. Анализ графа потоков управления в задаче декомпиляции подпрограмм объектных файлов dcuil. Вестник Новосибирского государственного университета. Серия: Информационные технологии, том 12, №. 2, 2014 г., стр. 74-79.

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. Ахо А, Дж Ульман. Теория синтаксического анализа, перевода и компиляции. Том 1. Компиляция. М., Мир, 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. Кнут Д. Э. Искусство программирования. Т. 3. Сортировка и поиск. Издательский дом Вильямс, 2000.

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

17. Трошина Е. Н. Исследование и разработка методов декомпиляции программ: Кандидатская диссертация. Московский государственный университет имени М. В. Ломоносова. 2009.


Рецензия

Для цитирования:


Михайлов А.А., Хмельнов А.Е. Декомпиляция объектных файлов *.dcuil. Труды Института системного программирования РАН. 2017;29(6):105-116. https://doi.org/10.15514/ISPRAS-2017-29(6)-5

For citation:


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
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


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