1.78M
Categories: programmingprogramming softwaresoftware

Reverse Engineering

1.

Reverse
engineering

2.

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

3.

4.

5.

Регистры
Восемь регистров - EAX (аккумулятор), EBX (база),
ECX (счетчик), EDX (данные), ESP (указатель на
вершину стек), EBP (указатель на базу стека), ESI
(указатель на источник данных ) и EDI(указатель
на назначение данных).

6.

Стековые операции:
•push value; помещает значение в стек (ESP уменьшается на 4, размер одной «единицы» стека).
•pop register; помещает значение в регистр (ESP увеличивается на 4).
Передача данных
•mov destination, source; копирует значение из/в регистр.
•mov destination, [expression]; копирует значение из памяти по адресу, получаемому из ‘регистрового
выражения’ (одиночный регистр или арифметическое выражение, содержащее один или больше
регистров) в регистр.
Поток выполнения
•jmp destination; переходит к команде по адресу (устанавливает EIP (указатель инструкций)).
•jz/je destination; переходит к команде по адресу, если установлен ZF (нулевой флаг).
•jnz/jne destination; переходит к команде по адресу, если ZF не установлен.
Операции
•сmp operand1, operand2; сравнивает 2 операнда и устанавливает ZF, если они равны.
•add operand1, operand2; операнд1 += операнд2.
•sub operand1, operand2; операнд1 -= операнд2.
Переходы функций
•call function; вызывает функцию (помещает текущее значение EIP в стек, затем переходит в функцию).
•retn; возврат в вызываемую функцию (извлекает из стека предыдущее значение EIP).

7.

IDA
Дисасемблер
Отладчик
English     Русский Rules