我在Windows 7中使用nasm製作了一個簡單的MessageBox,對於生成的文件的大小有點不滿意: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可執行文件。
如果有人可以給我鏈接或解釋如何做,我將不勝感激!
你可能會發現[this](http://www.phreedom.org/research/tinype/)有趣。 – 2014-10-20 22:10:49
Nasm實際上並未生成所有這些零,它只是加載頁面中未使用的空間。由於頁面大小是固定的(如果內存服務於4K),它必須包含* something *。 – usr2564301 2014-10-20 22:46:56
下載更多內存。 – 2014-10-20 23:42:50