Windows系统下的可执行文件,是基于Microsoft设计的一种新的文件结构,此结构被称之为PE结构。PE的意思是Portable Executable(可移植的执行体),所有Win32执行体都是用PE文件格式,其中包括SYS、DLL、EXE、COM、OCX等。

不管是学习逆向、破解还是安全,了解PE文件格式都是非常必要的。

PE文件的第一个部分是IMAGE_DOS_HEADER,大小为64B,这里面有两个重要的数据成员。第一个为e_magic,这个必须为MZ,即0x5A4D。当然,0x5A4D这是典型的小端格式(Little Endian);另一个重要的数据成员是最后一个成员e_lfanew,这个成员的值为IMAGE_NT_HEADERS的偏移。

在IMAGE_DOS_HEADER和IMAGE_NT_HEADERS之间一个DOS Stub,这段程序用于在DOS环境中显示一个字符串,“This program cannot be run in DOS mode”,现在DOS早已灭绝,这段数据由编译器生成,可以用0填充或者删除(删除的话要移动很多数据)。

PE学习(二) IMAGE_DOS_HEADER相关推荐

  1. C#多线程学习(二) 如何操纵一个线程

    C#多线程学习(二) 如何操纵一个线程 原文链接:http://kb.cnblogs.com/page/42529/ [1] C#多线程学习(二) 如何操纵一个线程 [2] C#多线程学习(二) 如何 ...

  2. spring security 学习二

    spring security 学习二 doc:https://docs.spring.io/spring-security/site/docs/ 基于表单的认证(个性化认证流程): 一.自定义登录页 ...

  3. STL源码剖析学习二:空间配置器(allocator)

    STL源码剖析学习二:空间配置器(allocator) 标准接口: vlaue_type pointer const_pointer reference const_reference size_ty ...

  4. mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...

    MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...

  5. OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()

    OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack() 参考博客: Harris角点检测原理详解 Harri ...

  6. OpenCV学习(二十二) :反向投影:calcBackProject(),mixChannels()

    OpenCV学习(二十二) :反向投影:calcHist(),minMaxLoc(),compareHist() 参考博客: 反向投影backproject的直观理解 opencv 反向投影 颜色直方 ...

  7. OpenCV学习(二十一) :计算图像连通分量:connectedComponents(),connectedComponentsWithStats()

    OpenCV学习(二十一) :计算图像连通分量:connectedComponents(),connectedComponentsWithStats() 1.connectedComponents() ...

  8. OpenCV学习(二十) :分水岭算法:watershed()

    OpenCV学习(二十) :分水岭算法:watershed() 参考博客: OpenCV-分水岭算法 图像处理--分水岭算法 OpenCV学习(7) 分水岭算法(1) Opencv分水岭算法--wat ...

  9. OpenCV与图像处理学习二——图像直方图与色彩空间

    OpenCV与图像处理学习二--图像直方图与色彩空间 2.4 图像直方图(Image Histogram) 2.4.1 直方图的绘制 2.4.2 三通道直方图绘制 2.5 颜色空间 2.5.1 RGB ...

  10. PyTorch框架学习二十——模型微调(Finetune)

    PyTorch框架学习二十--模型微调(Finetune) 一.Transfer Learning:迁移学习 二.Model Finetune:模型的迁移学习 三.看个例子:用ResNet18预训练模 ...

最新文章

  1. 飞桨端到端开发套件揭秘:低成本开发的四大秘密武器
  2. 曙光计算机系统,曙光1000大规模并行计算机系统
  3. 【Deep Learning笔记】一个很好的神经网络相关定义(看不懂你来打我)
  4. 微信小程序服务(功能)直达是什么?有什么作用?
  5. dotConnect for Oracle入门指南(八):通过OracleCommand类使用存储过
  6. 17、【 商品管理模块开发】——后台商品图片的springmvc和富文本上传以及ftp文件服务器的开发...
  7. 你家用的净水设备有哪些微生物污染呢?
  8. c语言练习书,谁有C语言入门的练习题?
  9. CUBLAS变量解释(1)
  10. Python编程常见错误表现形式与原因分析
  11. 深度学习 循环神经网络RNN
  12. zabbix3.0.4 邮件告警详细配置
  13. 好书推荐《父与子的编程之旅:与小卡特一起学Python》
  14. p6spy监测mysql_JDBC数据库访问操作的动态监测 之 p6spy
  15. 微信公众平台卡劵功能接入指南
  16. 大数据时代:九个大数据应用领域
  17. matlab二极管伏安特性,基于Matlab对Spice二极管特性受温度影响的研究
  18. 新手操作孕妇防辐射服暴利项目,也能日入500+
  19. 00018计算机应用基础2021,2021年全国自考10月00018计算机应用基础历年试题含答案.doc...
  20. (LeetCode)数数关系——Non-decreasing Array(非递减数组)

热门文章

  1. Paper之DL:深度学习高质量论文分类推荐(建议收藏,持续更新)
  2. Algorithm:树相关算法(BBT/BST/B树/R树)简介(二叉查找树、二叉查找树的插入节点、二叉查找树的删除、二叉树的遍历、平衡二叉树)C 语言实现
  3. Py之ipykernel:Python库之ipykernel简介、安装、使用方法之详细攻略
  4. Ubuntu16.04 安装谷歌浏览器并配置常用插件与扩展
  5. oracle-ORA-01555错误
  6. 内存泄露一个经典例子
  7. 软件安装被分成了两个iso文件怎么安装
  8. MySql数据库explain用法示例_mysql explain的用法
  9. java对象的内存结构_JAVA 对象内存结构
  10. 区块链BaaS云服务(25)边界智能 IRITA平台