Вся информация предоставлена строго для ознакомления. Вскрывать чужой софт это плохо!
Думаю, многие из вас умеют разбирать чистые .net файлы ( Если нет - извиняюсь, ниже всё объясню ) , но подумайте, на дворе 2018 год, не думаю, что здравомыслящий девелопер не соизволит накрыть свой файл протектором, коих много. Итак, представим следующую ситуацию : К вам на руки попал... скажем, приватный чит, вы горите желанием его исследовать, и уверены в своих силах. Для первичного анализа файла чита - нам понадобится PE Сканер.
- Что такое PE сканнер?
> Это софт, который поможет тебе, мой юный реверсер - определить на чём нарисована твоя " подопытная " программа ( в нашем случае - чит ), узнать, каким протектором она накрыта. Функций много, как и PE сканеров, перечислять всё не буду. Лично я - использую : " ExeInfo PE " и " Detect it Easy" ( DIE ) . Выглядят они как-то так :
Перетащив софт на форму " ExeInfo PE " мы можем увидеть :
Итак, в сканнере оказался исполняемый файл Темиды, накрытый Темидой. ( да, да,именно так ) Кратко пройдёмся по главному :
Надпись : " Image is 32bit executable " - означает, что файл по дефолту скомпилирован под 32 битные системы.
Чуть ниже мы видим две строки, взглянем на первую : " Themida/Winlicense v.2.x.?.? ( NonSt. OEP code detector "dummy" )
сканер показал, что файл накрыт Темидой версии 2+, и указал на сайт ее производителя. Ниже мы можем увидеть следующие слова : " No Unpacker, ля-ля-ля " . Сканер говорит нам, что распаковать файл, накрытый темидой - невозможно. Он нас обманывает, но не об этом. Перенесём тот-же файл на форму " DIE " , и увидим :
Здесь - аналогичная картина, но указан компилятор программы. С PE Сканнерами мы разобрались, теперь давайте поговорим о декомпиляции чистых .net файлов. Для примера возьму рандомную программу-чит, множество которых мы можем найти на просторах ютуба.
Отлично. Сканер заявляет, что это .net файл, не накрытый каким-либо протектором. Теперь нам нужно его декомпилировать. Софта для декомпиляции .net файлов - много. Лично я использую " dnSpy ", что советую делать и вам. Ниже я покажу, как с помощью него вытащить исходный код с данного файла. Открываем " dnSpy " , перетаскиваем туда наш файлик :
Вот и подъехали наши исходники. Как и предполагалось вместо "чита" нам подсунули обычный майнер криптовалют.
Теперь поговорим о файлах под протекторами. Протекторов наплодилось очень много, сейчас я расскажу о снятии некоторых. Если в сканнере мы видим, что файл накрыт одним из следующих протекторов :
- 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 ) , и видим :
Рядом с обфусцированным файлом создаётся уже чистый файл с приставкой " cleaned " , круто, протектор снят ( если он был один, перестрахуйтесь ). Пихаем файл в декомпилятор, и получаем долгожданные исходы.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
На этом всё, я дал вам базовые знания в сфере реверсинга .net файлов, рассказал о софте для работы. Этих знаний критически мало для взлома серьёзных приложений, если отклик будет хорошим - я напишу статью, в которой мы подробнее углубимся в эту тему. Всем удачи! Спасибо, что уделили время.