EXE文件里奇怪的东西!有谁知道?

seuqcaj 2003-08-29 08:38:40
用MASM32生成的PE文件头里,在字符串“This program cannot be run in DOS mode”与“PE”标志之间的是什么东西?竟有几十字节之多!这些东西即不属于dos头,也不属于pe头,我看了所有介绍dos和windows可执行文件格式的资料,全都没有提及那些是什么东西,我把它全填0,文件在dos和windows里仍可正常运行,真是太奇怪了,希望大家都来研究研究。

就是地址0080到00BF这里面的东西

0000 4D-5A-90-00 03-00-00-00 04-00-00-00 FF-FF-00-00 MZ?........
0010 B8-00-00-00 00-00-00-00 40-00-00-00 00-00-00-00 ?......@.......
0020 00-00-00-00 00-00-00-00 00-00-00-00 00-00-00-00 ................
0030 00-00-00-00 00-00-00-00 00-00-00-00 C0-00-00-00 ............?..
0040 0E-1F-BA-0E 00-B4-09-CD 21-B8-01-4C CD-21-54-68 ?.???L?Th
0050 69-73-20-70 72-6F-67-72 61-6D-20-63 61-6E-6E-6F is program canno
0060 74-20-62-65 20-72-75-6E 20-69-6E-20 44-4F-53-20 t be run in DOS
0070 6D-6F-64-65 2E-0D-0D-0A 24-00-00-00 00-00-00-00 mode....$.......
0080 5F-57-0B-BF 1B-36-65-EC 1B-36-65-EC 1B-36-65-EC _W?6e?6e?6e?
0090 95-29-76-EC 16-36-65-EC E7-16-77-EC 1A-36-65-EC ?v?6e扃w?6e?
00A0 52-69-63-68 1B-36-65-EC 00-00-00-00 00-00-00-00 Rich6e?.......
00B0 00-00-00-00 00-00-00-00 00-00-00-00 00-00-00-00 ................
00C0 50-45-00-00 4C-01-03-00 2C-81-86-3E 00-00-00-00 PE..L.,亞>....
00D0 00-00-00-00 E0-00-0F-01 0B-01-05-0C 00-06-00-00 ....? ...
00E0 00-00-01-00 00-00-00-00 8F-11-00-00 00-10-00-00 .......?.....
00F0 00-20-00-00 00-00-40-00 00-10-00-00 00-02-00-00 . ....@.......
0100 04-00-00-00 00-00-00-00 04-00-00-00 00-00-00-00 ..............
0110 00-30-01-00 00-04-00-00 00-00-00-00 02-00-00-00 .0...........
0120 00-00-10-00 00-10-00-00 00-00-10-00 00-10-00-00 ............
0130 00-00-00-00 10-00-00-00 00-00-00-00 00-00-00-00 ...............
0140 20-20-00-00 28-00-00-00 00-00-00-00 00-00-00-00 ..(...........
0150 00-00-00-00 00-00-00-00 00-00-00-00 00-00-00-00 ................
0160 00-00-00-00 00-00-00-00 00-00-00-00 00-00-00-00 ................
0170 00-00-00-00 00-00-00-00 00-00-00-00 00-00-00-00 ................
0180 00-00-00-00 00-00-00-00 00-00-00-00 00-00-00-00 ................
0190 00-00-00-00 00-00-00-00 00-20-00-00 20-00-00-00 ......... .. ...
01A0 00-00-00-00 00-00-00-00 00-00-00-00 00-00-00-00 ................
01B0 00-00-00-00 00-00-00-00 2E-74-65-78 74-00-00-00 .........text...
01C0 9C-05-00-00 00-10-00-00 00-06-00-00 00-04-00-00 ?...........
01D0 00-00-00-00 00-00-00-00 00-00-00-00 20-00-00-60 ............ ..`
01E0 2E-72-64-61 74-61-00-00 E6-00-00-00 00-20-00-00 .rdata..?... ..
01F0 00-02-00-00 00-0A-00-00 00-00-00-00 00-00-00-00 ...............

把它独立出来看:

0080 5F-57-0B-BF 1B-36-65-EC 1B-36-65-EC 1B-36-65-EC _W?6e?6e?6e?
0090 95-29-76-EC 16-36-65-EC E7-16-77-EC 1A-36-65-EC ?v?6e扃w?6e?
00A0 52-69-63-68 1B-36-65-EC 00-00-00-00 00-00-00-00 Rich6e?.......

...全文
46 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2003-08-31
  • 打赏
  • 举报
回复
DELPHI生成的可执行程序也有 DOS STUB.

大家在回贴时请先看清楚楼主的原贴.
W32API 2003-08-30
  • 打赏
  • 举报
回复
这个是 PE 文件结构故意加上去的,以注明该文件运行的系统环境。
在 DOS 下运行时,DOS 系统会显示这一个提示。
c17338996 2003-08-30
  • 打赏
  • 举报
回复
这个鸟东西是采用微软的开发工具开发的时候, 编译的时候,编译器默认添加到dos stub 中的,添加这个冬冬的目的是为了在dos 下能够对这个window 下的程序进行解析执行,不过执行的结果就是告诉你“The program can.....”如果没有这个dos stub ,在dos 下是无法执行windos程序的。 这是ms 人性化的一个体现。
蚊子王 2003-08-30
  • 打赏
  • 举报
回复
对EXE本身来说,好象没有用,可能是LINKER的额外信息吧。
记得DOS下,BORLAND的TLINK在1Fh处要插入TLINK的版本号,对于PE这方面不太清楚。
nicememory 2003-08-30
  • 打赏
  • 举报
回复
mark
紫郢剑侠 2003-08-30
  • 打赏
  • 举报
回复
同意cui(蚊子王) 的看法.
asmzyd 2003-08-30
  • 打赏
  • 举报
回复
DOS插桩代码
seuqcaj 2003-08-29
  • 打赏
  • 举报
回复
请大家看清楚贴子开头的文字内容再回贴,以上两位完全答非所问。
再次说明一下,用Delphi等的linker生成的EXE文件不会有那些奇怪的内容。
即不属于dos头,也不属于pe头!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
gks686 2003-08-29
  • 打赏
  • 举报
回复
如果把PE格式的文档拿到DOS下运行,那么DOS就会装入你所说的那些东西,一般来说是一段显示This program cannot be run in DOS mode字符串的小程序,你把它全部置0,肯定可以在Windows下运行,但在DOS下运行就会出错.另外你可以在连接的时候手工指定这一段程序,详细方法可见LINK.EXE的参数说明文档.
linquanhouzi 2003-08-29
  • 打赏
  • 举报
回复
你取学学 pe结构 网上有自己看好了
Re:  FastDFS 分布式文件系统部署 ============================== FastDFS 分布式存储主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等 它的存储特点是对文件体积小或超小,同时文件的数量特别多的存储情况支持较好,(如果是大文件的存储就推荐使用 Glusterfs 分布式网络文件存储),所谓的小文件就是指网站的图片,文档或者小视频等等,体积范围在4K~500MB之间。所谓的大文件指软件的镜像包、电影等等。 除了FastDFS存储文件特点之外,它同时具备自我负载均衡的能力,可以解决了运维自动化的关键问题。 # 块存储、文件存储、对象存储这三者的本质差别是什么? 1)块存储:磁盘阵列,硬盘(块存储主要是将裸磁盘空间整个映射给主机使用的) 2)文件存储:FTP、NFS服务器(解决文件无法共享的问题) 3)对象存储:内置大容量硬盘的分布式服务器(解决容量、性能、可靠性等问题) 多台服务器内置大容量硬盘,再装上对象存储软件, 然后再额外搞几台服务作为管理节点,安装上对象存储管理软件。 # gluterfs主要运行场景: 存储大文件,针对小文件或超小文件的支持比较差 KVM镜像 视频文件 # FastDFS主要运行场景: 存放文件size范围:4K~500MB # 对象存储 - GlusterFS、Ceph、FastDFS(非对象存储) 必备技能:DRBD/NFS/MooseFS/ GlusterFS/ FastDFS/TFS(http://tfs.taobao.org/)/ # 访问客户端:只能专用API访问实现 存放单元文件size范围:4K~500MB(阅读、声音、视频网站) # 典型用户:      ... ... 

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧