Найти в Дзене
ИнфоНет

Введение в реверсинг

Вся информация предоставлена строго для ознакомления. Вскрывать чужой софт это плохо!

Думаю, многие из вас умеют разбирать чистые .net файлы ( Если нет - извиняюсь, ниже всё объясню ) , но подумайте, на дворе 2018 год, не думаю, что здравомыслящий девелопер не соизволит накрыть свой файл протектором, коих много. Итак, представим следующую ситуацию : К вам на руки попал... скажем, приватный чит, вы горите желанием его исследовать, и уверены в своих силах. Для первичного анализа файла чита - нам понадобится PE Сканер.

- Что такое PE сканнер?

> Это софт, который поможет тебе, мой юный реверсер - определить на чём нарисована твоя " подопытная " программа ( в нашем случае - чит ), узнать, каким протектором она накрыта. Функций много, как и PE сканеров, перечислять всё не буду. Лично я - использую : " ExeInfo PE " и " Detect it Easy" ( DIE ) . Выглядят они как-то так :

-2

Перетащив софт на форму " ExeInfo PE " мы можем увидеть :

-3

Итак, в сканнере оказался исполняемый файл Темиды, накрытый Темидой. ( да, да,именно так ) Кратко пройдёмся по главному :
Надпись : " Image is 32bit executable " - означает, что файл по дефолту скомпилирован под 32 битные системы.
Чуть ниже мы видим две строки, взглянем на первую : "
Themida/Winlicense v.2.x.?.? ( NonSt. OEP code detector "dummy" )

сканер показал, что файл накрыт Темидой версии 2+, и указал на сайт ее производителя. Ниже мы можем увидеть следующие слова : " No Unpacker, ля-ля-ля " . Сканер говорит нам, что распаковать файл, накрытый темидой - невозможно. Он нас обманывает, но не об этом. Перенесём тот-же файл на форму " DIE " , и увидим :

-4

Здесь - аналогичная картина, но указан компилятор программы. С PE Сканнерами мы разобрались, теперь давайте поговорим о декомпиляции чистых .net файлов. Для примера возьму рандомную программу-чит, множество которых мы можем найти на просторах ютуба.

-5

Отлично. Сканер заявляет, что это .net файл, не накрытый каким-либо протектором. Теперь нам нужно его декомпилировать. Софта для декомпиляции .net файлов - много. Лично я использую " dnSpy ", что советую делать и вам. Ниже я покажу, как с помощью него вытащить исходный код с данного файла. Открываем " dnSpy " , перетаскиваем туда наш файлик :

-6

Вот и подъехали наши исходники. Как и предполагалось вместо "чита" нам подсунули обычный майнер криптовалют.

Теперь поговорим о файлах под протекторами. Протекторов наплодилось очень много, сейчас я расскажу о снятии некоторых. Если в сканнере мы видим, что файл накрыт одним из следующих протекторов :

  • Agile.NET (aka CliSecure)
  • Babel.NET
  • CodeFort
  • CodeVeil
  • CodeWall
  • CryptoObfuscator
  • DeepSea Obfuscator
  • Dotfuscator
  • .NET Reactor
  • Eazfuscator.NET
  • Goliath.NET
  • ILProtector
  • MaxtoCode
  • MPRESS
  • Rummage
  • Skater.NET
  • SmartAssembly
  • Spices.Net
  • Xenocode

Значит, нам поможет такая утилита, как " de4dot ", она проста, и очень эффективна. Мне лень искать файл под протектором/накрывать файл самому, так-что, я возьму старое изображение.
Собственно после того, как мы поставили "
de4dot " , перетаскиваем обфусцированный файл на его ехешник ( de4dot'a ) , и видим :

-7

Рядом с обфусцированным файлом создаётся уже чистый файл с приставкой " cleaned " , круто, протектор снят ( если он был один, перестрахуйтесь ). Пихаем файл в декомпилятор, и получаем долгожданные исходы.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
На этом всё, я дал вам базовые знания в сфере реверсинга .net файлов, рассказал о софте для работы. Этих знаний критически мало для взлома серьёзных приложений, если отклик будет хорошим - я напишу статью, в которой мы подробнее углубимся в эту тему. Всем удачи! Спасибо, что уделили время.