什么是加密狗?解密方法有哪些?加密狗破解全解析

检测维修 0 217

什么是加密狗

加密狗是用于软件保护的小型外部装置,存在并口和USB接口两种形式,这种设备被大量用于各类软件中,软件工程师可将具备该功能的程序单元,置入需要验证用户身份的环节,经过编译和链接,就能生成具备自我防护功能的软件产品。

什么是加密狗解密?

去除软件中加密狗施加的绑定制约,就是运用底层调试手段解除其限制,这样正版程序就能在不含加密狗的环境下运作了。经过破解的加密狗还能实施再加密,比如借助新加密狗重新施加保护,或者通过软件注册途径进行加密。这种破解加密狗的技术也称作解除加密锁的束缚,当前市场上以USB接口的加密狗和并行接口的加密锁最为普遍,绝大多数此类设备都具备被破解的可能性。

破解加密狗有哪些方法?

软解密加密狗

软解密技术用于破解加密产品,首先通过软件检测运行时与加密模块交互的数据内容,包括写入和读取信息,接着在软件启动前将自制程序加载到内存中,用以监控加密模块,当软件尝试向加密模块传输数据时,该程序会自动拦截并反馈预设的响应数据。

某款加密狗原理图

这个软件可以模仿加密产品,另一种方法是从软件入手,找到软件调用加密函数的地方,更改检查加密点是否存在的代码,让程序直接跳到正常运行的段落,这种解密方法的问题是可能导致软件运行不稳定,而且有可能解密不完全,造成软件操作异常!

软复制加密狗

软复制技术专用于加密产品,借助相关工具,能够提取原版加密狗中的数据,并将其移植到同型号的加密狗上,此外还需调整软件内与加密狗关联的识别信息,以此实现复制功能。若将软件内的密码替换为当前加密狗所设定的密码,即可完成软复制的过程。这种方法的长处在于维持初始软件的稳固性,防止出现破解不完全的情况;但是它的短处在于无法兼容软件的更新,一旦软件版本升级就必须重新手动调整软件的功能信息。

硬复制加密狗

一些程序制作者为了防止软件被随意复制,对加密设备运用了物理加密手段,市面上常见的有接口为USB的加密设备和接口为并口的加密设备这两种,这些加密设备本身不能直接读取信息,不过借助特定的工具比如数据读取装置,能够获取加密设备内的相关加密信息,而且借助数据写入装置,可以将数据无瑕疵地写入空白加密设备,借此达成对加密设备的完整复制。这种做法只对部分特殊设备有效,不能普遍适用。还有另一种技术手段,通过软件途径进行物理复制。部分产品为了简化制造,会预设特定通道以调整设备信息,因此可以借助软件读取加密设备内部资料,变更相关识别参数后重新写入,以此实现物理复制目标。

硬模拟加密狗

加密狗破解方法_加密狗原理_加密狗检测工具

硬件模拟是针对加密设备,因为设备里的程序和数据无法查看,所以借助分析工具,对照正品设备,推算出里面的程序逻辑,或者利用监控程序获取正品设备的接口信息,自行编写代码来模仿正品设备,向软件返回数据,从而实现仿制。这种做法必须具备出色的解析才能完成,所以市面上流通的这类加密设备,其实是模拟复制,并非真正的复制,原因在于设备的核心程序无法被获取,因此许多用户很容易受骗,误以为它们是复制版的加密设备。

虚拟狗代替加密狗

软模拟技术中,虚拟狗属于较高级的形式,它是一种虚拟总线设备,借助特殊的内核驱动程序与加密狗的驱动程序实现联系,可以通俗地理解为电脑上的加密狗,也就是常说的软件狗。虚拟狗的优势在于,它无需更改软件,也无需调整驱动程序,其功能与物理加密狗完全相同。开发虚拟狗狗软件不仅要求具备精湛的编程技艺,还必须深入掌握虚拟犬类的独特属性,只有这样才能成功创造出虚拟狗狗,这类技术领域难度极大,并非普通人能够达成。

加密狗模拟驱动

众所周知,在微软操作系统中,软件若需操控硬件设备,必须借助驱动程序来完成,硬件对软件而言,仅是驱动程序所赋予的操作端口,这个端口通常由软狗公司负责提供,而且一般保持不变,至于这个端口具体是如何运作的,软件本身是无法窥探的。模拟驱动借助软件编程达成接口功能,它模拟了软件与硬件的连接方式,将加密狗的硬件编码融入驱动程序,把加密狗的算法移植进驱动程序,这样软件就能像控制真实硬件那样运行。软件版本即便更新,驱动程序的连接方式依然保持稳定,因为驱动程序和应用程序是分开设计的,因此无需调整应用文件,达成驱动程序与软件版本互相独立的效果。

如何解密加密狗?

破解加密狗主要存在三种途径,第一种是借助硬件进行仿制或复制,第二种是运用诸如softice之类的调试软件进行逆向分析解密,第三种是设计拦截软件来更改软件与加密狗的交互过程。现阶段针对加密锁(加密狗)的破解活动大多集中在对应用程序和加密动态库之间通讯内容的截取上。这种方法花费不多,也容易完成,针对以单片机等器件为核心的加密装置(加密设备),能够达成良好的解密检测效果。

硬件仿制主要针对国产芯片的加密狗,因为国产加密狗厂商通常不具备核心加密芯片的制造技术,所以部分产品采用了市面上常见的芯片,当破解者剖析出芯片电路以及芯片中存储的内部关键信息后,便能够迅速仿制出一个完全相同的加密狗。但是国外的加密设备不能应用这种技术,它们采用的是自行研发生产的高安全芯片,复制起来非常困难,而且国内现在也用上了进口的智能卡芯片,因此这种硬件复制破解手段已经没什么用了。

软件规模持续增大,编译器生成的代码量随之增多,采用反汇编等技术追踪调试难度不断攀升,破解所需投入的资源愈发高昂,目前鲜有人愿意投入大量精力进行此类复杂破解,除非目标软件具备极高价值。

加密锁的接口程序大多公开可见,因此网上轻易找到配套的编程指南、使用说明,以及各类辅助文档,同时也能了解到加密狗技术的最新动态。

有些加密设备,其所有编程信息都能在互联网上找到,通过研究这些信息,我们了解到这种加密装置包含64个内部存储单元,其中58个供用户选用,每个单元都可以设置为三种用途之一:实现运算,存储数值,或者记录数量。

数据内容不难明白,数据内容是个人存放在可读写的位置里的资料,类似保存在磁盘上,个人能借助读取操作取出位置里的资料,也能借助写入操作把自己的资料存入位置。

这个装置具备一个功能,开发者在程序里调用递减指令能够使其数值降低,一旦它与某个运行过程产生关联,倘若计数归零,该流程就会终止运作。

算法单元理解起来比较复杂,算法是一种方法,通过query函数来调用它,query函数的参数是查询值,这个函数会返回一个结果,加密的程序了解一组查询值和对应结果,在需要加密的环节,会利用这个函数来验证狗的真实性。被指定的算法单元,在软件层面无法进行读取或更改,即便是拥有合法权限的用户也束手无策,我明白这类技术除了会导致程序体积增大,主要目的在于防范采用模拟器手段进行的破解行为。

加密狗的所有接口调用均会产生一个结果,结果为零则意味着操作成功。借助特定软件(比如vb、vc等)来重新开发,创建一个具备加密狗接口功能的dll动态链接库。该库应包含所有原有接口中的函数,参数和返回值与原始函数保持一致,并且所有函数均返回零值。接下来对查询、读取操作进行操作,得出软件可复用的参数即可。这个新的动态链接库制作完成后,直接替换掉原有的文件,此时再启动应用程序,程序对加密狗的所有访问都会被阻断,拦截工具始终会向程序提供正确的信息,这样就达成了模拟加密狗工作的目的。

相关推荐: