Знание компилятора для Reverse Engineer'а?

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

Также был случай с самостоятельным выявлением бага в компиляторе старого билдера с++, но тут и моя вина есть, не фиг юзать старье.

Досконально знать как компилирует тот или иной компилятор большого смысла нет, чем больше будите реверсить тем больше будет знать как компилируют компиляторы. Все компиляторы (если не вырезали специально) добавляют свои отметки в код. Вам это сильно поможет при реверсинге и отладке стандартных кусков. Вы будете заранее видеть порядок стека и инструкций, порядок функций и банально по их очередности понимать, что делает функция целиком.

Если вы хоть немного покодите на каждом популярном языке и потом разреверсите программу, это полностью даст ответ на ваш вопрос. Особенно это сильно видно в программах на .NET, QT и прочих подобных. Проще всего реверсить, то что ближе к ассемблеру.

В идеале взять hello world на разных компиляторах и посмотреть разницу.

P.S. и ради бога никогда не реверсите ради реверсинга, быстро сгорите. Сначала цель, потом работа. Есть специальные упражнения CrackMe. Для большего интереса я реверсил вирусы крадущие пароли...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы