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


  软件狗加解密技术的简单介绍(我将在以后陆续加入并详细介绍)

  涉及到加、解密的技术可以说是包罗万象,基本的有汇编语言、调试工具、操作系统等,还需要一些密码学的基本常识,如果对数据结构、编译原理等有一定的了解会更有帮助。当然,这并不是说没有这些基础就做不好加密,在使用加密锁时,很多工作已经由加密厂家完成了,其实加密者只要对“随机性”有一些基本的认识,就可以完成很出色的加密。这个随机与一般意义上的随机有所不同,这里强调的是“不可预测性”。如果解密者可以预知加密锁返回的数据,就可以用程序代替锁来返回,软件就无法知道锁是否真正存在,就是被解密了。这就是我们常说的“仿真”,在密码学中就是假冒攻击。所以,加密的一个重要思路就是让解密者看来:锁输入输出数据有很强的随机性。目前,加密设计中最迫切解决的就是构造随机性的问题。

  常有人这样加密:在软件中反复检查锁内的数据,而且运用了很复杂的检查方法,比如中间插入一些运算或者垃圾程序等,加密的工作量很大,以为“我查了那么多次锁还不够吗?”。但这在解密者眼里不值一提,只要发现锁返回数据的规律性就足够解密了,根本不必理会软件是怎么使用的。这种加密失败在于,只是用了些读操作,没有构成返回数据的随机性。那么,如果扩大加密锁存储容量,或者进行些写操作就行吗?显然还是随机性太差。因为这点,第一代加密锁很难胜任真正的加密工作了。也因为这点,过去比较繁荣软加密技术难以深入发展。这提醒我们,如果加密原理不合理,再大的加密工作量也是徒劳无益的。

  使用算法变换就可以增强随机性,但是有人这样加密:在软件中大量调用算法变换,变换的数据量也很大(即算法码表很大),可还是被轻易解密了。为什么呢?是不是算法被破了?不是。这种加密方法在解密者看来和上个没有什么不同,只要把每次变换的数据内容都记录下来,如果软件再用同样的数据调用算法,解密者自然知道应该返回什么数据了。失败原因是,码表内容是固定的,被解密者穷举了,没有构成随机性,这说明可以穷举的东西是不具备随机性的。那么怎么才能防止被穷举呢?由于加密者也不知道算法方程,实际上是做不到的。但是,我们可以给解密者增加很多穷举困难。我们知道,只要让解密者抓到一次,这个数据就再也没有加密作用了,因此不能让软件运行一次就用完所有码表,另外还可以用些随机数来做变换,这就考验解密者的分辨能力了。这是个技巧性比较高的问题,需要不小的工作量,但这的确对加密强度有贡献。

  如果加密者知道算法内容,而解密者不知道,这样就可以用任何数据来访问加密锁的算法功能,解密者就无法穷举了,第三代“可编程”加密锁就能实现这种思想。

  由于第三代锁的出现,需要补充另外一个话题,就是加密锁的功能。如果解密者可以通过数学方法解析出锁的内部功能,就可以“仿真”了。如何设计锁的功能才不易被破呢?这涉及到一点密码学,一般的加密者只要能够将不同类型的运算混合使用就够。对于第一、二代加密锁,解密者没有必要去分析程序是如何使用锁返回数据的(仿真的思路),而对于第三代锁,这种方法常成了解密者唯一希望,寄希望于通过跟踪锁返回数据的使用过程而推测出锁的内部功能。这时候几乎任何能够降低程序可读性的手段都会提高加密效果,比如程序垃圾、反复的数据搬动、嵌入汇编、插入浮点运算等等。这点很吸引人,即使你刚明白加密,也能让解密专家围着你团团转。

  加密者往往远不如解密者专业,随着互联网的发展,解密技术正以更快的速度传播,这给加密带来了更大的挑战。

  软件狗的加密技术介绍

  解密一个软件狗可以从两方面入手,其一是软件,只要把检查软件狗的那部分代码解除,那么软件狗就成了一只“死狗”。其二是从硬件入手的解密方法,其含义是要仿制一个加密盒,不管机密做的如何好,如果加密盒被仿制了,那么软件狗的加密作用也就不存在了。因此,从硬件入手的解密跟从软件入手的解密其效果是一样的,只不过后者需要付出一定的额外代价—硬件成本而已。
那么既然从软件、硬件着手都能解密,用它来保护软件还有什么作用?不用着急,让我们来谈谈如何更地保护您的软件。
针对解密的两种方法,我们也从这两方面来加强软件的加密功能。
 
  增强软件狗加密功能的方法

  一、软件加密

  全面我们说,从软件入手的解密方法很多,针对这种情况,人们也研制出了很多行之有效的防解密措施,在次,我们把一些常用的防止软件跟踪解密的措施列于下面:

  1、计算程序执行时间,并判断程序的执行时间是否过长;
  2、关键程序部分禁止 键盘中断,并检查键盘中断是否被开放;
  3、关键程序部分禁止显示输出和打印输出;
  4、在软件中多做几次软件狗检查;
  5、把程序的重要部分加以编码加密,在运行时才解密;
  6、修改断点中断功能;
  7、利用除零中断或溢出中断是否有程序跟踪;
  8、利用时钟中断检查是否有程序跟踪;
  9、在程序中调用INT 7;
  10、程序不要写得很结构化,要多一些“废话”;
  11、若干种加密方法综合使用;
  12、用黄玫瑰软件制作组出品的BITSHELL作外层防护;
  ......  ......

 
推荐文章
 

 
共13页: 上一页 [1] [2] [3] 4 [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·USB软件狗的设计及反破
相关分类
相关文章
·USB软件狗的设计及反破
·破解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 $