随笔分类 -  PE文件格式

摘要:代码如下. 代码属于转载. 并未使用 windows的结构体. PIMAGE_DOS_HEADER ....等解析. 适用于内核驱动. windows内核下可以使用此代码来获取文件资源版本. /* Distributed under the CC-wiki license. * user contr 阅读全文
posted @ 2023-10-16 11:33 iBinary 阅读(205) 评论(0) 推荐(0) 编辑
摘要:内存加载Exe原理,PELoder 一丶原理 原理是模拟Window 双击 Exe进行操作. 而对于我们来说.其实就是 针对PE文件的 NT头 节表数据 重定位表 导入表 等进行操作. 步骤如下: 总共分为几大步骤 文件数据转内存数据 1.拷贝文件中NT头数据大小. 按照SizeofHeder大小拷 阅读全文
posted @ 2020-06-26 10:12 iBinary 阅读(2741) 评论(1) 推荐(0) 编辑
摘要:PE知识复习之PE的绑定导入表 一丶简介 根据前几讲,我们已经熟悉了导入表结构.但是如果大家尝试过打印导入表的结构. INT IAT的时候. 会出现问题. PE在加载前 INT IAT表都指向一个名称表. 这样说是没错的. 但是如果你打印过导入表.会发现一个问题. 有的EXE程序.在打印IAT表的时 阅读全文
posted @ 2018-10-05 18:06 iBinary 阅读(752) 评论(0) 推荐(0) 编辑
摘要:PE知识复习之PE的重定位表 一丶何为重定位 重定位的意思就是修正偏移的意思. 如一个地址位 0x401234 ,Imagebase = 0x400000 . 那么RVA就是 1234. 如果Imagebase 变了成了0x300000, 那么修正之后就是 ImageBase + RVA = 0X3 阅读全文
posted @ 2018-10-04 17:32 iBinary 阅读(2373) 评论(1) 推荐(1) 编辑
摘要:PE知识复习之PE的导入表 一丶简介 上一讲讲解了导出表. 也就是一个PE文件给别人使用的时候.导出的函数 函数的地址 函数名称 序号 等等. 一个进程是一组PE文件构成的. PE文件需要依赖那些模块.以及依赖这些模块中的那些函数.这个就是导入表需要做的. 确定PE依赖那个模块. 确定PE依赖的那个 阅读全文
posted @ 2018-10-03 20:20 iBinary 阅读(3874) 评论(1) 推荐(0) 编辑
摘要:PE知识复习之PE的导出表 一丶简介 在说明PE导出表之前.我们要理解.一个PE可执行程序.是由一个文件组成的吗. 答案: 不是.是由很多PE文件组成.DLL也是PE文件.如果我们PE文件运行.那么就需要依赖DLL.系统DLL就是Kerner32.dll user32.dll等等.这些都是PE文件. 阅读全文
posted @ 2018-10-03 01:45 iBinary 阅读(4733) 评论(0) 推荐(0) 编辑
摘要:PE知识复习之PE合并节 一丶简介 根据上一讲.我们为PE新增了一个节. 并且属性了各个成员中的相互配合. 例如文件头记录节个数.我们新增节就要修改这个个数. 那么现在我们要合并一个节.以上一讲我们例子讲解. 以前我们讲过PE扩大一个节怎么做. 合并节跟扩大节类似. 只不过一个是扩大. 一个是合并了 阅读全文
posted @ 2018-10-02 19:05 iBinary 阅读(1582) 评论(0) 推荐(0) 编辑
摘要:PE知识复习之PE新增节 一丶为什么新增节.以及新增节的步骤 例如前几讲.我们的PE文件在空白区可以添加代码.但是这样是由一个弊端的.因为你的空白区节属性可能是只读的不能执行.如果你修改了属性.那么程序就可能出现问题.所以新增一个节可以实现我们的代码. 等等. 1.新增节的步骤 1.在最后一个节位置 阅读全文
posted @ 2018-10-02 18:47 iBinary 阅读(2085) 评论(0) 推荐(0) 编辑
摘要:PE知识复习之PE扩大节 一丶为什么扩大节 上面我们讲了,空白区添加我们的代码.但是有的时候.我们的空白区不够了怎么办.所以需要进行扩大节. 扩大节其实很简单.修改节数据对齐后的大小即可. 并且在PE文件中添加0数据进行填充即可. 首先看一下我们的节表 typedef struct _IMAGE_S 阅读全文
posted @ 2018-10-01 18:20 iBinary 阅读(1204) 评论(0) 推荐(0) 编辑
摘要:PE知识复习之PE文件空白区添加代码 一丶简介 根据上面所讲PE知识.我们已经可以实现我们的一点手段了.比如PE的入口点位置.改为我们的入口位置.并且填写我们的代码.这个就是空白区添加代码. 我们也可以利用这个知识.实现PEDLL注入. 原理就是 修改入口. 跳转到我们空白区执行我们的代码.我们空白 阅读全文
posted @ 2018-10-01 17:10 iBinary 阅读(1056) 评论(0) 推荐(0) 编辑
摘要:PE知识复习之PE的RVA与FOA的转换 一丶简介PE的两种状态 首先我们知道PE有两种状态.一种是内存展开.一种是在文件中的状态.那么此时我们有一个需求. 我们想改变一个全局变量的初始值.此时应该怎么做.你知道虚拟地址.或者文件位置了.那么你怎么自己进行转换. 也就是说通过文件中的节数据找到在内存 阅读全文
posted @ 2018-09-30 23:12 iBinary 阅读(3117) 评论(2) 推荐(2) 编辑
摘要:PE知识复习之PE的节表 一丶节表信息,PE两种状态.以及重要两个成员解析. 确定节表位置: DOS + NT头下面就是节表. 确定节表数量: 节表数量在文件头中存放着.可以准确知道节表有多少个. 节表是一个结构体数组.没一个节表表示了数据在哪,怎么存储. 下方是节的结构体 节表重要成员都标红了.我 阅读全文
posted @ 2018-09-29 20:26 iBinary 阅读(2942) 评论(0) 推荐(0) 编辑
摘要:PE知识复习之PE的各种头属性解析 一丶DOS头结构体 DOS头是在16位程序下使用的.所以不用全部关心.只需要关心第一个跟最后一个成员记住即可. DOS头大小是64个字节,十六进制是0x40 总结一下就是说. 4行只有第一行的前两个字节.以及最后一行的4个字节有用. 二丶NT头解析 NT头也是我们 阅读全文
posted @ 2018-09-27 18:58 iBinary 阅读(2241) 评论(0) 推荐(0) 编辑
摘要:PE知识复习之PE的两种状态 一丶熟悉PE的整体结构 从下面依次网上看.可以得出PE结构 其中DOS头有DOS头结构 也就是 IMAGE_DOS_HEADER 关于结构体的各项属性.前边已经写过了.本系列博客就是加深PE印象.理解复杂的原理. IMAGE_DOS_HEADER 大小 64个字节 十六 阅读全文
posted @ 2018-09-27 01:57 iBinary 阅读(812) 评论(0) 推荐(0) 编辑
摘要:PE格式第九讲,资源表解析 一丶熟悉Windows管理文件的方法 首先,为什么标题是这个,主要是为了下边讲解资源方便,因为资源结构体很乱.如果直接拿出来讲解,那么就会很晕. 1.windows管理文件方法 树形结构 可以看出结构 根目录 子目录 文件.xxx 子目录 ..... 那么我们的资源也是这 阅读全文
posted @ 2017-10-23 01:48 iBinary 阅读(3566) 评论(0) 推荐(0) 编辑
摘要:PE格式第八讲,TLS表(线程局部存储) 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 一丶复习线程相关知识 首先讲解TLS的时候,需要复习线程相关知识, (thread local storage ) 1.了解经典同 阅读全文
posted @ 2017-10-20 03:20 iBinary 阅读(4830) 评论(0) 推荐(2) 编辑
摘要:PE格式第七讲,重定位表 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 一丶何为重定位(注意,不是重定位表格) 首先,我们先看一段代码,比如调用Printf函数,使用OD查看. 那么大家有没有想过这么一个问题,函数的字 阅读全文
posted @ 2017-10-19 01:30 iBinary 阅读(3313) 评论(0) 推荐(2) 编辑
摘要:PE格式第六讲,导出表 请注意,下方字数比较多,其实结构挺简单,但是你如果把博客内容弄明白了,对你受益匪浅,千万不要看到字数多就懵了,其实字数多代表它重要.特别是第五步, 各种表中之间的关系. 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留 阅读全文
posted @ 2017-10-18 02:28 iBinary 阅读(1426) 评论(0) 推荐(1) 编辑
摘要:PE格式第五讲,手工添加节表 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 首先我们要用汇编编写一段汇编代码,用来生成标准PE 一丶标准PE生成的汇编代码 然后可以生成一个标准PE 当然为了讲解这里使用标准PE,你也可 阅读全文
posted @ 2017-10-17 01:18 iBinary 阅读(1999) 评论(3) 推荐(2) 编辑
摘要:PE格式第四讲,数据目录表之导入表,以及IAT表 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 一丶IAT(地址表) 首先我们思考一个问题,程序加载的时候会调用API,比如我们以前写的标准PE 那么他到底是怎么去调用的 阅读全文
posted @ 2017-10-13 01:35 iBinary 阅读(3379) 评论(3) 推荐(2) 编辑