软件壳的原理与DUMP修复原理

本文介绍了DUMP修复的基本步骤,包括找到目标进程、确定进程大小、保存进程数据到文件以及修复相对虚拟地址和文件地址对齐问题。此外,还探讨了在内存中直接拷贝DLL时的修复过程,特别是修复IAT表的重要性,以确保API函数的正确指向。
摘要由CSDN通过智能技术生成

DUMP修复原理

根据上面的分析我们基本上得到了一个这样的思维。Dump程序要做的事分几个基本的步骤:

1.在系统中找到目标进程(枚举进程)
2.在进程中确定进程的大小imagesize
3.把进程中的数据保存到文件
4. 把相对虚拟地址(RVA)和文件地址对齐(RA)。
科普一下:在文件中要节约空间,把数据紧密的存储在一切,而靠节表在load到内存中的时候,把在文件中的不同数据分别映射到不空内存空间中,而不足的地方就用0填充。但是当我把这些数据从内存中完完整整的dump下来的时候,我们同样把这些0也dump了出来。所以我们要做的首先应该是调整节表,让他的RA=RVA。这样我们实际上做的就是把RA这个指针移动过了若干个0的空间,从而指向正确的数据。
在这里插入图片描述

从内存中直接拷贝DLL时也会这样修复,只不过是手动的。

  1. 修复IAT表。

IAT中每组数据指向一个API函数,各DLL之间是以000000分开的。
使用ImportREC可以修复IAT表。具体修复过程不再赘述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

摔不死的笨鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值