win64的格式是什么?

时间:2019-03-14 20:26:27

标签: object-files

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

生成具有某些内容的目标文件,例如包含的外部函数(GetStdHandleWriteConsoleAExitProcess),abc字符串和变量名({ {1}}。

此的确切格式是什么?我找不到在线的Win64规范。

1 个答案:

答案 0 :(得分:0)

我第一次看到this link时,我完全没有意识到它同时讨论了图像文件格式(PE)目标文件格式(COFF)。目标文件格式是我要寻找的。引用:

  

本文档指定了Microsoft Windows操作系统家族下的可执行文件(图像)和目标文件的结构。这些文件分别称为可移植可执行文件(PE)和通用对象文件格式(COFF)文件。名称“便携式可执行文件”是指该格式不是特定于体系结构的事实。

(重点是我的)