Реверс-инжиниринг C++

Сегодня я решил декомпилировать простую программу "Hello world", написанную на Visual C++, используя IDA Pro.

С моим предыдущим знанием я был уверен, что не найду немедленный вызов printf в исполняемой точке входа, и я был прав. Я нашел много кода, написанного не мной и добавленного компилятором в процессе компиляции.

Я хотел бы лучше понимать, какой код добавляется в процессе компиляции. Что оно делает? Есть ли какие-то «хитрости», чтобы быстро найти «главное» и пропустить весь ненужный код, генерируемый дизассемблированием?

Лучшее, что я смог найти, было в этом посте: http://www.codeproject.com/Articles/4210/C-Reverse-Disassembly, порядок выполнения исполняемого файла, скомпилированного с помощью Visual C++, следующий:

  1. CrtlStartUp

  2. main

  3. CrtlCleanUp

Могу ли я получить более подробный ответ?

5
задан Michael 17 August 2016 в 09:41
поделиться