Знание компилятора для Reverse Engineer'а? Что нужно знать и понимать о компиляторах Reverse Engineer'у?Что значить - понимать как компилятор генерирует код?И что это может дать при обратной разработке?Сейчас изучаю asm совместно с С,пишу код на C изучаю его через отладчик с дизассемблером.Вижу код на асме,понимаю,что и о чем,но совершенно не понимаю,а почему так?Почему компилятор использует одни инструкции,а не использует другие.Важно ли это вообще?Или мне чтобы разобрать программу,совершенно не важно,почему компилятор сделал именно так как сделал, а важно лишь понять,что он вообще сделал,тобишь понять асм код?

21 Авг 2019 в 06:26
234 +1
0
Ответы
1

Для успешного Reverse Engineering'а необходимо иметь хорошее понимание работы компиляторов и процесса компиляции кода. Reverse Engineer должен знать, как компилятор преобразует исходный код на высокоуровневом языке (например, C) в машинный код.

Понимание того, как компилятор генерирует код, позволяет эффективнее анализировать и понимать обратно написанный код. Знание того, почему компилятор выбрал определенные инструкции и структуры данных, помогает более гелрно понять логику программы и выявить потенциальные уязвимости или ошибки.

Однако, важно отметить, что для успешной обратной разработки программы важнее всего понимать собственно ассемблерный код и логику работы программы, нежели причины выбора компилятором определенных инструкций. В итоге, основной задачей Reverse Engineer'а является понимание работы программы на низком уровне, а все детали работы компилятора - второстепенны.

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир