Post

RU | Reversing 'PE DotNet - 0 protection' from root-me.org

First

Решил взять тоже лёгкое, но более интересное задание, смысл которого разреверсить C# приложение. Приступим.

На всякий случай убедимся, что это .NET приложение, и воспользуемся утилитой file (в моем случае через mingw): Second

Запускаем ch22.exe и видим перед собой такую картину: Third

Если просто загрузить наш бинарник в Ghidra, - мы увидим просто кучку байтов из-за того, что .NET сначала компилируется в промежуточный байткод, а не в исполняемый. Ghidra не поддерживает эту архитектуру, поэтому немного погуглив, можно обнаружить кучу инструментов.
Мой выбор пал на dnSpy.(Прочитать про инструмент и его возможности вы можете как раз в описании на гитхабе или просто поискать видосики на ютубе).
Скачиваем, устанавливаем, открываем GUI версию: Four

Далее, Файл -> Открыть… / CTRL + O
И открываем наш exeшник.
Сейчас нас интересует столбец “Обозреватель сборок”. Бегаем глазами по всему каталогу, интуитивно отбрасываем ненужные вкладки, в итоге находим класс Form1.
Смотрим код внутри класса и понимаем, что это как раз больше всего похоже на то, что нам нужно. Пролистываем инструкции, натыкаемся на функцию Button1_Click, а внутри неё на подозрительную CompareStrings: Five

Смотрим на аргументы, встречаем строчку “DotNetOP” и пробуем ввести её в качестве пароля. Six

Получаем +10 очков и радуемся.

This post is licensed under CC BY 4.0 by the author.