网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 破解技术 > 加密狗 > 文章  
USB软件狗的设计及反破解技术
文章来源: 《电子技术应用》 文章作者: 徐增祥 发布时间: 2006-08-11   字体: [ ]
 

  4 软件狗反破解技术

  针对软件狗的破解方法主要有两种:硬件方法和软件方法。

  软件狗的硬件破解方法,主要是仿制软件狗的硬件电路。这个方法对付早期的软件狗比较有效。当微狗出现后,由于很多微控制器本身都提供了程序代码保护功能,这使得仿制软件狗特别是获取固件变得越来越困难,这种方法现在已经很少使用。还有一种硬件破解方法是使用逻辑分析仪或软件拦截I/O,记录下软件狗与主机软件间所传送的数据并进行分析以找出规律。这对于一些简单的软件狗比较有效,而对于算法众多、交互数据量很大的软件狗,这种方法所带来的繁杂性可想而知。 USB通信规程本身相当复杂,这也大大提高了对USB软件狗进行数据拦截的破解方法的难度。

  现在,更加常用的软件狗破解方法主要集中在软件方面,并有软件模拟、跟踪分析等方法。

  软件模拟,就是先启动I/O拦截软件,然后在有软件狗的情况下启动受保护软件,并对受保护软件的第一个功能都进行试运行;同时,后台的I/O拦截软件记录下受保护软件与软件狗之间交互的数据供以后合作。记录完成后,只需在启动受保护软件前先启动模拟软件,就可以使受保护软件在没有软件狗的情况下也可以正常运行。在受保护软件运行过程中,当它企图与软件狗进行通信时,后台的模拟软件拦拱到该通信请求,根据先前记录下的数据对真实软件狗进行仿真,使受保护软件通信数据不变的情形,软件模拟方法十分有效;但如果通信数据中含有随机性的参数(例如,系统的当前时间),那么软件狗和受保护软件间所交互的数据就各不相同,在这种情况下,软件模拟方法就显得无能为力了。例如,主机软件可以取系统当前时间送给软件狗,软件狗使用一定的规则对其进行变换,并把结果送回主机软件,机软件用同样的规则对上述时间值进行同样的变换,检查变换后的结果是否一致。这里需要有好的变换算法,使变换结果对参数的各个部分的改变很敏感且程度相似。或者,软件狗和受保护软件间遵循一定的通信协议(当然是不公开的),所传输的数据中含有大量随机的无用信息,而根据该通信协议,软件狗和受保护软件都可以从中提取出有效的信息。

  

  在各种软件狗的软件破解方法中,以跟踪分析方法的威力最为强大,具体的有静态分析和动态跟踪等方法。

   静态分析方法是用一些静态反汇编、反编译工具对受保护软件进行逆向分析,以求找出访问软件狗的代码并进行相应的修改。如果预先对受保护软件的程序代码采用一定的变换(可以取软件狗中的数据作为变换参数),在运行时再进行反变换动态生成将要执行的代码,就可以有效地对抗静态分析方法。还可以使用可执行文件压缩工具对受保护软件进行压缩处理,或采用软件加壳工具对其进行处理等,这些都可以有效地对付静态分析法。另外,如果把主机软件的内部函数调用与外壳加密相结合,则可进一步提高加密强度,即使软件的外壳被破除,也仍然不能正常运行。

  动态跟踪破解法不仅可以用于软件狗破解,还可以用来获取一些软件的注册序列号,取消软件的试用期限制、试用次数限制和解锁试用版软件等。这种方法是使用一些调试分析工具软件(如DEBUG、SOFTICE等),控制受保护软件的整个运行过程,找出它与软件狗间交互部分的代码并进行修改,以使其跳过对软件狗的检测或使检测结果无效。该破解方法的使用者往往都具有相当丰富的破解经验,对各种加解密方法了如指掌,这种方法也需要破解者付出很大的精力。对付这种暴力破解方法,主要就是设备跟踪陷阱、使用大量各不相同的加密算法并大量分散地设置对软件狗的访问、分离对软件狗的检测命令和对结果的判断等,目的就是加大跟踪分析的工作量、扰乱破解者的思路,大量消耗其体力和脑力,最终达到使其知难而退。动态跟踪法的一种很有效的对策是限定主机软件与软件狗间交互操作执行的时间。如果软件狗发现某个操作的执行时间超出设定的值(时间闸),则不作响应或送回错误的响应以迷或破解者。这是由于对于同样的操作,动态跟踪所需要的执行时间常常要远大于正常连续运行所需要的时间。在主机软件中也可以设置时间闸,但与在软件设中放置时间闸相比它更容易受到攻击而失效,效果不太好。主机软件也可以接管操作系统的调试函数或检测某些调试软件的存在,一旦发现自身在调试状态下运行,就立即退出运行或使程序不正常运行以迷惑破解者;也可以通过缩短软件升级的周期来使解密者疲于应付。静态分析和动态跟踪方法常常是相互配合使用的。与此对应,相应的反破解方法也是密切结合的。

 
推荐文章
 

 
共4页: 上一页 [1] [2] 3 [4] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·软件狗[Dongles]的加密
相关分类
相关文章
·软件狗[Dongles]的加密
·破解QQ密码保护的方法
·我要看代码 破解加密网
·破解高手常用的破解工具
·经典 常见计算机密码破
·愚公移山 文档密码全面
·毫不费力:破解加密PDF
·用Linux的dd命令简单破
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $