win64
产生的nasm -f win64
格式是什么?
该程序:
extern GetStdHandle, WriteConsoleA, ExitProcess
section .bss
dummy resd 1
section .data
msg db "abc"
msglen equ $ - msg
section .text
_start:
mov rcx, STD_OUTPUT_HANDLE
call GetStdHandle
mov rcx, rax
mov rdx, msg
mov r8, msglen
mov r9, dummy
push NULL
call WriteConsoleA
mov rcx, 0
call ExitProcess
NULL equ 0
STD_OUTPUT_HANDLE equ -11
生成具有某些内容的目标文件,例如包含的外部函数(GetStdHandle
,WriteConsoleA
和ExitProcess
),abc
字符串和变量名({ {1}}。
此的确切格式是什么?我找不到在线的Win64规范。
答案 0 :(得分:0)
我第一次看到this link时,我完全没有意识到它同时讨论了图像文件格式(PE)和目标文件格式(COFF)强>。目标文件格式是我要寻找的。引用:
本文档指定了Microsoft Windows操作系统家族下的可执行文件(图像)和目标文件的结构。这些文件分别称为可移植可执行文件(PE)和通用对象文件格式(COFF)文件。名称“便携式可执行文件”是指该格式不是特定于体系结构的事实。
(重点是我的)