Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Теги: #CTF
Рейтинг: 70.2% · 15 голосов
Capture The Flag, реверс бинарных файлов, разработка эксплойтов, ассемблер, форензика, крэкми и задачи по информационной безопасности.
Аватара пользователя
Rhemix
Сообщения: 71
Зарегистрирован: 12 май 2026, 03:33

Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение Rhemix »

Провокационный вопрос: в 2026, когда Ghidra/IDA выдают читаемый псевдокод на C, есть ли смысл реально учить asm? Или достаточно понимать вывод декомпилятора?
👍 ❤️ 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — coder_vlad
Asm нужен в реверсе в конкретных ситуациях, которые декомпилятор ломает: обфусцированный код с VM-протекторами (VMP, Themida), ручные оптимизации компилятора где Ghidra теряет структуру, shellcode без символов, pack-ed бинари. Ghidra выдаёт псевдокод C, но он генерируется из BNOT-EXPR и прочих промежуточных форм — если ты не понимаешь что происходит на уровне MOV/LEA/XOR, ты не можешь оценить…
Перейти к ответу →
Аватара пользователя
madmonk
Сообщения: 5
Зарегистрирован: 16 май 2026, 20:29

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение madmonk »

Декомпилятор врёт. Регулярно. Особенно на оптимизированном коде, SIMD, нестандартных calling conventions и обфускации он генерит чушь, которую без знания asm ты не отловишь. Так что да, учить надо, хотя бы чтобы не доверять F5 слепо.
👍4 ❤️4 🔥6 😄1 🤔1
Аватара пользователя
Rhemix
Сообщения: 71
Зарегистрирован: 12 май 2026, 03:33

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение Rhemix »

Плюс целые классы задач без asm нерешаемы: shellcode, ROP-цепочки, патчинг байтов, анти-дебаг трюки на флагах. Декомпилятор это ускоритель для того кто и так понимает что под капотом, а не замена понимания.
👍 ❤️ 🔥 😄1 🤔
Аватара пользователя
kingcnut
Сообщения: 33
Зарегистрирован: 12 май 2026, 07:12

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение kingcnut »

Убедили. С чего учить именно под реверс, а не под написание с нуля? Книжки по asm обычно про то как писать программы, а мне читать чужое надо.
👍7 ❤️4 🔥 😄3 🤔1
Аватара пользователя
lena87
Сообщения: 18
Зарегистрирован: 11 май 2026, 04:24

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение lena87 »

Не читай толстые книги про написание. Бери дизасм маленьких функций и руками переводи в C, потом сверяй с декомпилятором. OpenSecurityTraining2 'Architecture 1001: x86-64' бесплатный и заточен ровно под чтение, а не написание.
👍4 ❤️2 🔥 😄1 🤔
Аватара пользователя
regexlover
Сообщения: 18
Зарегистрирован: 21 май 2026, 11:59

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение regexlover »

И поставь себе godbolt (compiler explorer): пишешь C слева — видишь asm справа. Лучший способ прочувствовать как конструкции языка ложатся в инструкции, циклы, switch через jump table и т.д.
👍1 ❤️ 🔥1 😄 🤔
Аватара пользователя
puto
Сообщения: 40
Зарегистрирован: 11 май 2026, 06:02

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение puto »

Godbolt это лучший совет в треде. Я так за неделю наконец понял почему компилятор разворачивает циклы и куда деваются мои переменные. Раньше декомпилятор был магией, теперь читается как книга.
👍1 ❤️ 🔥1 😄 🤔1
Аватара пользователя
coder_vlad
Сообщения: 72
Зарегистрирован: 11 май 2026, 01:57

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение coder_vlad »

✔ Лучший ответ — сформирован автоматически
Asm нужен в реверсе в конкретных ситуациях, которые декомпилятор ломает: обфусцированный код с VM-протекторами (VMP, Themida), ручные оптимизации компилятора где Ghidra теряет структуру, shellcode без символов, pack-ed бинари. Ghidra выдаёт псевдокод C, но он генерируется из BNOT-EXPR и прочих промежуточных форм — если ты не понимаешь что происходит на уровне MOV/LEA/XOR, ты не можешь оценить правильно ли декомпилятор интерпретировал кусок. Особенно это больно с calling conventions и стек-фреймами.
👍2 ❤️2 🔥1 😄 🤔
Аватара пользователя
caffeinebteam
Сообщения: 16
Зарегистрирован: 30 май 2026, 13:27

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение caffeinebteam »

Практически: достаточно читать asm, не писать. Нужно уверенно понимать соглашения вызовов (System V AMD64 ABI — rdi, rsi, rdx, rcx, r8, r9 для аргументов), уметь читать пролог/эпилог функций, понимать как компилятор оптимизирует петли (loop unrolling, autovectorization через XMM). Для этого хватит книги Криса Игла 'The IDA Pro Book' + практики на crackme.one на уровне easy/medium. Неделя-две и базовый словарный запас будет.
👍1 ❤️1 🔥1 😄1 🤔
Аватара пользователя
sainty
Сообщения: 94
Зарегистрирован: 11 май 2026, 02:57

Re: Учу ассемблер x86-64 для реверса — нужен ли вообще, если есть декомпилятор?

Сообщение sainty »

Конкретный пример где декомпилятор не поможет: анализ антиотладочных трюков через RDTSC или IsDebuggerPresent через inline asm — Ghidra их часто просто выбрасывает как dead code или неправильно поднимает в псевдокод. Если занимаешься малварь-анализом, без базового asm будешь постоянно промахиваться мимо ключевых артефактов.
👍 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: ghidra или ida pro для реверса

Вернуться в «CTF и реверс-инжиниринг»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость