#x64 #win32 #ассемблер Ввиду обилия форматов, уже поддерживаемых моим движком для импорта, логично было интегрировать в него и импортёр ресурсов из различных программ (иконок и пр.), чем я уже давно желал заняться. И только благодаря этой статье я наконец стал лучше понимать структуру формата Portable Executable, в котором хранятся все исполняемые файлы и библиотеки Windows. https://wasm.in/blogs/hello-world-v-mashinnyx-kodax.683/ Написав свою первую процедуру, которая не просто модифицирует уже имеющийся код, а генерирует пусть и маленькую, но полноценную самостоятельную программу, да ещё 64-битную, я заодно поисследовал специфику кодирования инструкций в архитектуре x86-64, так как имею давний интерес к этой теме. Фреймворк NIPSYS64, в котором работает движок, в дальнейшем будет иметь собственный JIT-компилятор и загрузчик кода с функцией его дизассемблирования/ассемблирования, поэтому такие знания окажутся очень кстати. Пока что можно просто поковыряться в exe-файлах, разобрать их на составляющие, найти DOS-заглушку, точку входа и таблицу импорта, невозбранно повыдирать иконки или метаданные.

Теги других блогов: x64 win32 ассемблер