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