![]() |
https://forum.antichat.xyz/attachmen...4113613206.png
Привет. Если ты сейчас читаешь эти строки, значит, тебя не просто манит кибербез. Тебя тянет в самое сердце цифрового мира — туда, где программы предстают не в виде красивых интерфейсов, а в виде чистого, брутального потока инструкций. Ты уже чувствуешь этот зов, да? Но знаешь, что часто приходит вместе с этим интересом? Страх. Гремучая смесь из ассемблера, отладчиков, гексов... Кажется, будто это удел избранных. Гениев из АНБ или тех самых парней, что рвут CTF-турниры. Содержание:
Мы не будем долго тянуть кота за хвост. Сразу к делу: многие новички путают три ключевых понятия. Понимание разницы между ними — твой первый шаг к реальному профессионализму. Готов? Поехали! Фундамент реверсера: Выбираем правильный молоток, чтобы не наломать дров Давай разберемся в терминах. Это важно. Реверс-инжиниринг (Reverse Engineering, RE) Это не просто про «ломать». Это целая философия, широчайшая дисциплина. По сути, ты исследуешь готовый продукт — будь то софт или железка — чтобы понять, как он работает. Зачем? Цели могут быть абсолютно легальными и даже созидательными.
А вот это уже тот самый «темный» уголок RE. Частный случай. Цель тут одна — обойти защитные механизмы. Снять лицензию, убрать триальный период, вытащить ключ из самого кода. Да, с точки зрения закона это почти всегда нелегально. Но знаешь что? С технической точки зрения, задачи, которые решают крэкеры (патчинг Код:
JNEКод:
JMPАнализ вредоносного ПО (Malware Analysis) Еще один крайне востребованный и высокооплачиваемый частный случай RE. Здесь ты вступаешь в схватку с вирусами, троянами, шифровальщиками. Твоя миссия? Понять, что делает зловред, как он распространяется, как его обезвредить. А еще — как написать индикаторы компрометации (IoC) для защитных систем. Это один из топовых скиллов в кибербезе. А еще, если тебя интересуют другие грани кибербезопасности, например, практический фишинг, погрузись в наш детальный гайд по Evilginx и Gophish с обходом 2FA. Видишь? Реверс-инжиниринг — это не про пиратство и уголовку. Это мощнейший инструмент. Он в руках ИБ-специалиста, разработчика и даже системного инженера. Изучая его, ты не просто учишься "ломать". Ты начинаешь понимать, как программы работают на самом низком, фундаментальном уровне. Это меняет твой взгляд на IT. Раз и навсегда. Практика: От статического анализа в Ghidra до дерзкого патчинга в x64dbg Теория — это хорошо. Но реверс — это, мать его, ремесло. Пора запачкать руки. Наша цель проста и понятна: берем простейший CrackMe и обходим в нем проверку пароля. Примерчик можно будет забрать по ссылке [здесь могла бы быть ссылка на файл]. Шаг 1: Статический анализ в Ghidra. Выкапываем логику. Никогда, слышишь, НИКОГДА не запускай незнакомый исполняемый файл сразу. Сначала — статика. Наш выбор — Ghidra. Забудь миф, что это сложно. Это твой швейцарский нож. Скачать актуальную версию Ghidra можно прямо на GitHub.
C: Код:
voidКод:
"SecretPassword123"Код:
strcmpЧто мы только что сделали? Мы провели статический анализ. И получили два инсайта, которые решают 90% задачи:
Теперь наша цель — заставить программу всегда идти по "хорошей" ветке, даже если мы введем самый кривой пароль. Для этого нам нужен отладчик. Встречай — x64dbg. Если что, официальная документация поможет освоить его по полной.
Код: Код:
call
От практики к мастерству: Патчинг исполняемого файла и твой путь дальше Изменение логики в отладчике — круто. Но оно работает до перезапуска. Чтобы твой "взлом" стал постоянным, нужно внести изменения прямо в исполняемый файл. Этот процесс называется патчингом. Патчинг файла: Делаем наш "хак" вечным Возвращаемся в x64dbg. Мы нашли нашу инструкцию Код:
jne short loc_bad_passwordКод:
0x401550Код:
JNEКод:
75Код:
JEКод:
74
Куда двигаться дальше? Твой личный план обучения на 3 месяца. Ты почувствовал вкус победы. Теперь главное — не распыляться. Вот тебе конкретный план действий: Месяц 1: Фундамент и инструменты. Уверенно решаем простые CrackMe. 1. Иди на crackmes.one. Фильтруй: самые легкие, Windows, x86/x64. Скачивай 5-10 штук. Твоя цель — пройти их все.
1. Ищи на crackmes.one задачи, где ключ не лежит в открытом виде, а генерируется. XOR-шифрование, сложение байтов имени, простые математические трюки.
1. Возьми старый, простенький кейген-ми или несложный упаковщик. UPX — отличный первый кандидат для ручной распаковки. Цитата:
Готов ответить на твои вопросы? Поехали! Сложно ли выучить ассемблер x86 для реверс-инжиниринга? С чего начать? Не так страшен чёрт, как его малюют. Тебе не нужно писать на ассемблере программы. Тебе нужно его ЧИТАТЬ. Начни с 15-20 ключевых инструкций: Код:
movКод:
cmpКод:
jmpКод:
callКод:
retКод:
pushКод:
popКак эффективно использовать Ghidra и IDA Free вместе для комплексного анализа? Это уже профессиональный уровень, и подход очень крутой. Используй их сильные стороны. Ghidra — твой основной инструмент для статики, ее бесплатный декомпилятор — просто зверь. Прогоняй бинарник через нее первой. IDA Free/Home — для визуализации. Ее графовый режим отображения функций до сих пор один из лучших для понимания сложной логики и ветвлений. Плюс, у IDA лучше работает система сигнатур (FLIRT) для распознавания стандартных библиотечных функций. Рабочий процесс: первичный анализ и декомпиляция в Ghidra, а сложный или запутанный участок — смотри в графе IDA. Реверс-инжиниринг — это вообще законно? Как мы уже обсудили, зависит от цели и юрисдикции. Исследование для совместимости, поиск уязвимостей (с ответственным раскрытием) — в большинстве стран это легально. Взлом ПО для обхода лицензии — нет, это незаконно. А вот анализ вредоносного ПО — абсолютно легальная, этичная и очень востребованная деятельность. Всегда, слышишь, всегда читай лицензионное соглашение (EULA) программы, которую собрался анализировать. А для обучения — только CrackMe или легально полученные образцы ВПО в изолированной среде. Что делать, если в программе нет символов и функции Код:
mainЭто стандарт. Для реальных (release) программ символов не будет. В этом случае ищи точку входа (в Ghidra это функция Код:
entryКод:
callКод:
lstrcmpКод:
wsprintfКод:
CreateWindowExКод:
GetDlgItemTextКод:
CreateFileСлово за тобой! Этот гайд — лишь вершина айсберга, твоя точка входа в мир RE. Но настоящее мастерство рождается не в одиночку. Оно рождается в практике и, что еще важнее, — в обмене опытом. Теперь слово за тобой. Я намеренно выбрал связку Ghidra + x64dbg как оптимальную для старта. Но я знаю, что в нашем сообществе много адептов IDA, Radare2 или даже WinDbg. Коллеги, какой ваш любимый стек инструментов и почему? Какие у него есть неочевидные преимущества или недостатки для новичка? Расскажи! А теперь, самое интересное: расскажи в комментариях о своем первом взломанном CrackMe. С какими трудностями ты столкнулся? Может, это был хитрый анти-отладочный прием? Или какой-то нестандартный алгоритм проверки? Твой опыт может сэкономить десятки часов кому-то, кто только-только начинает свой путь в реверс-инжиниринге с нуля. И для тех, кто уже прошел этот этап: какие техники обфускации или анти-анализа сейчас доставляют больше всего головной боли? Давайте обсудим современные вызовы: от виртуализации кода в Themida до анализа многоэтапных загрузчиков на .NET. Этот тред — наш шанс создать коллективную базу знаний. Делись советами, задавай вопросы, спорь. Только так мы растем как специалисты. Вперед! |
Практический реверс-инжиниринг" Ефима Брусиловского — прекрасный старт
Это что книга, курс? Что-то я не нашёл его в Гугле ведёт только на профессора-медика и всё |
Описаны элементарные основы.)
Мощной техникой является наследование(taint analysis) данных. Приложение рассматривается не как кучи кода и апи, а как наследование набора исходных данных, например буфера с ключем. В потоке данных остается код обработки ключа. Реализация с нуля весьма сложна, необходимо обработать весь набор инструкций, еще и ввод данных ядерными апи. Использовалось на 32 с кастомным dbi. Чем сделать на 64 не знаю, судя по гуглу есть сборки: Цитата:
|
| Время: 13:59 |