逆向破解程序脱壳篇-压缩壳

文章来源i春秋

一、普及

What
所谓“壳”就是专门压缩的工具。 
   这里的压缩并不是我们平时使用的RAR、ZIP这些工具的压缩,壳的压缩指的是针对exe、com、和dll等程序文件进行压缩,在程序中加入一段如同保护层的代码,使原程序文件代码失去本来面目,从而保护程序不被非法修改和反编译,这段如同保护层的代码,与自然界动植物的壳在功能上有很多相似的地方,所以我们就形象地称之为程序的壳。


WHY  ① 对程序专门进行压缩,以减小文件大小,方便传播和储存。
② 我这是一个商业的程序,是用来赚钱的,怎么可以被别人破解呢,那我就是加密保护壳(Safengine、VMprotect、winlicense、Themida)保护程序不被非法修改和反编译。
③ 其他(病毒、木马加壳,Anti-AntiVirus)

DO?
脱壳
就是把保护壳去掉更好的调试和破解能清楚看到代码

OEP
程序的入口点如果我们找到OEP我们就能快速脱壳就类似于找到钥匙就能开门
壳就是一把锁OEP就是锁孔
IAT
IAT就是指针脱壳的话可能要修复指针如果没有指针就相当于人只有一个身体没有灵魂
壳可能会对指针进行处理修复输入表就是修复IAT
段首和段尾
段首,是上一段的结尾也是下一段的开头一段是以retn开始和retn结尾。我们经常听到在段首下断所以我们要找的就是retn下面第一个push ,段首是以push开始滴所以我们不会在retn那里下段而段尾我们是在retn处下断因为软件的子程序是以retn返回到某一地方所以返回的时候要在retn出下断。
防病毒软件攻击讲解:http://www.ichunqiu.com/course/58111?from=14
二、准备知识
ESP定律的原理就是“堆栈平衡”原理。
1、在命令行下断hresp-4(此时的ESP就是OD载入后当前显示的值)
2
hrESP(关键标志下一行代码所指示的ESP(单步通过))
CALL
1.
向堆栈中压入下一行程序的地址;
2.JMP
call的子程序地址处。

RETN
call对应的就是RETN了。对于RETN我们可以这样来理解:
1.
将当前的ESP
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值