Самоизоляция – отличное время, чтобы начать дело, требующее много времени и сил.
Поэтому я решил сделать то, что всегда хотел — написать собственный компилятор.
Теперь он способен компилировать Hello World, но в этой статье я хочу поговорить не о парсинге и внутренней структуре компилятора, а о такой важной части, как побайтовая сборка exe-файла.
Начинать
Хотите спойлер? Наша программа будет занимать 2048 байт. Обычно работа с exe-файлами предполагает изучение или изменение их структуры.Сами исполняемые файлы затем генерируются компиляторами, и этот процесс кажется разработчикам немного волшебным.
Но сейчас мы постараемся это исправить! Для сборки нашей программы нам понадобится любой HEX-редактор (лично я использовал HxD).
Для начала возьмем псевдокод: Источник
Теги: #Разработка для Windows #Windows #Ассемблер #winapi #exe #PEfunc MessageBoxA(u32 handle, PChar text, PChar caption, u32 type) i32 ['user32.dll'] func ExitProcess(u32 code) ['kernel32.dll'] func main() {
Вместе с данным постом часто просматривают:
-
Меньше - Больше
19 Oct, 24 -
Счетчики Просмотров Тем
19 Oct, 24 -
Rss-Farm.ru - Ваши Полнотекстовые Rss-Каналы
19 Oct, 24 -
Дети И Компьютер
19 Oct, 24