本篇文章复习扩大节,顾名思义就是将节表的大小扩大,那就要搞清楚俩个问题:
1.为什么扩大节?
2.如何扩大节?

PE实战教程之扩大节

  • 为什么扩大节
  • 如何扩大节?
    • 扩大哪一个节?
    • 扩大节的步骤
  • 实战环节:

为什么扩大节

上篇文章进行了空白区添加我们的代码,但是有的时候.我们的空白区不够了怎么办.所以需要进行扩大节。

如何扩大节?

我们先看节表的结构

typedef struct _IMAGE_SECTION_HEADER {BYTE    Name[IMAGE_SIZEOF_SHORT_NAME]; //8个字节名字.自己可以起.编译器也可以给定.不重要.union {DWORD   PhysicalAddress;       DWORD   VirtualSize;           //节数据没有对齐后的大小.也就是没有对齐.节数据有多大.} Misc;DWORD   VirtualAddress;          //加载到内存中的第一个字节的地址.也就是虚拟地址.节在内存中哪里开始.内存中的VA + ImageBase 才是真正的节开始位置DWORD   SizeOfRawData;           //修改这个属性的值,即可扩大节.并且在PE文件中添加相应的0数据进行填充.DWORD   PointerToRawData;          //在文件中的偏移.是文件对齐成员倍数.DWORD   PointerToRelocations;           //一下都是调试相关.DWORD   PointerToLinenumbers;           //WORD    NumberOfRelocations;WORD    NumberOfLinenumbers;DWORD   Characteristics;          //节的属性
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;

我们进行扩大节,肯定要改变节的大小,相应的我们进行扩大节的操作除了新增内存,就是要修改节数据对齐后的大小即可. 并且在PE文件中添加0数据进行填充即可。

扩大哪一个节?

我们进行扩大节,肯定不能随便找一个节进行扩大,这里我们选用最后一个节,因为这个节扩大了,也并不影响后面的数据。

扩大节的步骤

1.分配一块内存
2.将最后一个节的SizeOfRawData和virtualsize修改为N

N = (节.sizeofRawData 或者 节.VirtualSize 按照对齐后大小对齐) + X即可.(X为添加内存空间的大小倍数)

看公式很复杂,其实就是节的对齐后的数据.按照内存对齐后修改.并且加上我们新空间的大小即可. 例如原来大小: 0x600,
你要扩大0x100个字节. 那么 修改后的值就为 0x700. 0x700要按照内存对齐进行存放.

3.修改扩展头中的 SizeofImage(内存PE镜像大小)

实战环节:

使用工具:
StudyPE(这个工具蛮厉害的,有需要私聊我):这个工具有直接扩大节功能,不需要咱们手动修改属性值。
1.添加内存

添加0x1000,也就是4096。
原本大小:87F0


扩大节之后:97F0

修改前:

修改后:
数据大小由43c变为了143c

实验结束!
综上,这种需求直接借助工具即可!

PE实战教程之扩大节相关推荐

  1. C和C++实战教程专栏完整目录

    C和C++实战教程专栏完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:C和C++实战教程 数量:273篇博文(2023年2月15日截止) 更新时间至:2023年2月15日(后续加上去的博文,会每 ...

  2. 【实战教程】如何将别人封装好的系统镜像据为己有,并坐享其成!

    对于装机维修人员来说,能封装一个自己个性化的镜像是最好不过了,但是,有时候太忙,或者太懒,怎么办?办法就是,将别人封装好的镜像,好用的镜像,"据为己有".这里的"据为己有 ...

  3. 滴水逆向三期实践6:扩大节

    扩大节: 1.拉伸到内存(只是逻辑上,实际代码操作并不需要这一步),需要注入的代码为 ShellCode 2.分配一块新的空间:SizeOfImage + sizeof ( ShellCode) 3. ...

  4. PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词

    20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...

  5. ArcGIS水文分析实战教程(9)雨量计算与流量统计

    ArcGIS水文分析实战教程(9)雨量计算与流量统计 本章导读:降水是水文循环中重要的一环,降水包括雨.雪.雾.露.雹等,本章介绍的是降雨的环节.通过雨量站与插值的方式,实现雨量的空间分布就算,为水文 ...

  6. 宏基因组分析实战教程1. 背景知识

    上次我写的学习经验和推荐的教程--<微生物组入门必读+宏基因组实操课程=新老司机赶快上车>,小伙伴们当天阅读破2700+人次,3.5天破3000+,达到了宏基因组快车满三千人发车的要求.我 ...

  7. js模板字符串自定义类名_【Vue.js 入门到实战教程】07Vue 组件注册 | 基本使用和组件嵌套...

    来源 | https://xueyuanjun.com/post/21929除了前面介绍的基本语法之外,Vue.js 还支持通过组件构建复杂的功能模块,组件可以称得上是 Vue.js 的灵魂,是 Vu ...

  8. python商业爬虫教程_廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程...

    廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程 1.JPG (53.51 KB, 下载次数: 1) 2019-8-9 08:15 上传 2.JPG ...

  9. Swift游戏开发实战教程(大学霸内部资料)

    Swift游戏开发实战教程(大学霸内部资料) 试读下载地址:http://pan.baidu.com/s/1sj7DvQH 介绍:本教程是国内第一本Swift游戏开发专向资料. 本教程详细讲解记忆配对 ...

最新文章

  1. 简述BT下载技术及其公司发展现状
  2. JS可以写操作系统?Windows 95被装进Electron App
  3. XML文档DOM、SAX、STAX解析方式
  4. Infortrend推出超大容量存储解决方案
  5. Android中广播接收者BroadcastReceiver详解
  6. ACM 中常用的算法有哪些? 2014-08-21 21:15 40人阅读 评论(0) 收藏...
  7. 算法9---二叉树的遍历不用栈和递归
  8. as_hash ruby_Ruby中带有示例的Hash.keep_if方法
  9. mysql表无法获取_CentOS下无法正常获取MySQL数据库表数据的问题
  10. Markdown数学公式参考表
  11. count(*),count(1)和count(字段)的区别
  12. 电子海图信息系统 (ECDIS)的发展及应用
  13. table表单的修改和保存
  14. Little Elephant and Magic Square
  15. 【最优化导论】一维搜索方法案例
  16. 机器学习的几个重要问题
  17. coreldraw sp2精简版 x4_coreldraw x4
  18. 2023年第一批拟授予信息系统建设和服务能力贯标企业名单公示
  19. 我上了PHP的竹筏!
  20. [info]关于「烧杯」这个APP

热门文章

  1. 用CSS画小猪佩奇,你就是下一个社会人! js将“I am a coder”反转成 “coder a am I”,不许用split,join,subString,reverse;求解方法三...
  2. 秃顶程序员跑马拉松历程
  3. 《腾讯云CityBase产品白皮书》
  4. String 翻转字符串
  5. php实现清空购物车前确认,php – 在Woocommerce中添加到购物车之前清空购物车
  6. Linux 新手必会的21条命令合集
  7. 学习ESP8266_15_Flash
  8. (实测可用)STM32CubeMX教程-STM32L431RCT6开发板研究串口通信(SPI flash)
  9. 沈航计算机学院杨华,【沈航新青年·实践】电子信息工程学院“电信筑梦,科技振兴”暑期社会实践活动纪实...
  10. LINUX学习-在LCD上显示多行文字