Preview

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

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

Комбинированный (статический и динамический) анализ бинарного кода

Аннотация

Рассматриваются проблемы анализа программы в бинарном коде для распознавания алгоритмов составляющих ее функций, выяснения особенностей реализации алгоритмов, обнаружения недокументированных возможностей. Традиционно для этих целей используются дизассемблеры и средства статического анализа потоков данных. Однако в случаях, когда составители программы приняли меры для защиты своей программы от анализа (например, использовали запакованный код, который распаковывается во время выполнения программы), статический анализ может не дать результатов. В данной статье предлагается использовать в таких случаях динамический анализ (анализ трасс программы) в дополнение к статическому. Рассматриваются проблемы, возникающие при анализе бинарных программ, и предлагаются способы автоматизации их решения. Описывается среда динамического анализа бинарного кода TrEx, разработанная и реализованная авторами статьи, и ее интеграция с известной средой статического анализа Ida Pro. Приведены примеры анализа конкретных бинарных программ.

Об авторах

А. Ю. Тихонов
ИСП РАН
Россия


А. И. Аветисян
ИСП РАН
Россия


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

1. Tool Interface Standards (TIS). Portable Executable Formats (PE), http://www.x86.org/intel.doc/tools.htm.

2. Tool Interface Standards (TIS). Executable and Linkable Format (ELF), http://www.x86.org/intel.doc/tools.htm

3. IDA Pro Disassembler, http://www.hex-rays.com/idapro/.

4. Fast Library Identification and Recognition Technology (FLIRT), http://www.idapro.ru/description/flirt/.

5. H. Yin, Z. Liang, D. Song. HookFinder: Identifying and Understanding Malware Hooking Behaviors. // Proceeding of the 15th Annual Network and Distributed System Security Symposium (NDSS'08), Feb. 2008

6. В. А. Падарян, М. А. Соловьев, А. И. Кононов. Моделирование операционной семантики машинных инструкций. // Программирование №3, 2011. стр. 50–64

7. LLVM Language Reference Manual. // Llvm.org/docs/LangRef.html

8. AMD SimNow Simulator, http://developer.amd.com/cpu/simnow/Pages/default.aspx.

9. P. S. Magnusson, M. Christensson, J. Eskilson, D. Forsgren, G. Hallberg, J. Hogberg, F. Larsson, A. Moestedt, and B. Werner. Simics: A Full System Simulation Platform. // IEEE Computer, 35(2):50–58, Feb. 2002.

10. S. Debray, J. Patel. Reverse Engineering Self-Modifying Code: Unpacker Extraction.

11. // Proceedings of the 17th. IEEE Working Conference on Reverse Engineering, Oct. 2010, pp 131–140.

12. Wang C., Hill J., Knight J,. Davidson J. Software tamper resistance: obstructing static analysis of programs // Tech. Rep., N 12, Dep. of Comp. Sci., Univ. of Virginia, 2000.

13. Weiser M. Program slicing // Proceedings of the 5th International Conference on Software Engineering. – IEEE Computer Society Press, 1981.– pp. 439–449.

14. Korel B., Laski J. Dynamic program slicing // Information Processing Letters, Vol. 29, Issue 3.– 1988.– p. 155–163

15. А. Тихонов, А. Аветисян, В. Падарян. Методика извлечения алгоритма из бинарного кода на основе динамического анализа. // Проблемы информационной безопасности. Компьютерные системы. 2008, №3. с. 66-71

16. В. А. Падарян, А. И. Гетьман, М. А. Соловьев. Программная среда для динамического анализа бинарного кода. // Труды Института системного программирования, том 16, 2009, с. 51-72. –.

17. M. Venable, M.R. Chouchane, M.E. Karim, and A. Lakhotia. Analyzing memory accesses in obfuscated x86 executables. In DIMVA'05, pages 1-18, 2005.


Рецензия

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


Тихонов А.Ю., Аветисян А.И. Комбинированный (статический и динамический) анализ бинарного кода. Труды Института системного программирования РАН. 2012;22.

For citation:


Tikhonov A.Yu., Avetisyan A.I. Combined (static and dynamic) analysis of binary code. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2012;22. (In Russ.)



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


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