首页
社区
课程
招聘
[原创]ESP定律脱壳卡巴斯基Sality专杀程序
发表于: 2018-6-27 17:18 10647

[原创]ESP定律脱壳卡巴斯基Sality专杀程序

2018-6-27 17:18
10647

ESP定理是脱壳中很基础但很好用的方法,运用的原理是堆栈平衡原理。堆栈平衡原理简单说就是在一个函数被调用之前和被调用之后,堆栈的数据是一样不变的。ESP脱壳就是利用这一原理,可以脱掉所有的压缩壳,以及大部分的加密壳。下面是一个实例分析:

拿到的程序是卡巴斯基的Sality专杀软件:

先用软件检测下该程序的壳:

检测结果是类似于UPX的卡巴斯基一种专用的壳,ESP脱壳方法应该能排上用场。

载入文件,得到的EP是这样的:

然后F8单步运行478358函数,会在 popfd 处停止下:

此时可以和之前设置Hardware breakpoint处的寄存器数据做对比:

Before:                                                                                                                       After:

可以明显地发现,在断点的前后只有EIP发生了变化,ESP恢复到了之前的数值,这就是堆栈平衡即ESP定律法。

然后继续跟进几步,即可看到OEP:


PS:实习生的我今天得到任务,要分析卡巴斯基Sality病毒专杀程序文件修复的原理,还顺带学习到了脱壳神定律:ESP定律。小生起步学习,大神勿喷。

ESP定理是脱壳中很基础但很好用的方法,运用的原理是堆栈平衡原理。堆栈平衡原理简单说就是在一个函数被调用之前和被调用之后,堆栈的数据是一样不变的。ESP脱壳就是利用这一原理,可以脱掉所有的压缩壳,以及大部分的加密壳。下面是一个实例分析:

拿到的程序是卡巴斯基的Sality专杀软件:



[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 2473
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
hresp
2018-6-27 19:05
0
雪    币: 2166
活跃值: (3226)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
脱壳之路很漫长,希望能再接再厉
2018-6-29 11:18
0
雪    币: 1563
活跃值: (272)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
4
xiaohang 脱壳之路很漫长,希望能再接再厉[em_13]
嗯嗯 会再接再厉!
2018-6-29 15:28
0
雪    币: 3366
活跃值: (105)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
是的,是的
2018-9-12 15:33
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
圈出来划重点
2019-1-4 14:17
0
雪    币: 181
活跃值: (621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
实习生?你把公司任务发布到看雪?
2019-1-4 15:00
0
游客
登录 | 注册 方可回帖
返回
//