鱼C论坛

 找回密码
 立即注册
查看: 2925|回复: 1

[学习笔记] PE-DOS头

[复制链接]
发表于 2017-8-25 17:23:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 阿西吧 于 2017-8-25 17:29 编辑

借用了鱼老师的东西

IMAGE_DOS_HEADER STRUCT
{
+0h  WORD  e_magic  // Magic DOS signature MZ(4Dh 5Ah)     DOS可执行文件标记
+2h  WORD  e_cblp //Bytes on last page of file   
+4h  WORD  e_cp  //Pages in file
+6h  WORD  e_crlc  //Relocations
+8h  WORD  e_cparhdr   //Size of header in paragraphs
+0ah  WORD e_minalloc  //Minimun extra paragraphs needs
+0ch  WORD e_maxalloc  //Maximun extra paragraphs needs
+0eh  WORD e_ss   //
intial(relative)SS value    DOS代码的初始化堆栈SS
+10h  WORD e_sp   // intial SP value                DOS代码的初始化堆栈指针SP
+12h  WORD e_csum   // Checksum
+14h  WORD e_ip   //    intial IP value                    DOS代码的初始化指令入口[指针IP]
+16h  WORD e_cs   // intial(relative)CS value                    DOS代码的初始堆栈入口
+18h  WORD e_lfarlc   // File Address of relocation table
+1ah  WORD e_ovno        //    Overlay number
+1ch  WORD e_res[4]   // Reserved words
+24h  WORD e_oemid   //    OEM identifier(for e_oeminfo)
+26h  WORD      e_oeminfo   //    OEM information;e_oemid specific  
+29h  WORD e_res2[10]   //    Reserved words
+3ch  DWORD   e_lfanew     //Offset to start of PE header             指向PE文件头
} IMAGE_DOS_HEADER ENDS


在DOS头中重要的只有第一个和最后一个,第一个e_magic的是MZ,最后一个e_lfanew是指向NT头在磁盘中的位置
QQ图片20170825172041.png

除了第一个和最后一个部分,其他位置都可以被利用,如UPack就利用了这部分来存放NT头等


在DOS头之下就是DOS存根,没有DOS存根,程序一样可以运行 27.png
在Debug运行之下,这段DOS存根代码就是汇编指令,输出This program cannot be run in DOS mode

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

  • · PE |主题: 2, 订阅: 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-25 18:46:56 | 显示全部楼层
。。。。。。没看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 15:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表