学习
实践
活动
工具
TVP
写文章

十六.PE文件逆向基础知识(PE解析、PE编辑工具PE修改)

这篇文章将介绍基础知识,详细讲解PE文件格式,熟悉各种PE编辑查看工具,针对目标EXE程序新增对话框等,这也为后续PE病毒和恶意代码的攻防打下扎实基础。 该样本不会分享给大家,分析工具会分享。(参考文献见后) 一.PE文件基础 什么是PE文件? Stud_PE:可按照PE文件格式对目标文件的各字段进行详细解析。 Ollydbg:可跟踪目标程序的执行过程,属于用户态调试工具。 查看文件 (1) 使用PEView查看文件属性 PEview.exe工具是一款可以进行PE文件解析的强大PE文件解析工具,通过PEview软件可以分析PE文件的详细格式。 五.总结 文章写到这里,就介绍完毕,本文主要讲解PE文件解析、PE编辑工具使用和PE结构修改,属于系统安全和PE逆向相关知识,希望对您有所帮助。

1.8K51

PE知识复习之PE合并节

PE知识复习之PE合并节 一丶简介    根据上一讲.我们为PE新增了一个节. 并且属性了各个成员中的相互配合. 以前我们讲过PE扩大一个节怎么做. 合并节跟扩大节类似. 只不过一个是扩大. 一个是合并了. 合并节的步骤.   1.修改文件头节表个数   2.修改节表中的属性     节.sIzeofRawData 节数据对齐后的大小.   3.修改扩展头中PE镜像大小 SizeofImage   4.被合并的节以 最后一个节表以0填充即可.   3.修改扩展头的PE镜像大小. SizeofImage ? 我们上一讲新增了一个节.所以映像大小为0x1E000.

41020
  • 广告
    关闭

    云服务器应用教程

    手把手教您从零开始搭建网站/Minecraft游戏服务器/图床/网盘、部署应用、开发测试、GPU渲染训练等,畅享云端新生活。

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

    制作Win11PE用于云服务器

    制作winpe的软件很多,我自己已经习惯用WimBuilder2,网上制作Win11PE的资料很少很少,这个完全是我摸索出来的,分享给有缘人。 ,在vmware虚拟机的光驱上挂载BOOTPE.iso马上就能看效果(下图是没改默认键盘的)图片图片上面只是粗制,还需要精修,比如,放自己惯用的浏览器、运维工具、常用命令比如telnet.exe、wget.exe browsers/portable发现mstsc报错,干脆找了multidesk.exe重命名成mstsc.exe进行功能替代boot.wim定稿后,用7z打开发现里面有[DELETED]占用空间,用特殊工具 【步步为营】处理一下就会变小图片步步为营.zip整理完以后[DELETED]就消失了图片【Win11PE使用中的注意事项】关于multidesk远程和smb共享文件夹:默认是Administrator用户 ,鲜有Win11PE

    36540

    使用微PE工具箱安装重装windows系统

    背景/情怀 目前比较盛行的两种使用U盘重装系统的方法分别是官方iso镜像直接安装和微pe工具辅助安装,前者功能虽然能达到目的,但是功能过于简单(制作启动盘/为磁盘分区),且一旦出现bug很难处理(我就碰到了 WePE工具箱是UEPON李培聪在提出像安装搜狗输入法、QQ那样以安装包的形式安装PE的想法后产生的作品,v1.0版本由他一人完成。这里贴上UEPON的知乎。本文也是要利用这位大神开发的工具。 加载一段时间文件后会出现如下界面,即WePE工具箱配置而成的PE系统,不得不说还是很干净很舒服的。 image.png 打开桌面上的CGI备份数据还原,桌面上没有就点开始/搜索输入。 (上面设置了U盘优先级,不拔的话重启还是会打开刚才的PE系统) 之后啥也不用干,等待开机完成即可! /zixun/zhuangjijiaocheng/2020-10-12/5879.html 微pe工具箱U盘还原教程: https://www.somode.com/softjc/13750.html

    2.3K20

    PE知识复习之PE的导入表

    PE知识复习之PE的导入表 一丶简介   上一讲讲解了导出表. 也就是一个PE文件给别人使用的时候.导出的函数 函数的地址 函数名称 序号 等等.    一个进程是一组PE文件构成的. PE文件需要依赖那些模块.以及依赖这些模块中的那些函数.这个就是导入表需要做的. 确定PE依赖那个模块. 确定PE依赖的那个函数. 以及确定函数地址. PE加载前加载后的区别. 一样是一样的.但是需要分清 PE加载前.还有PE加载后.如果加载前,那么IAT跟INT一样.都可以找到依赖的函数名称. PE加载后如下图: ? IAT表保存的就是函数地址了. 从导入表中找到IAT表. ? IAT表的RVA 偏移为 0x1A098 VA == 41A098 ? PE加载后INT 表同上. IAT表变成了存储函数地址的地址表了.   2. Name 民称表. 直接指向DLL名称文件名.

    42320

    推荐一个在线测试服务器延迟和丢包的工具 Ping.pe

    Ping.Pe 是一个非常强大的免费站长工具,可以从全世界 30 个节点检测网站 Ping 时间、MTR 和封包传输速度,站长们只要输入查询的 IP 或域名就能从全世界 30 个测试节点来测试封包的传输时间 如何使用 Ping.pe Ping.pe 是一个在线检测服务,其官方网址为:https://ping.pe/ 。直接访问就可使用,无须注册或登入帐号。 Ping.pe 的每个节点都会提供相关 MTR 信息,非常好用。 Ping.pe 还提供了一个很实用的小工具,点选下方「Save as Image」就能将检测结果截图并转成一张图片链接。 最后在推荐一个备选工具:如果你所在地区 Ping.pe 不能使用,可以试试这个不错的备选网站 https://ipcheck.need.sh。 ? 检测之后也是以绿色表明畅通,红色表明不通。

    6.6K30

    PE知识复习之PE新增节

    PE知识复习之PE新增节 一丶为什么新增节.以及新增节的步骤     例如前几讲.我们的PE文件在空白区可以添加代码.但是这样是由一个弊端的.因为你的空白区节属性可能是只读的不能执行 我们新增的节.自己需要在PE文件添加一段节数据.数据的大小按照文件对齐添加. 并且填写到这个成员中.     6.修改扩展头的PE镜像大小. sizeofImage. 这个成员才是关键.如果不按照内存对齐修改镜像大小.那么我们的节就不会映射到内存中.或者PE文件根本无法执行. 二丶根据新增节步骤.实战手工添加一个节.     1.添加一个节表         添加节表的时候.需要在最后一个节后面添加.随便哪一个PE文件举例 ?      跳转过去之后发现就是我们刚才填写FFFF的数据.已经成功映射了.至此我们就为这个PE文件新增了一个节.

    50230

    PE知识复习之PE扩大节

    PE知识复习之PE扩大节 一丶为什么扩大节   上面我们讲了,空白区添加我们的代码.但是有的时候.我们的空白区不够了怎么办.所以需要进行扩大节.    并且在PE文件中添加0数据进行填充即可. Characteristics;          //节的属性 } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; 二丶扩大节实战以及注意问题   PE 还要修改扩展头中的 SizeofImage(内存PE镜像大小) 三丶扩大节实战   1.添加数据   随便找一个PE文件.在最后文件偏移处添加数据. 但是注意,修改之后并不能直接查看.因为PE没法运行.我们必须修改扩展头中的sizeofImage属性.这样我们的内存镜像大小才是真正的大小.

    43730

    PE知识复习之PE的节表

    PE知识复习之PE的节表 一丶节表信息,PE两种状态.以及重要两个成员解析.   确定节表位置: DOS + NT头下面就是节表.    Characteristics;          //节的属性 } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; 节表重要成员都标红了.我们知道.PE 以及文件展开后.节数据在文件中的那个偏移位置. 1.内存中节开始的位置 我们分别以PE两种状态.来加深一下.在内存中跟文件中节数据起始位置. 这也解释了PE在内存中展开跟在文件中是不一样的. 也加深了节表中 VirtualAddress成员 以及 PointerToRawData成员了.

    43020

    PE知识复习之PE的重定位表

    PE知识复习之PE的重定位表 一丶何为重定位       重定位的意思就是修正偏移的意思. 如一个地址位 0x401234 ,Imagebase = 0x400000 . 首先我们知道.一个EXE文件.会调用很多DLL(PE) 有多个PE文件组成. exe文件启动的基址 (ImageBase) 是0x40000. 假设我们调用三个DLL A B C. 但是我们知道.PE文件中有很多RVA .RVA 是相对于ImageBase的偏移进行存放的. 如果PE文件中都是 RVA 那就好办了. 但是不一定呀. 我们知道.一个PE文件需要很多地方进行重定位的.比如这个记录的 大小为16. 所以修复的位置是 0x116b0的位置. 0x116b0 + 当前PE文件的ImageBase就是要进行重定位的位置 当前PE的Imagebase为0x400000 重定位地方为 0x4116b0位置

    65330

    PE知识复习之PE的导出表

    PE知识复习之PE的导出表 一丶简介  在说明PE导出表之前.我们要理解.一个PE可执行程序.是由一个文件组成的吗. 答案: 不是.是由很多PE文件组成.DLL也是PE文件.如果我们PE文件运行.那么就需要依赖DLL.系统DLL就是Kerner32.dll user32.dll等等.这些都是PE文件. 什么是导出表:     导出表就是当前的PE文件提供了那些函数.给别人用. 举个例子: PE文件相当于一个饭店.那么菜单就是导出表. 所以我们需要转换为FOA 去PE文件中查看. RVA 判断在那个节. 如果在内存中.我们直接RVA + 当前PE的ImageBase就可以看到函数导出的名称了.不过我们现在算一下.

    70720

    PE框架学习之道:PE框架——style的配置

    <param name=“option”>false</param> –是否可以为空,不写就默认为false

    16720

    PE知识复习之PE的绑定导入表

    PE知识复习之PE的绑定导入表 一丶简介   根据前几讲,我们已经熟悉了导入表结构.但是如果大家尝试过打印导入表的结构. INT IAT的时候. 会出现问题. PE在加载前 INT IAT表都指向一个名称表. 这样说是没错的. 但是如果你打印过导入表.会发现一个问题. 有的EXE程序.在打印IAT表的时候.发现里面是地址. 原因:   我们的PE程序在加载的时候.我们知道. PE中导入表的子表. IAT表.会填写函数地址. 但是这就造成了一个问题.PE程序启动慢.每次启动都要给IAT表填写函数地址.    优点:   PE程序启动变快. 缺点:   如果DLL的ImageBase变了.那么就需要进行重定位.因为在文件中你填写的地址是固定的地址. PE的文件名 WORD NumberOfModuleForwarderRefs;        //依赖的另外的DLL有几个 // Array of zero or more IMAGE_BOUND_FORWARDER_REF

    53420

    PE刷题记

    PE 中文翻译 最喜欢做这种很有意思的数学题了虽然数学很垃圾 但是这个网站的提交方式好鬼畜啊qwq 1.Multiples of 3 and 5 直接枚举 2.Even Fibonacci numbers

    30240

    PE文件简介

    PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行 包含其他外来dll的函数以及数据信息,即输入表 .rsrc:包含全部的资源,如图标、菜单、位图等等 每个区块在内存中按页边界对齐,区块没有大小限制,是一个连续的结构,每个块都有对应的属性 pe 文件大致结构如下图所示: 一般在说到PE文件时都会涉及到以下几个名词 基地址(ImageBase):PE文件被加载到内存中的首地址,是这个模块的句柄,可以使用函数GetModuleHandle 来获取 文件的偏移地址:PE文件中各个部分相对于文件头的偏移 相对虚拟地址(RVA):PE结构被映射到内存中后,某个位置所在内存相对于基地址的偏移 一般可执行文件被PE加载器加载到内存中后, 文件的基本格式不会发生改变,只是会将各个块按照页来进行对其,PE文件在磁盘与在内存中的对应关系大致如下图所示: image.png

    69320

    PE知识复习之PE的两种状态

    PE知识复习之PE的两种状态 一丶熟悉PE的整体结构 ? 从下面依次网上看.可以得出PE结构 其中DOS头有DOS头结构 也就是 IMAGE_DOS_HEADER 关于结构体的各项属性.前边已经写过了.本系列博客就是加深PE印象.理解复杂的原理. 操作系统会以检查这个标识.判断是否是PE文件. PE偏移 0x00000138 大小是4个字节.指向PE头. NT头中的PE标识.操作系统不光检查MZ 也检查PE. 填写AAAA的地方是对其后没有使用的.所以我们如果熟悉PE可以添加任何成员进去. 八丶PE中的两种状态 根据上面简单了介绍了一下PE的存储结构.也知道了节数据跟节数据之间.都是根据文件对齐存放的. 九丶总结PE中的两种状态. PE分为文件状态.跟内存状态. 文件状态下. 根据扩展头下面的文件对齐值. 以及记录对其头的大小进行存放的.

    29860

    PE知识复习之PE的各种头属性解析

    PE知识复习之PE的各种头属性解析 一丶DOS头结构体 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header LONG e_lfanew 这个成员指向PE头.也很重要. 如果上面两个成员更改了.那么文件就不能运行了. 二丶NT头解析   NT头也是我们所指的PE头. (PE) 例如: ? 操作系统会检查PE头.以及MZ头.检查是否是正确的值. 而NT头中有两个子结构体.一个是文件头.一个是扩展头.这两个头比较重要. WORD MajorImageVersion; //PE主版本号 WORD MinorImageVersion; //PE次版本号 WORD SectionAlignment 内存对齐,PE加载到内存中所需要的对齐值. 在扩展头两行位置处.往下数4个字节就是.

    50040

    PE知识复习之PE文件空白区添加代码

    PE知识复习之PE文件空白区添加代码 一丶简介   根据上面所讲PE知识.我们已经可以实现我们的一点手段了.比如PE的入口点位置.改为我们的入口位置.并且填写我们的代码.这个就是空白区添加代码 并且load的是我们的DLL 实现功能就是 我们只要给PE注入了代码.那么这个PE程序一旦启动就会加载我们的DLL 关于PEDLL注入,后面会有博客分类中会讲解.此时首先讲解怎么在我们的空白区添加我们的代码 比如指向PE文件中0x2开始的位置. 也就是 MZ成员后面的字节. DOS就两个重要成员.其余的位置我们可以随便使用. 因为E9后面是偏移. 所以我们要跳转到PE中0x2的位置. 但因为PE在内存中展开的时候.是以Imagebase成员为基址进行展开的.所以我们要跳转的位置是 0x00400002的位置. 计算一下偏移公式.

    51110

    逆向初级-PE(五)

    哪些领域会用到PE文件格式: <1>病毒与反病毒 <2>外挂与反外挂 <3>加壳与脱壳(保护与破解) <4>无源码修改功能、软件汉化等 2、如何识别PE文件 <1> PE文件的特征(PE指纹) <2>不要仅仅通过文件的后缀名来认定PE文件 5.2.PE文件的两种状态 1、PE文件主要结构体 ? IMAGE_DOS_HEADER占64个字节。 IMAGE_DOS_HEADER尾部到PE文件头开始的中间部分是DOS_Sub部分(大小不固定) PE文件头标志:PE头是前面4个字节 PE文件表头:IMAGE_FILE_HEADER是20个字节 扩展 标识4字节+PE标准头20字节+PE扩展头224字节,然后就是节表的起始位置,每个节表占40个字节 ? 5.14.导入表_确定函数地址 PE文件加载前 ? PE文件加载后 ?

    52530

    PE文件详解(三)

    本文转自小甲鱼的PE文件详解系列传送门 PE文件到内存的映射 在执行一个PE文件的时候,windows 并不在一开始就将整个文件读入内存的,二十采用与内存映射文件类似的机制。 也就是说,windows 装载器在装载的时候仅仅建立好虚拟地址和PE文件之间的映射关系。 Windows 装载器在装载DOS部分、PE文件头部分和节表(区块表)部分是不进行任何特殊处理的,而在装载节(区块)的时候则会自动按节(区块)的属性做不同的处理。

    38930

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券