DOS MZ格式EXE文件介绍

PE文件结构学习 PE文件结构学习 PE(Portable Executeable File Format,可移植的执行体文件格式),使用该格式的目标是使链接生成的EXE文件能在不同的CPU工作指令下工作。 Windows操作系统中可执行程序有好多种,比如COM、PIF、SCR、EXE等,这些文件的格式大部分都继承自PE。其中,EXE是最常见的PE文件,动态链接库(大部分以dll为扩展名的文件)也是PE文件。 PE文件的基本结构如下: 一、DOS ME头 IMAGE_DOS_HEADER +00h WORD e_magic 阅读详情

mz exe format
intel byte order

information from file format list 2.0 by max maischein.
the old exe files are the exe files executed directly by ms-dos. they were a major improvement over the old 64k com files, since exe files can span multiple segments. an exe file consists of three different parts, the header, the relocation table and the binary code.
the header is expanded by a lot of programs to store their copyright information in the executable, some extensions are documented below.
the format of the header is as follows :


offset count type description
0000h 2 char id='mz' id='zm'
0002h 1 word number of bytes in last 512-byte page of executable
0004h 1 word total number of 512-byte pages in executable (including the last page)
0006h 1 word number of relocation entries
0008h 1 word header size in paragraphs
000ah 1 word minimum paragraphs of memory allocated in addition to the code size
000ch 1 word maximum number of paragraphs allocated in addition to the code size
000eh 1 word initial ss relative to start of executable
0010h 1 word initial sp
0012h 1 word checksum (or 0) of executable
0014h 1 dword cs:ip relative to start of executable (entry point)
0018h 1 word offset of relocation table; 40h for new-(ne,le,lx,w3,pe etc.) executable
001ah 1 word overlay number (0h = main program)

following are the header expansions by some other prorams like tlink, lzexe and other linkers, encryptors and compressors; all offsets are relative to the start of the whole header :

---new executable
offset count type description
001ch 4 byte ????
0020h 1 word behaviour bits ??
0022h 26 byte reserved (0)
003ch 1 dword offset of new executable header from start of file (or 0 if plain mz executable)

---borland tlink
offset count type description
001ch 2 byte ?? (apparently always 01h 00h)
001eh 1 byte id=0fbh
001fh 1 byte tlink version, major in high nybble
0020h 2 byte ??
---old arj self-extracting archive
offset count type description
001ch 4 char id='rjsx' (older versions)
new signature is 'arjsf'" in the first 1000 bytes of the file)
---lzexe compressed executable
offset count type description
001ch 2 char id='lz'
001eh 2 char version number : '09' - lzexe 0.90 '91' - lzexe 0.91
---pklite compressed executable
offset count type description
001ch 1 byte minor version number
001dh 1 byte bit mapped : 0-3 - major version 4 - extra compression 5 - multi-segment file
001eh 6 char id='pklite'
---lharc 1.x self-extracting archive
offset count type description
001ch 4 byte unused???
0020h 3 byte jump to start of extraction code
0023h 2 byte ???
0025h 12 char id='lharc's sfx '
--lha 2.x self-extracting archive
offset count type description
001ch 8 byte ???
0024h 10 char id='lha's sfx ' for version 2.10 id='lha's sfx ' (v2.13) for version 2.13
---lh self-extracting archive
offset count type description
001ch 8 byte ???
0024h 8 byte id='lh's sfx '
---topspeed c 3.0 crunch compressed file
offset count type description
001ch 1 dword id=018a0001h
0020h 1 word id=1565h
---pkarc 3.5 self-extracting archive
offset count type description
001ch 1 dword id=00020001h
0020h 1 word id=0700h
---bsa (soviet archiver) self-extracting archive
offset count type description
001ch 1 word id=000fh
001eh 1 byte id=a7h
---larc self-extracting archive
offset count type description
001ch 4 byte ???
0020h 11 byte id='sfx by larc '

after the header, there follow the relocation items, which are used to span multpile segments. the relocation items have the following format :

offset count type description
0000h 1 word offset within segment
0002h 1 word segment of relocation


to get the position of the relocation within the file, you have to compute the physical adress from the segment:offset pair, which is done by multiplying the segment by 16 and adding the offset and then adding the offset of the binary start. note that the raw binary code starts on a paragraph boundary within the executable file. all segments are relative to the start of the executable in memory, and this value must be added to every segment if relocation is done manually.

DOS的EXE文件格式 DOS的EXE文件格式 EXE文件格式 加壳 变量动态定位技术 如何在运行时得到main的实际地址? 怎样计算程序的载入地址? 如何跳到 原cs:原ip ? 如何用QV把hello.exe中除了文件头外的全体内容加密? 阅读详情

相关推荐

PE文件格式总结 - DOS文件头、PE文件头、节表和表详解

PE文件格式总结 - DOS文件头、PE文件头、节表和表详解

dvlinker的技术专栏 1万+

Windows可执行文件简述

操作系统中的文件是一种抽象的机制,提供了一种在磁盘上保存信息而且方便以后读取的方法。在Windows操作系统中,一个用户可以最直接体会到的文件的形式就是以.exe、.dll等为扩展名的可执行文件。伴随着Windows操作系统的不断进步,其可执行文件的格式也发生了巨大变化。这期间主要有4个过程:DOS中出现的最简单的以.com为扩展名的可执行文件和以.exe为扩展名的MZ格式(MZ是MZ格式的主要作

benny5609的专栏 8755

MZ EXE的文件格式介绍

以前研究exe时找到的一个文章,应该对一些人有用的。

DOS MZ可执行文件(英語:)格式是DOS中的.EXE可执行文件格式。

(英語:)格式是中的.EXE格式。该文件在用字符串“MZ”(:4D 5A)标识。“MZ”是MS-DOS开发者之一的(Mark Zbikowski)的姓名首字母缩写。DOS MZ可执行文件比格式更晚出现,并与其有一定差别。DOS可执行文件头部包含了重定位信息,使得多个段能被载入到任意内存地址中,并且支持大于64KB的可执行文件;然而该格式仍然要求相对低的内存限制。这些限制后来通过使用DOS扩展器得以绕过。DOS EXE程序的执行环境可以在其程序段前缀中找到。

weixin_40191861的博客 833

通达信波段交易公式实战:如何用副图指标精准捕捉买卖点(附完整源码)

本文深入解析通达信波段交易副图指标的构建与应用,提供完整源码实现,帮助投资者精准捕捉买卖点。通过趋势强度度量、超买超卖判断及信号过滤机制,结合K线图分析,有效提升波段交易的成功率。

weixin_29306317的博客 606

Transformer代码(Pytorch实现和详解)!!!

这个是第一版,有些代码如果不对,欢迎在评论指正,后续会慢慢改,我也是刚接触transformer,若有些地方理解不对还请指正。

xml的博客 5612

PE文件头两个字节MZ的含义

PE文件有一个共同特点:前两个字节为4D 5A(MZ)。 幻数(魔数)是一些文件格式规范所要求的特殊标签值,它表示文件符合这种规范。有时候,人们在选择幻数时加入了幽默的因素。例如,MS-DOS的可执行文件头中的MZ标签是MS-DOS原架构师Mark Zbikowski姓名的首字母缩写。 众所周知,Java的.class文件的幻数为十六进制数Oxcafebabe,选择它作为幻数,仅仅是因为它是一个容易记忆的十六进制数字符串。 ...

qq_43470425的博客 3452

医疗AI新思路:为什么Graph Neural Network能改善气道分割的漏检问题?

本文探讨了Graph Neural Network(GNN)在医疗AI领域改善气道分割漏检问题的创新应用。通过分析3D UNet等传统方法的局限性,揭示了GNN在图结构建模中的独特优势,特别是在捕捉细小末梢支气管方面的突破性表现。文章详细介绍了UNet-GNN混合架构的设计原理、实验性能对比及优化方向,为CT影像分析提供了新思路。

weixin_30379531的博客 224

2.2 PE结构:文件头详细解析

PE结构是`Windows`系统下最常用的可执行文件格式,理解PE文件格式不仅可以理解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,DOS头是PE文件开头的一个固定长度的结构体,这个结构体的大小为64字节(0x40)。DOS头包含了很多有用的信息,该信息可以让Windows操作系统使用正确的方式加载可执行文件。从DOS文件头`IMAGE_DOS_HEADER`的`e_lfanew`字段向下偏移`003CH`的位置,就是真正的PE文件头的位置,该文件头是由`IMAGE_NT_HEAD

微软技术分享 1万+

Mongodb操作与Java(四)MongoTemplate的使用

MongoTemplate的使用

A乐神的博客 3437

用C#+Avalonia写跨平台串口工具:Windows/macOS/Linux通吃,还能解析Modbus+画实时曲线

不管是串口还是蓝牙,核心操作都是“打开连接、发数据、收数据、关连接”,先定义一个// 通信设备接口:统一串口/蓝牙的操作// 连接状态变化事件(UI层订阅)// 接收数据事件(收到数据后触发)// 通信配置(不同设备配置不同,用泛型)// 通信设备接口:统一串口/蓝牙的操作 public interface ICommDevice : IDisposable {// 连接状态变化事件(UI层订阅) event Action < bool > OnConnectionChanged;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 997

EXE是在OS/2、MS-DOS和Windows系统中通用的可执行文件的扩展名。

是在和系统中通用的的。

weixin_40191861的博客 900

操作系统|知识梳理|复习(下)

操作系统复习

知识库搭建ing 1784

浅谈PE文件格式

<br />网上看到的一篇文章,写的还不错,对于入门来说 ^^自己又添了点东西<br />     所有文件都是一些连续(当然实际存储在磁盘上的时候不一定是连续的)的数据组织起来的,不同类型的文件其组织形式也各不相同,PE文件格式便是一种文件组织形式,它是32位Window系统中的可执行文件EXE以及动态连接库文件DLL的组织形式。<br />     加上几句:操作系统识别可执行文件的方法是按照文件格式而不是按照扩展名。扩展名只起到了一部分作用。例如将exe改为pif或者scr,双击后照样能运

liziyun537的专栏 859

数控系统(CNC)系列:Fanuc 31i-B_(5).基本操作与编程

Fanuc 31i-B 系统使用 G 代码和 M 代码进行编程。G 代码主要用于控制机床的运动,M 代码用于控制辅助功能,如冷却液开关、主轴启动等。G 代码:用于指定机床的运动方式。例如,G00 用于快速定位,G01 用于直线插补,G02 用于顺时针圆弧插补,G03 用于逆时针圆弧插补。M 代码:用于控制机床的辅助功能。例如,M03 用于启动主轴顺时针旋转,M05 用于停止主轴,M08 用于开启冷却液,M09 用于关闭冷却液。

2401_87715305的博客 1766

PCIE的MSI中断处理机制与优化策略

PCIe设备的。

xiaoheshang_123的博客 516

可执行文件结构:PE文件结构讲解

我们使用电脑时肯定会接触各种各样的应用程序,有应用程序就会有对应的可执行文件,比如最常见的.exe文件。事实上,Windows平台下,所有的可执行文件(包括EXE、DLL、SYS、OCX、COM......)使用的都是同一种文件结构,也就是PE(Portable Executable)文件结构。所以说所有可执行文件究其本质都可以叫它PE文件。这里要注意一点:事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任何扩展名。 下面就来结合事例详细介绍一下PE文件到底是个什么东西。

qq_46145027的博客 3092

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Windows可执行文件简述(一)

<br />操作系统中的文件是一种抽象的机制,提供了一种在磁盘上保存信息而且方便以后读取的方法。在Windows操作系统中,一个用户可以最直接体会到的文件的形式就是以.exe、.dll等为扩展名的可执行文件。伴随着Windows操作系统的不断进步,其可执行文件的格式也发生了巨大变化。这期间主要有4个过程:DOS中出现的最简单的以.com为扩展名的可执行文件和以.exe为扩展名的MZ格式(MZ是MZ格式的主要作者Mark Zbikowski的名字的缩写)的可执行文件,Win 3.x下出现的NE(New Exe

zhangxinrun的专栏 1169

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机能直接执行的语言程序是,计算机能够直接执行的程序是什么语言

可执行程序。1.可执行程序(executable program,EXE File)是指一种可在操作系统存储空间中浮动定位的特殊程序。在MS-DOS和MS-WINDOWS下,此类文件扩展名为.exe。2.根据事实来看,由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”,由汇编语言编写的程序称为“汇编程序”。3.对于计算机本身来说,它只能接收和处理由0到1的代码构成的二进制指...

weixin_39968861的博客 2891

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

学破解 <一> PE格式之MS-DOS MZ header

PE的意思就是这个 the Protable Executable (PE) file format 微软搞得那么一套东西,字面意思是可移植的,但是现实使用中没见他多么的可移植,PE格式借鉴了UNIX系统中的COFF (Common Object File Format) 格式。而且PE对MS-Dos的兼容,保留了MS-Dos头,在dos下打开会提示 “这是win32程序在dos下不能跑” 向

王意林的专栏 4909

dos下的exe文件格式解析

yangyongsheng20的专栏 3017

备份 DIY的一个DOS MZ EXE file loader

备份原百度空间的文章 2011-04-14 08:56 DIY的一个DOS MZ EXE file loader, 是这几天复习PE文件格式的副产品 ; mzLoader.asm ; 自已写的一个MZ EXE文件加载运行器,要求EXE的可重定位程序映像部分不要太大,不要超过64KB-100H(psp)的大小 include common16.inc assume  cs:

jcw2012的专栏 779

汇编语言程序设计 - 显示EXE文件的头信息

本程序旨在读取并显示一个DOS可执行文件(.EXE文件)的头信息。具体来说,该程序需要打开一个名为“xxx.exe”的文件,读取其头部信息并将其逐项打印出来,并在每个信息前面加上相应的标注,使输出的信息清晰易读。

m0_60740070的博客 1735

DOS标准的 MZ 格式可执行文件详细结构

MZ格式是DOS可执行文件标准结构,以"4D5A"(ASCII"MZ")签名开头。其64字节头部包含关键参数:文件大小、内存需求、入口点(CS:IP)、堆栈(SS:SP)及重定位表位置。文件由三部分组成:MZ头、重定位表和512字节对齐的程序映像。加载时需进行段地址重定位,与COM文件相比支持更大内存和灵活入口。现代PE格式仍保留MZ头实现兼容。该结构定义了DOS程序加载的基础规范,影响后续Windows可执行格式设计。

cxhust001688的博客 630

dos下c语言程序运行,用简单C程序分析DOS下的EXE文件

DOS下的EXE文件格式比较简单,所以咱们先把Windows下的那个复杂的EXE文件放一边,挑个软柿子捏捏(以下EXE如不特殊说明均指DOS下的EXE文件格式)。其实网上关于EXE格式的说明很多,大都是哗啦列出大批格式说明,看得人是头晕脑胀的。等自己搞懂了,总觉的其中个别说明不太精确导致自己误解浪费了不少时间。所以,咱们要自己动手去实践一下,边动手边理解就容易多了。至于本次分析为什么用C,这个嘛,...

weixin_35867608的博客 819

PE文件格式

PE 的意思就是 Portable Executable(可移植的执行体)。它是 Win32环境自身所带的执行体文件格式。它的一些特性继承自 Unix的 Coff (common object file format)文件格式。"portable executable"(可移植的执行体)意味着此文件格式是跨win32平台的 : 即使Windows运行在非Intel的CPU上,任何win32平台的P

soft_biao的专栏 1656
上一篇: 十进制转八进制
SearchLife
博客等级 码龄20年 51粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值