Методики обратной разработки

Reverse Engineering (обратная разработка) представляет собой метод исследования устройств либо программного обеспечения. Основная цель этого исследования — понять принцип работы, а также обнаружить какие-нибудь недокументированные возможности приложения. В сфере информационной безопасности реверс-инжиниринг играет важную роль, ведь именно благодаря ему специалисты из этой области получают возможность изучать вредоносные приложения, разбираясь в нюансах их работы. В последующем это позволяет составлять и обновлять сигнатуры в антивирусных базах, а также защищать обычных и неискушенных в этой сфере пользователей от реальной цифровой угрозы. Давайте посмотрим, какие сегодня существуют методики выполнения обратной разработки.

Можно выделить четыре основных подхода: • анализ обмена данными программного приложения посредством разных анализаторов трафика; • использование режима отладки в целях поиска интересующих участков кода и просмотра, а также изучения данных, с которыми взаимодействует программное приложение; • дизассемблирование машинного кода (практическая реализация этой методики занимает немало времени); • декомпиляция кода в целях создания исходного кода программного приложения на высокоуровневом языке программирования.

Про дизассемблирование машинного кода стоит сказать отдельно. Вообще, сама по себе тема дизассемблирования в общем смысле неразрывно связана с реверс-инжинирингом, однако у человека, не являющимся экспертом, эта тема может отбить желание вообще связываться с обратной разработкой. Причина этому проста: для работы с машинным кодом нужно достичь определенного уровня подготовки, да и время на это затрачивается немалое. Однако игра стоит свеч: каждый отдельный случай может оказаться действительно уникальным и очень занимательным «путешествием» в глубокие закоулки программного приложения.

Хотите прокачать свои навыки реверс-инжиниринга? Ждем вас на наших курсах!

По материалам https://habr.com/ru/users/pentestit-ru/.