再战加密壳-通过加壳工具加壳的程序

程序运行:
在这里插入图片描述
这个加壳程序在使用Die查壳的时候,查不出来壳,但是用PEid查的时候显示有壳但是又查不出具体是什么壳.(很奇怪,我也不知道是什么类型的壳,毕竟是加壳程序加的,但是实现原理是加密IAT的方式)
接下来正式脱壳:
还是遵循一把的脱壳方式,先找OEP,找到OEP之后脱壳:
(通过找大跳转的方式进行寻找)
在这里插入图片描述
找到大跳转之后,直接运行过去准备脱壳:
在这里插入图片描述
但是,之这个时候进行脱壳是存物的,虽然我们的OEP没有问题,但是,之前的介绍已经讲明,这是一个加密壳(加密了IAT表的壳),这个时候脱壳的话,拖出来的程序是不能运行的,因为IAT表还没有修复.我们可以跟过去看一下,这个时候IAT表的内容:
在这里插入图片描述
总结之前脱IAT加密壳的经验,我们需要把握三个重要的地址:
第一个就是获取到正确的IAT内容的地址
第二个就是找到对IAT进行修改的地方
第三个就是找到OEP

以上三个要素,OEP我们已经找到,接下来的工作就是寻找获取正确IAT内容的地址以及找到修改IAT内容的地址

还是老方法,我们找修改IAT表的地址,通过在IAT表内部下硬件写入断点,来找到相应的地址:
在这里插入图片描述
之后将程序重新加载,直接运行,记录程序段下来的地址:
(在重载之后运行之前,需要确认自己下的硬件写入断点是不是被程序清除掉了,如果清除掉了,重新在IAT表下断点,再执行,而且再进行这个操作的时候一定要清除所有的程序断点,保持唯一变量)
程序重新加载之后直接F9跑起来,记录程序段下来的地址:
第一次断:49D2B4
第二次断:49D5F0
经过调试运行,可以知道,程序在我们的硬件写入断点的条件下,只断下来两次,需要注意,我们要寻找的修改IAT表的地方应该是最后的修改的地方,因为第一次的IAT写入断点我们不是很关心(这个时候,还在运行加壳程序),但是在第二次的IAT写入的时候就是为我们的程序运行做准备了,所以我们要第二次的IAT写入断点的地址:也就是49D5F0.
在这里插入图片描述
在这里断下来之后,我们可以掌握一个信息,那就是在这里对IAT表的内容进行修改,在这个地址往上看,发现有异或和赋值的操作,这时候就要敏感,会不会是将原来的IAT数据进行加密之后再存回去,为了验证我们的猜想,我们可以在这里进行调试一下,下断点之后直接定位让程序运行到这里:
在这里插入图片描述
接下来开始调试:
可以看到程序执行GetProcAddress来获取函数的地址:
在这里插入图片描述
在这里,在执行完这个API的时候,获取的函数地址的返回值,存储在EAX里边,接下来的操作就是针对EAX的操作,在获取到正常的函数之后,将原来的函数地址进行简单的加密操作,之后存储:
在这里插入图片描述
在这里插入图片描述
也就是说,上边的整个IAT加密过程整理如下:
1:首先获取函数的正确地址
2:将正确的地址进行简单加密操作
3:申请一块空间
4:将加密过的数据放在申请的空间里边
5:将申请的空间的基址放到IAT表里边

所以经过上边的分析,我们另外的两个关键点也找到了,接下来就是开始写脚本 ,手动修复IAT表
在这里插入图片描述
修复脚本如上,当然也可以使用,直接修改程序的方法进行修复
在这里插入图片描述
这也是一种方法,(不过采用这种方式修复IAT表 之后再脱壳的方式我也没试过,还是脚本比较舒服一点)
以上就是整个脱壳过程

Zprotect是新一代的软件加密保护系统,拥有多项革命性的创新技术,设计用来保护您的软件产品不被破解,减少由于盗版给您带来的经济损失!此外,Zprotect 拥有简单易用的许可控制系统,您无需更改任何代码,即可为您的软件添加注册机制。与传统软件保护系统相比,Zprotect更加注重对代码的处理,并且拥有良好的稳定性和兼容性,是您配置软件保护系统的最佳选择! Zprotect拥有简单易用、高效灵活的注册和授权管理系统: 一键试用技术. Zprotect 为您提供一键试用技术,您不必修改任何源代码,在短短几分钟之内就可以将您的完整版软件转换为“先试用后购买”的试用版软件,甚至还可以支持带硬件锁定的序列号注册。 内建注册和许可管理系统. Zprotect 内建灵活易用的注册和许可管理系统,您可以轻松创建具有时间限制、硬件锁定、水印信息的注册码。 动态算法生成引擎. 外所使用算法均动态生成,随机且唯一,让逆向算法变得困难和高成本。 时间限制注册密钥. 如果您需要限制注册版本的有效期,可以通过创建具有时间限制的注册密钥来实现。 硬件锁定(一机一码). 激活硬件锁定功能的注册密钥,只能在某一特定计算机上使用;您可以通过锁定用户计算机的硬件信息来控制注册码的传播,例如 CPU、硬盘序列号、网卡 MAC 地址等。 密钥黑名单. 如果您的用户泄漏了注册密钥,那么您就可以将该密钥添加进密钥黑名单,这样下一版本更新的时候您就可以锁定该密钥。 启动密码保护. 这种附加的保护可以有效防止软件未经授权的使用,必须输入正确的密码才可以运行程序。 试用次数、天数、日期和运行时间限制. 使用 Zprotect ,您可以轻松为您的应用程序添加试用次数、试用天数、试用日期和试运行时间等限制;这样您的客户就可以全功能评估您的软件产品,增大购买意向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值