Реверс-инжиниринг (обратная разработка, обратный инжиниринг)

Реверс-инжиниринг (обратная разработка, обратный инжиниринг) – процесс анализа машинного кода программы группой разработчиков, в результате, которого составляется алгоритм этой программы на псевдокоде. Если же программа является драйвером, то в результате анализа кода составляется исчерпывающие спецификации, интересующего разработчиков устройства. На основе добытых алгоритмов и спецификаций другая группа разработчиков пишет собственный драйвер. Результат обратной обработки позволяет избежать обвинений в нарушении авторских прав на исходную программу.
Реверс-инжиниринг также проводится на уровне программного обеспечения, с целью осуществления модификации кода, написания генератора ключей, а также получения сведений о протоколе сетевого обмена с сервером, аппаратным средством, ключом защиты. Обратная обработка ПО производится с помощью следующих способов: анализа обмена данными, дизассемблирования и декомпиляции.