Сегодня я решил декомпилировать простую программу "Hello world", написанную на Visual C++, используя IDA Pro.
С моим предыдущим знанием я был уверен, что не найду немедленный вызов printf в исполняемой точке входа, и я был прав. Я нашел много кода, написанного не мной и добавленного компилятором в процессе компиляции.
Я хотел бы лучше понимать, какой код добавляется в процессе компиляции. Что оно делает? Есть ли какие-то «хитрости», чтобы быстро найти «главное» и пропустить весь ненужный код, генерируемый дизассемблированием?
Лучшее, что я смог найти, было в этом посте: http://www.codeproject.com/Articles/4210/C-Reverse-Disassembly, порядок выполнения исполняемого файла, скомпилированного с помощью Visual C++, следующий:
CrtlStartUp
main
CrtlCleanUp
Могу ли я получить более подробный ответ?