【加密与解密(第四版)】第十六章笔记

第十六章 脱壳技术

16.1 基础知识

壳的加载过程:保存入口参数、获取壳本身需要使用的API地址、解密原程序各个区块的数据、IAT的初始化、重定位项的处理、HOOK API、跳转到程序原入口点

手动脱壳步骤:查找真正的入口点、抓取内存映像文件、重建PE文件(修复OEP、IAT的RVA和Size)

16.2 寻找OEP

根据跨段指令寻找OEP(单步跟踪)

用内存访问断点寻找OEP(两次断点)

根据栈平衡原理寻找OEP(ESP定律)

根据编译语言特点寻找OEP(常见函数入口代码特征)

16.3 抓取内存映像

使用OllyDump插件

反Dump技术:纠正SizeOfImage、修改内存属性

16.4 重建输入表

确定IAT的地址和大小

用ImportREC重建输入表

16.5  DLL文件脱壳

16.6 附加数据

在某些特殊的 PE 文件中,在各个区块的正式数据之后还有一些数据,这些数据不属于任何区块。因为PE文件被映射到内存中时是按区块映射的,所以这些数据是不能被映射到内存中的。这些额外的数据称为附加数据(overlay)。以认为附加数据的起点是最后一个区块的末尾,终点是文件的末尾。

16.7  PE文件的优化

优化输入表存放位置、资源的重建、装配文件、修正PE文件头

16.8 压缩壳

UPX:注意UPXPR、UPX-Scrambler软件的保护

16.9 加密壳

ASProtect已经有脱壳机了

“stolen bytes”是指外壳将程序的部分代码变形并搬到外壳段中

16.10 静态脱壳

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NovFif

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值