首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PE文件和COFF文件格式分析--概述

随着后来的工作进行,一些任务的和这个理想有了交集,这得以让我有足够的时间和精力去细细研究PE文件和COFF文件格式。...如果没什么耐性去读,可以去读我即将编写的《PE文件和COFF文件格式分析》系列博文,同时我用VC去解析一些文件。...我对PE和COFF文件格式的研究是基于原稿8.2版本的,可能若干年后,我这儿写的东西就存在不对的地方了。之后我们切入正题。        ...PE的全称是Portable Executable,用中文就是“可移植、可执行的”。从这个名字可以看出PE文件格式是一种文件格式标准,该标准并不局限于Windows某个平台,因为它是“可移植”的。...以上是经典的PE文件格式 ? 以上是经典的COFF文件格式        之后我们会讨论更详细的信息。

1.3K20

PE文件格式详解,第一讲,DOS头文件格式

PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容...我们要知道,PE文件格式,是微软半公开的,因为微软并没有说明这个文件格式.但是微软有定义的结构体. 文件格式,是记录文件加载到内存中执行的位置,和偏移 在DOS16位年代下,主要记录分段等等的信息....第一个成员,对应4D 5A两个字节 最后一个成员,对应 00 00 00 D0 (小尾方式) 最后一个成员是保存了新的文件格式地址.所以我们看到D0的位置,正好是PE 那么我们如果不是在16位程序下使用...NT头,PE头,可选头的结构到底是什么.新的格式是怎么样子的....五丶大体的PE结构分布图 DOS头 NT头 {    文件头  可选头   数据目录  } 节头 今天主要是要了解PE的DOS头,以及PE结构的分布图.具体作用以后慢慢讲,主要了解大体框架,随着框架深入

88250
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PE文件格式详解,第二讲,NT头文件格式,以及文件头格式

    PE文件格式详解,第二讲,NT头文件格式,以及文件头格式 PS:本篇博客默认你已经有了汇编基础,所以会使用32位汇编编写最小PE进行讲解 今天详解NT 头格式,以及文件头格式,以及作用..., 关于DOS头文件格式,以及DOSStub昨天的博客已经写过了.主要是分散讲解.便于理解....一丶最小PE的生成,以及标准PE的生成 ps: (如果直接学习NT头,文件头,请不用看这个生成PE,直接看下面讲解即可) 1.标准PE的生成 为了便于学习PE文件格式,所以这里写出一个最小PE,还有一个最小的标准...,生成最小PE(不通用) 首先我们要知道PE中的区在哪里,以及怎么使内存对齐缩小,不至于让PE很大....按照小尾方式,则是 0x014C ,那么对应上面的宏则是386的程序(看注释),而我们的汇编编译出来的标准PE也正是标准PE,如果学习PE,自己可以去看下PE存储 2.可选头大小 ?

    77660

    20231220-简单文件格式读取

    csv文件 read.table("x.txt")读取txt文件 write.csv(x,file="x.csv") 导出csv文件 write.table(x,file="x.txt")导出txt文件...2R语言特有的文件格式 R.data 保存的是变量,不是表格文件,支持保存多个文件 save(x,file="x.R.data") 保存Rdata load("x.Rdata")加载 R.data 3...默认参数不适用读取文件所导致的隐形错误 (1)读取txt文件,没有正确识别列名 修改办法 read.table("x.txt",**header=T**)增加默认参数 (2)读取csv文件时,没有正确识别行名...,并且更改列名中的不规范符号(例如将其他符号更改为句号) 修改办法 read.csv("x.csv",rownames=1,check.names=F) (3)数据框不允许重复的行名 如果读取失败需要先去重复...,在来设置行名 (4)有时数据中有一些缺失值,文件读取失败 解决办法:read.table("x.txt",header=T,fill=T) 把缺失值用NA来代替,但R语言读取TXT文件时,会把所有的空格识别为一个分隔符

    15010

    PE文件格式详解,第三讲,可选头文件格式,以及节表

    PE文件格式详解,第三讲,可选头文件格式,以及节表 一丶可选头结构以及作用 typedef struct _IMAGE_OPTIONAL_HEADER { WORD...Magic;                  /*机器型号,判断是PE是32位还是64位*/ BYTE MajorLinkerVersion;          /*连接器版本号高版本*...WORD MinorOperatingSystemVersion;    /*操作系统版本号低位*/ WORD MajorImageVersion;          /*PE...首先,看PE文件的值,OEP的偏移位置是00001008偏移,那么OD调试,看下位置在哪里. ?...文件中(PE)我们把后面的二进制都修改为我们的代码 ? 入后偏移(RVA)修改为0000000 ? 运行我们的程序,和调试我们的程序 运行程序: ? 可以正常运行 调试程序: ?

    1.4K90

    Linux 安装nodejs_pe安装linux

    linux安装Node.js(详细)Node.js安装教程 文章目录 linux安装Node.js(详细)Node.js安装教程 1:下载 2:解压 3:移动目录 1:创建目录 2:移动目录并重命名 4...:设置环境变量 5:刷新修改 6:安装完成,查看版本号 1:下载 wget https://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz...更多版本选择: ===》更多nodejs版本下载 2:解压 tar xf node-v14.17.4-linux-x64.tar.xz 可以查看当前目录下的文件,执行:ls (命令) 解压成功后可以选择删除压缩包...:rm -rf node-v14.17.4-linux-x64.tar.xz 其中:-f 会提醒是否删除 ;-rf 会强制删除,不会提醒。...3:移动目录 1:创建目录 mkdir /usr/local/lib/node 如果目录已经存在,则无需创建,也可以根据自己的喜好设置目录名称 2:移动目录并重命名 mv node-v14.17.4-linux-x64

    32.5K40

    PE文件和COFF文件格式分析——RVA和RA相互计算

    我在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头2》最后部分,说了一句话“DataDirectory保存了指向“块信息”的目录信息,其中包括偏移(除了IMAGE_DIRECTORY_ENTRY_SECURITY...还有《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1》中介绍的IMAGE_FILE_HEADER::PointerToSymbolTable,它指向的数据是符号表,该信息也是程序运行时不关心的...一般来说,系统加载PE文件时,会先读取文件头信息,查看该文件是否可以重定向(通过判断IMAGE_FILE_HEADER::Characteristics是否包含IMAGE_FILE_RELOCS_STRIPPED...关于节信息,我在《PE文件和COFF文件格式分析——节信息》中有说明。...在《PE文件和COFF文件格式分析——节信息》一文中我介绍VirtualSize属性时这么说的“VirtualSize属性是节加载进入内存后,节在内存中的大小。

    84930

    linux下制作微pe

    准备工具 1.微pe引导及其主要文件 链接:https://pan.baidu.com/s/1e-9zLoEkGLzMuNQ8pqQhpA 提取码:m0hl 2.linux分区软件 实例:gparted...他不支持uefi,并且步骤繁琐 提取微pe的引导文件 直接制作一个可启动分区,把微pe的文件放入就行了。...引用微pe官方的txt(从官方txt中获得的方法233) 感谢您安装了微PE工具箱,本目录包含了微PE的主要启动文件和内核镜像。...这些文件都是隐藏的,删除这些文件或格式化U盘即可删除PE。方法三安装到隐藏分区,在U盘根目录不会出现任何文件,若需要删除方法三安装的PE,只需用方法一二四五重新制作一次PE后手动格式化即可。...WALLPAPER.JPG - 若存在则为自定义PE桌面壁纸文件。 WEPE.INI - 外置程序的配置文件,可以对PE桌面、开始菜单等进行配置。

    10.2K10

    免杀基础之一文学废PE文件格式

    为了避免在PE文件中出现绝对内存地址引入了相对虚拟地址,它就是在内存中相对于PE文件载入地址的偏移量。...文件的一个表示,如果不是"MZ"(16进制0x5A4D),那就不是PE文件,如果是还要看PE头标识。...Signature表示是否是PE,vs中有一个宏来定义它: PE头其实由两部分组成,一个是标准PE文件头,一个是可选头。...先说标准PE头: 标准PE头 在VS中继续跟进查看PE文件头结构体: typedef struct _IMAGE_FILE_HEADER { WORD Machine; //运行平台,在不同平台上...装载器进行PE重定位处理的操作原理流程如下: 在应用程序当中查找硬编码位置 读取之后减去ImageBase,也就是用VA-基址得到RVA 加上实际加载地址得到真正的VA 其中最关键的就是找到硬编码的位置

    1.4K20

    PE文件和COFF文件格式分析--MS-DOS 2.0兼容Exe文件段

    MS 2.0节是PE文件格式中第一个“节”。其大致结构如下:(转载请指明来源于breaksoftware的csdn博客) ?        ...那么为什么PE格式文件会有个Dos文件头呢?Dos系统时代,有两种(我所知道的,我压根没经历过那个年代)可执行文件格式,一种是.exe为后缀的文件,其结构是MZ格式。...于是我们PE可执行文件一开始处便插入了一个MS-Dos 2.0兼容Exe文件头,Dos系统加载我们PE文件时,从一开始读取我们文件,发现是“DOS下可执行程序”,于是成功且顺利的执行我们的程序中DOS...那么NT系统加载我们的PE可执行程序呢?它不会去执行DOS占位程序,而会跳到PE头位置继续读取和执行。PE头位置就是e_lfanew字段的值,该值是PE头和文件头的之间的偏移量。...这儿再废话几句,研究完PE文件格式,我发现一个道理:标准是标准,即使标准很严谨,但是如果标准实现不完善,那么也会产生各种有趣的漏洞和利用。

    1.4K40

    PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3

    PE2》中介绍了一些可选文件头中重要的属性,为了全面起见,本文将会讲解那些不是那么重要的属性。虽然不重要,但是还是可以发现很多好玩的情况。首先看一下32位的可选文件头详细定义。...注意该属性不能说明这个文件是64位文件还是32位文件,至于判断是多少位文件的方案我在《PE2》中已经有了说明。         ...= m_dwSizeOfImage ) { _ASSERT(FALSE); }         SizeOfHeaders的官方解释是MS-DOS占位程序、PE文件头和节头的总大小...我发现我电脑上很多文件的该PE字段和计算出来的不等。官方解释说当驱动程序、在引导时被加载的Dll以及加载到关键windows进程中的DLL都需要校验该字段以确认其合法性。

    1.2K30

    PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1

    本文将讨论PE文件中非常重要的一部分信息。(转载请指明来源于breakSoftware的CSDN博客)         首先说一下VC中对应的数据结构。...对于PE镜像文件,Signature对应的数据是0x00004550(‘PE\0\0’)。...对于如何找到这个位置,在前一篇文章中已经有了解说:从文件头偏移0x3C读取一个DWORD大小的数据,从文件头偏移该数据长度,就到了Signature的起始位置。        ...PE文件是由一系列“节”构成的,比较常见的是.text和.data等节,这样的独立的区块是用来存储“代码”、“数据”和“资源”等信息的。...NumberOfSymbols是0x00000000,该字段记录了该PE文件中调试信息符号表元素个数。

    1.2K40
    领券