大家都知道:加密狗的加密及破解是相铺相成的,要想加密得好,就必须了解破解的流程及如何判断破解的难易度。以下是几种常用的判断方法:
一、认识狗
加密狗从接口上来区分的话,可以分成,并口狗(早期的加密狗),usb口加密狗,串口加密狗(早期,以很少见),pci加密卡。现在也有usb的加密卡,但是这种并不多见。
加密狗从接口上来区分的话,可以分成,并口狗(早期的加密狗),USB口加密狗,串口加密狗(早期,以很少见),PCI加密卡。现在也有USB的加密卡,但是这种并不多见。
并口狗:最常见的有深思3,彩虹早期系列的加密狗,以及HASP系列的。
USB口加密狗:这个就很普遍了,从现在的外壳锁到智能锁,几乎90%都是USB接口。
串口加密狗:这个似乎我也只见过几个。
PCI加密卡:这个真的很遗憾,我到目前为止只见过hasp 的加密卡
USB加密卡:这个我也只在捕鱼达人的机器上见过。
从功能上分可以分为:
普通加密锁:如:YT88 R2,R4,ET99等
智能加密狗:如:深思3,深思4,R6,ET199,ET299等
从破解难度上来讲,普通加密锁比智能加密锁,要简单的多。
至于区分是什么加密狗,可以从以下几个方面入手。
首先,外壳判断,这个虽然不准确,但是一般来说,可以看个大概。
其次,通过驱动来判断,如果需要驱动的加密锁,直接看驱动也能看出来。
最有效,也最准确的办法,看设备范例ID。不过需要对所有厂家加密锁的范例ID了如指掌才行。
二、认识壳
按加密性质分又可以分为:狗壳和软件壳。
所谓的狗壳。通常指利用加密锁内的一些算法做加密因子,来压缩或者在指定程序上的外壳。此类壳脱壳有相当一部分需要对应的加密锁才能脱壳。
软件壳
直接利用加壳软件加的壳。
壳按加密类型分大致可以分为:
压缩壳和加密壳两种。
压缩壳:一般就是指对软件资源等进行压缩,常见的压缩壳如 UPX,ASPACK等,压缩壳的强度一般比较低,脱壳比较简单。
加密壳:一般来说加密壳会对程序的区段,IAT等进行加密,一般加密壳强度比压缩壳高,当然也有很强悍的加密壳。
说到壳,不得不提到VM,VM 是进几年才提出的一种新的加密方式,一般用法是把关键的代码虚拟掉,这样还原起来就相当困难。实际现在如果加过VM的程序,使用VM的作者足够强悍的话,一般说来是很难复原的。
三、查壳
首先,我们丰富的经验的工程师一般用OD载入程序,就可以看出来是什么壳。
如果是新手,常用的工具有PEID,FI 等。我们这里就以PEID为例来查壳。
运行PEID
把要查壳的文件,拉到peid 里,
如果出现:tElock 0.98b1 -> tE! 证明就是tElock 0.98b1 -> tE! 的壳
如果出现:Microsoft Visual C++ 7.0 [Debug] 证明就是无壳 vc7.0 写的软件,当然不排除伪装壳的可能,这里不做介绍。
如果出现:Nothing found * 证明就是壳特征码里没有,不知道是什么壳。
至于不知道是什么壳的,这里教个方法,当然这个方法,需要一定的经验。看 ep section:
如:ep section:RCC1 这个,就是宏狗的狗壳了。
四:查看内嵌加密
分析加密点的个数、有没有VM处理,有多少函数需要修复。
弄清楚判断破解的四点,对加密很有好处,如果能把上面的几点在加密上杜绝,那就真的是很牛的一件事情了。