Знакомство с Reverse Engineering

c0dpro

Всем привет! В данной статье мы с вами познакомимся с Reverse Engineering,узнаем, что это и с чем его едят и среверсим простую программу.
Что такое Reverse Engineering?
Reverse Engineering(также обратная разработка) - это процесс разбора программы. Так программисты компилируют свой код в приложение,а реверсеры из готового приложения достают исходный код. Целей для этого может быть куча,понять как устроена программа,украсть чьи то разработки,т.д. Так разобрать можно абсолютно любую программу,на любом языке(это может быть довольно сложно))
Программы, которые используются в Reverse Engineering
  1. DetectItEasy/PEiD/ExeInfo - программы для анализа исполняемых файлов.
    Эти программы дают нам информацию про то, чем была скомпилирована программа; язык написания; стоит ли защита от вскрытия(протектор), если да,то какая; ...
  2. DnSpy/IDA/OllyDbg - программы для обратного программирования, разбора приложений.
    Эти программы дают нам возможность декомпилировать приложения, это очень слабо сказано. Возможности у этих программ очень большие и описывать все будет очень долго)
  3. MegaDumper - программа для создания копии запущенной,распакованной программы.
    Данная программа и ее аналоги дают нам возможность сделать слепок запущенной программы.
  4. D4dot/ConfuserDeobfuscator - программы для снятия протекторов/обфускаторов/защиты от декомпиляции.
    Так разработчики для спасения от вскрытия программы ставят на них защиту - протекторы. Данные программы дают возможность нам снять защиту с приложения.
Список можно продолжать еще довольно долго,но на этом мы с вами остановимся.
Пример реверсинга программы написанной на c#
С помощью гугла нашел паблик с "читами" на игру "контра сити". Под видом читов здесь распостраняют разные вирусы.
Для нас это идеальный вариант поупражняться в реверсинге. В паблике с любого поста качаем наш "чит".


Суем наше приложение в DetectItEasy/Аналог и получаем про него информацию.

И нам сразу стает ясно,что это просто SFX архив,который мы распаковываем и получаем файл,который мы также суем в DIE

Мы узнаем,что данный exeшник не накрыт никаким протектором и разработан на библиотеке .NET 4. Для данной библиотеки
отлично использовать декомпилятор
DnSpy. Отправляем exe в декомпилятор(просто перетаскиваем его в DnSpy).

И получаем полный исходный код этой программы на C#. Если присмотреться к сути,то это стиллер.

Это был самый простой пример реверса программы.
Заключение
Вот мы с вами получили самые базовые,основные знания про реверс.
Думаю позже напишу вторую статью,где мы ближе познакомимся со снятием
протекторов и с программой IDA.
Я старался излагать свои мысли так,чтобы всем новичкам было максимально понятно)
Это была моя первая авторская статья и попрошу вас указать на ошибки и предложения по улучшению)
_________________________________________________________________________________________________

ВСЯ ИНФОРМАЦИЯ НАПИСАНА В ЦЕЛЯХ ОЗНАКОМЛЕНИЯ И НЕ ПРИЗЫВАЕТ К ДЕЙСТВИЮ , АВТОР НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ИСПОЛЬЗОВАНИЕ ДАННОГО МАТЕРИАЛА)
Вся информация написана в целях ознакомления,автор не несет ответственность за использование данного материала)