Я создал простой MessageBox, используя nasm в Windows 7, и я был немного недоволен размером сгенерированного файла: 2.51 kb.Вручную создать PE
extern MessageBoxA
extern ExitProcess
import MessageBoxA user32.dll
import ExitProcess kernel32.dll
section .text use32
..start:
push 0
push sCapt
push sText
push 0
call [MessageBoxA]
push 0
call [ExitProcess]
section .data
sCapt db 'test', 0
sText db 'test2', 0
Итак, я открыл исполняемый файл в OllyDbg, и, похоже, он генерировал много ненужных вещей.
Так, чтобы узнать немного больше, я хотел бы сделать эту программу непосредственно в шестнадцатеричном, чтобы остаться с минимально возможным размером! Я искал, но не нашел ничего, обучая тому, как создать исполняемый файл PE вручную.
Если кто-то может дать мне ссылки или объяснить, как это сделать, я был бы благодарен!
Вы можете найти [это] (http://www.phreedom.org/research/tinype/) интересно. –
Nasm фактически не генерировал все эти нули, это просто неиспользуемое пространство на странице загрузки. Поскольку размер страницы фиксирован (при сохранении памяти 4K), он должен содержать * что-то *. – usr2564301
Скачайте больше RAM. –