[转帖]第5章 WINDOWS PE/COFF

windows,pe,coff · 浏览次数 : 0

小编点评

**5.1 Windows 的二进制文件格式PE/COFFWin32平台下标准文件格式为PE,PE=ProtableExecutable。** PE和ELF同根同源都是从COFF(Common Object File Format)发展而来。 **5.2 PE的前身COFFPE文件被装载时直接映射到进程虚拟空间中运行,它是进程虚拟空间的映像,所以PE很多时候被称为映像文件。** **5.3 链接指示信息COFF文件结构和ELF文件结构大体相同,只是前者多了两个段——drectve段和debug$S段。** * **drectve**很显然就是directive的某种缩写形式,而directive是指令的意思,因此它是编译器传递给链接器的链接指令。 * **debug$S**表示与符号相关的调试信息段。 **5.4调试信息在COFF中所有以debug开头的段都是调试信息段。** * **debug$S**表示与符号相关的调试信息段。 **5.5 除了符号表与ELF不同的是COFF还会为字符串常量自动生成符号。** **5.6 WINDOWS下的ELF——PEPE比COFF多了两个主要的变化:** 1. PE文件的开始部分是DOS MZ可执行文件格式的文件头和桩代码。 2. COFF格式中的IMAGE_FILE_HEADER被扩展成为IMAGE_NT_HEADERS。

正文

https://www.jianshu.com/p/35db9df2514f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

 

5.1

Windows的二进制文件格式PE/COFF

Win32平台下标准文件格式为PE,PE=Protable

Executable。

PE和ELF同根同源都是从COFF(Common Object File Format)发展而来。

5.2

PE的前身COFF

PE文件被装载时直接映射到进程虚拟空间中运行,它是进程虚拟空间的映像,所以PE很多时候被称为映像文件。

5.3链接指示信息

COFF文件结构和ELF文件结构大体相同,只是前者多了两个段——drectve段和debug$S段。

drectve很显然就是directive的某种缩写形式,而directive是指令的意思,因此它是编译器传递给链接器的链接指令。

5.4调试信息

在COFF中所有以debug开头的段都是调试信息段。

debug$S表示与符号相关的调试信息段。

还有其他段可参见P165。

5.5大家都有符号表

与ELF不同的是COFF还会为字符串常量自动生成符号。

5.6

WINDOWS下的ELF——PE

PE比COFF多了两个主要的变化:

1、PE文件的开始部分是DOS MZ可执行文件格式的文件头和桩代码。

2、COFF格式中的IMAGE_FILE_HEADER被扩展成为IMAGE_NT_HEADERS。

DOS和WINDOWS下的可执行文件格式都是exe,但是DOS下的却是MZ格式。

与[转帖]第5章 WINDOWS PE/COFF相似的内容:

[转帖]第5章 WINDOWS PE/COFF

https://www.jianshu.com/p/35db9df2514f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 5.1 Windows的二进制文件格式PE/CO

[转帖]HikariCP常用监控指标与故障排查实战

编者有言:本书由资深数据库连接池专家撰写,褚霸、德哥、张亮、吴晟等近10位专家高度评价,从设计思想、功能使用、原理实现、工程实践、技术扩展5个维度对HikariCP进行全面讲解和深入分析。 本文将带你抢先阅读 第10章及第14章节选内容 作者介绍 朱政科,资深架构师,十年IT老兵,对各种数据库连接池

[转帖]openGauss每日一练第 5 天 |学习openGauss创建用户、修改用户属性、更改用户权限和删除用户

https://www.modb.pro/db/199037 自己安装的openGauss环境启动openGaussgs_ctl -D /gauss/data/db1/ start登录openGaussgsql -d postgres -p 26000 -r 1.创建用户user1、user2和us

[转帖]awk(三) 列运算

https://www.jianshu.com/p/b46f783832e3 1. 求每一行中指定列的最大/小值 awk '{m=0;for(x=5;x<=NF;x++)if($x>m) {m=$x};print m}' input.file # 求第5列到最后一列中每行的最大值 awk '{m=0

[转帖]第40艘054A下水,054B分段现身!中国海军护卫舰正式更新换代

https://www.toutiao.com/article/7172377476251845155/ 第10艘第二批次054A护卫舰,也是该批次最后一艘于近日在黄埔造船厂正式下水。这意味着我国有史以来建造数量最多,也是最为成功的护卫舰在建造了40艘以后正式功成身退。而就在同一时间,054B护卫舰

[转帖]第53篇-编译线程的初始化

专注虚拟机与编译器研究 https://www.cnblogs.com/mazhimazhi/p/15796256.html 即时编译(Just In Time,JIT)的运行模式有两种:client模式(C1编译器)和server模式(C2编译器)。这两种模式采用的编译器是不一样的,client模

[转帖]日更第7日: (翻)nginx调优之使用return代替rewrite做重定向

https://www.jianshu.com/p/26dc6c2b5f43 解释说明 NGINX中重写url的能力是一个非常强大和重要的特性,从技术角度讲return与rewrite均能实现。但使用return相对rewrite更简单和更快,因为计算RegEx会产生额外的系统开销。 Return指

[转帖]Redis 运维实战 第09期:Redis 规范

https://cloud.tencent.com/developer/article/1986835 这是专栏《Redis 运维实战》的最后一篇,感谢您的阅读。也感谢 9 篇文章的审稿人:无为,提出了多个修改建议,让文章内容更全面。 由于能力有限,系列文章难免会存在错误或者遗漏,如果您有任何建议,

[转帖]Redis 运维实战 第08期:监控

https://cloud.tencent.com/developer/article/1986832 Redis 在很多互联网公司都充当着非常核心的角色,因此,监控 Redis 以保证其稳定显得格外重要。这节内容就来聊聊 Redis 的一些常见监控项。 1 连接检测 连接失败检测:当监控组件无法连

[转帖]Redis 运维实战 第07期:Hotkey

https://cloud.tencent.com/developer/article/1986830 上一节,我们聊到了 Redis 的 Bigkey,这节内容我们聊聊同样需要引起重视的 Hotkey。 1 背景 Hotkey 指某个时间段访问频率比较高的键值,对应的业务比如热点话题或者热点商品。