masm代码基本套路
;指令集版本
.586
;指定内存的使用方式,调用约定
.MODEL flat,stdcall
;包含操作系统链接库
includelib user32.lib
;包含操作系统链接库
includelib kernel32.lib
;退出进程
ExitProcess PROTO,dwExitCode:DWORD
;弹出一个消息框
MessageBoxA PROTO hWnd:DWORD,lpText:BYTE,lpCaption:BYTE,yType:DWORD
;调用winAPI大小写敏感
opion casemap:none
.data
Number DWORD 0
text db "shellcode",0
.code
;说明函数入口,main
main proc
mov eax,5
mov ebx,6
add eax,ebx
add eax,Number
push 0
push offset text
push offset text
push 0
call MessageBoxA
add esp,16
call ExitProcess
;结束main函数
main ENDP
;结束入口
end main
常见段
;数据段(直接将所需要的空间分配出来)
.data
;未初始化的数据段(将需要的空间暂时不进行分配)
.data?
;常量数据段(该段内容只可读,不可改)
.const
;代码段(存储可执行的命令集)
.code
;堆栈段
.stack