随着后来的工作进行,一些任务的和这个理想有了交集,这得以让我有足够的时间和精力去细细研究PE文件和COFF文件格式。...如果没什么耐性去读,可以去读我即将编写的《PE文件和COFF文件格式分析》系列博文,同时我用VC去解析一些文件。...我对PE和COFF文件格式的研究是基于原稿8.2版本的,可能若干年后,我这儿写的东西就存在不对的地方了。之后我们切入正题。 ...PE的全称是Portable Executable,用中文就是“可移植、可执行的”。从这个名字可以看出PE文件格式是一种文件格式标准,该标准并不局限于Windows某个平台,因为它是“可移植”的。...以上是经典的PE文件格式 ? 以上是经典的COFF文件格式 之后我们会讨论更详细的信息。
PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容...我们要知道,PE文件格式,是微软半公开的,因为微软并没有说明这个文件格式.但是微软有定义的结构体. 文件格式,是记录文件加载到内存中执行的位置,和偏移 在DOS16位年代下,主要记录分段等等的信息....第一个成员,对应4D 5A两个字节 最后一个成员,对应 00 00 00 D0 (小尾方式) 最后一个成员是保存了新的文件格式地址.所以我们看到D0的位置,正好是PE 那么我们如果不是在16位程序下使用...NT头,PE头,可选头的结构到底是什么.新的格式是怎么样子的....五丶大体的PE结构分布图 DOS头 NT头 { 文件头 可选头 数据目录 } 节头 今天主要是要了解PE的DOS头,以及PE结构的分布图.具体作用以后慢慢讲,主要了解大体框架,随着框架深入
我们再用一个图来描述一下PE导出表在View dependencies中显示的相关关系 ? ...我们再把它的PE文件拿出来看下 ? ...用之前《PE文件和COFF文件格式分析——RVA和RA相互计算》介绍的算法,我们可以得出 导出地址表RVA(0x00002E58)对应的RA是0x00002258。...PE文件序数表的元素是WORD为单位的,而Base是DWORD。那么就是说,我们最多可以有0x10000(0x0000~0xFFFF)个导出函数。...我们看下PE文件中的布局 ?
在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3》中,我们看到一些区块的信息都有偏移指向。...在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1》中,我们描述过,IMAGE_FILE_HEADER::NumberOfSections就是用于指定该节信息的个数的。...和PE Explorer等都是这么做的。...我们先看Stud_PE的分析结果 ? 可以看到Stud_PE对第5节的名字的解析是错的的,那正确的是什么?...现在我们要回顾《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1》,该文中我埋了一个伏笔,我把段提出来 PointerToSymbolTable是0x00000000
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.可选头大小 ?
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文件时,会把所有的空格识别为一个分隔符
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 ? 运行我们的程序,和调试我们的程序 运行程序: ? 可以正常运行 调试程序: ?
fasta pic1 图片 fastq pic2 图片 gff pic3,4 图片 图片 gtf pic5,6 图片 图片 按列隔开 column -t | l...
根据网上查阅的读取方法 import pickle file=open("....dataset-cornell-length10-filter1-vocabSize40000.pkl","rb") data=pickle.load(file) print(data) file.close() 在这里,注意在读取的使用的是...”rb”,也就是二进制文件格式,而”r”是普通格式的读取 用print输出结果显示是这样的 。。。。。。。...dataset-cornell-length10-filter1-vocabSize40000.pkl","rb") data=pickle.load(file) pprint.pprint(data) file.close() 好吧,读取的方式是一样的
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
我在《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属性是节加载进入内存后,节在内存中的大小。
准备工具 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桌面、开始菜单等进行配置。
为了避免在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 其中最关键的就是找到硬编码的位置
概述 WAV文件格式是Microsoft的RIFF规范的一个子集,用于存储多媒体文件。...如果对此概念不是很了解,可以查看此文章: Linux音频驱动-声音采集过程 .ByteRate: 每秒所需的字节数。
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文件格式,我发现一个道理:标准是标准,即使标准很严谨,但是如果标准实现不完善,那么也会产生各种有趣的漏洞和利用。
而在《PE文件和COFF文件格式分析——导出表》中,我却避开了这个话题。我就是想在本文中讨论下载Exe中存在导出表的场景。...(转载请指明出于breaksoftware的csdn博客) 首先要说的是Exe是可以有导出表的,我用我写的PE分析工具扫描了我电脑上所有文件。发现有导出表的Exe文件还不少。...那我们收敛一下方案,我们做个空壳DLL(使用《PE文件和COFF文件格式分析——导出表》介绍的类似于Kernel32.dll的AddVectoredExceptionHandler导出方法,这个方法的应用我会在之后写篇文章介绍
如果觉得不可思议,可以先看《PE文件和COFF文件格式分析——导出表》中关于“导出地址表”的详细介绍。
3. elf elf 包支持读取和解析 ELF(Executable and Linkable Format)文件。ELF 是类 Unix 系统上常见的可执行文件格式。...通过 elf 包,可以分析和操作 ELF 二进制文件,这对于 Linux 和其他 Unix 类系统上的低级调试和系统编程至关重要。...5. macho macho 包支持读取和解析 Mach-O(Mach Object)文件。Mach-O 是 macOS 和 iOS 上的可执行文件格式。...6. pe pe 包支持读取和解析 PE(Portable Executable)文件。PE 是 Windows 系统上的可执行文件格式。...应用场景:在 Windows 系统上,运维人员可以利用 pe 包分析服务崩溃的原因,并进行调试。 7. plan9obj plan9obj 包支持读取 Plan 9 a.out 对象文件。
《PE2》中介绍了一些可选文件头中重要的属性,为了全面起见,本文将会讲解那些不是那么重要的属性。虽然不重要,但是还是可以发现很多好玩的情况。首先看一下32位的可选文件头详细定义。...注意该属性不能说明这个文件是64位文件还是32位文件,至于判断是多少位文件的方案我在《PE2》中已经有了说明。 ...= m_dwSizeOfImage ) { _ASSERT(FALSE); } SizeOfHeaders的官方解释是MS-DOS占位程序、PE文件头和节头的总大小...我发现我电脑上很多文件的该PE字段和计算出来的不等。官方解释说当驱动程序、在引导时被加载的Dll以及加载到关键windows进程中的DLL都需要校验该字段以确认其合法性。
本文将讨论PE文件中非常重要的一部分信息。(转载请指明来源于breakSoftware的CSDN博客) 首先说一下VC中对应的数据结构。...对于PE镜像文件,Signature对应的数据是0x00004550(‘PE\0\0’)。...对于如何找到这个位置,在前一篇文章中已经有了解说:从文件头偏移0x3C读取一个DWORD大小的数据,从文件头偏移该数据长度,就到了Signature的起始位置。 ...PE文件是由一系列“节”构成的,比较常见的是.text和.data等节,这样的独立的区块是用来存储“代码”、“数据”和“资源”等信息的。...NumberOfSymbols是0x00000000,该字段记录了该PE文件中调试信息符号表元素个数。
领取专属 10元无门槛券
手把手带您无忧上云