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

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

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

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

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

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

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