阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 2868|回复: 5

[转帖] 我从别处找来的!usb加密狗PJ原理及方法介绍

[复制链接]
  • TA的每日心情
    开心
    2011-7-23 17:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-4-21 16:12:13 | 显示全部楼层 |阅读模式
    目前PJ软件加密狗(加密锁)的一些常见思路,对于这种PJ,软件开发者还是有相应的一些对策的,下一回我将在《软件加密锁编程技巧》一文中具体介绍一下软件开发者将如何编写安全可靠的代码,使得这种类似的PJ方法失效。
       本文介绍的是软件加密狗PJ的一般思路和方法。做为软件开发者,研究好软件加密的确很重要,不过也很有必要多了解一些关于加密狗解密和PJ的知识,加密和PJ就像矛和盾一样,对于解密知识了解的越多,那么编写的加密代码就越好,要知道加密永远都比解密要容易的多,只有知己知彼,方能百战百胜。
      硬件加密锁,俗程“加密狗”,对于加密狗的PJ大致可以分为三种方法,一种是通过硬件克隆或者复制,一种是通过SoftICE等Debug工具调试跟踪解密,一种是通过编写拦截程序修改软件和加密狗之间的通讯。
       硬件克隆复制主要是针对国产芯片的加密狗,因为国产加密狗公司一般没有核心加密芯片的制造能力,因此有些使用了市场上通用的芯片,PJ者分析出芯片电路 以及芯片里写的内容后,就可以立刻复制或克隆一个完全相同的加密狗。不过国外的加密狗就无法使用这种方法,国外加密狗硬件使用的是安全性很好的自己研制开 发的芯片,通常很难进行复制,而且现在国内加密狗也在使用进口的智能卡芯片,因此这种硬件克隆的解密方法用处越来越少。
      对于Debug调试PJ,由于软件的复杂度越来越高,编译器产生的代码也越来越多,通过反汇编等方法跟踪调式PJ的复杂度已经变得越来越高,PJ成本也越来越高,目前已经很少有人愿意花费大量精力进行如此复杂的PJ,除非被PJ的软件具有极高的价值。
      目前加密锁(加密狗)的解密PJ工作主要集中在应用程序与加密动态库之间的通讯拦截。这种方法成本较低,也易于实现,对待以单片机等芯片为核心的加密锁(加密狗)具有不错的解密效果。
      由于加密锁(加密狗)的应用程序接口(API)基本上都是公开的,因此从网上可以很容易下载到加密狗的编程接口API、用户手册、和其它相关资料,还可以了解加密狗技术的最新进展。
      例如,某个国内知名的美国加密狗提供商的一款很有名的加密狗,其全部编程资料就可以从网上获取到,经过对这些资料的分析,我们知道这个加密锁(加密狗)有64个内存单元,其中56个可以被用户使用,这些单元中的每一个都可以被用为三种类型之一:算法、数据值和计数器。
      数据值比较好理解,数据值是用户存储在可读写的单元中的数据,就和存储在硬盘里一样,用户可以使用Read函数读出存储单元里面的数据,也可以使用Write函数保存自己的信息到存储单元。
      计数器是这样一种单元,软件开发商在其软件中使用Decrement函数可以把其值减一,当计数器和某种活动的(active)算法关联时,计数器为零则会封闭(deactive)这个算法。
       算法单元较难理解一些,算法(algorithm)是这样一种技术,你用Query(queryData)函数访问它,其中queryData是查询 值,上述函数有一个返回值,被加密的程序知道一组这样的查询值/返回值对,在需要加密的地方,用上述函数检查狗的存在和真伪。对于被指定为算法的单元,软 件上是无法读和修改的,即使你是合法的用户也是如此,我理解这种技术除了增加程序复杂性以外,主要是为了对付使用模拟器技术的PJ。
      此加密锁(加密狗)的所有API函数调用都会有返回值,返回值为0的时候表示成功。
       因此,PJ思路就出来了,就是使用我们自己的工具(如VB、VC等)重新编写构造一个和加密狗API一样的DLL动态库文件,里面也包含Read、 Write等全部API中包含的函数,使用的参量及返回值和原来的函数一样,所有函数返回零。然后对Query、Read函数进行处理,返回应用软件需要 的数值即可。
      这个新的DLL文件编写成功后,直接替换掉原来的DLL文件,这时候再运行应用软件,软件访问加密狗的操作就全部会被拦截,拦截程序永远会返回正确的数据给软件,从而实现了模拟加密狗的运行。
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    奋斗
    2017-2-24 15:37
  • 签到天数: 45 天

    [LV.5]常住居民I

    发表于 2009-4-21 20:43:23 | 显示全部楼层
    目前能力,只能看看并支持一下
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2012-1-7 20:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2009-4-22 09:38:05 | 显示全部楼层
    努力学习中。感谢大家的交流。。

    laijingshi 于 2009-4-22 10:50 补充以下内容

    看一下多了解一点。学习中。。
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-4-23 19:03:35 | 显示全部楼层
    感觉复制加密狗简单实用
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    慵懒
    2024-6-4 12:49
  • 签到天数: 572 天

    [LV.9]以坛为家II

    发表于 2009-4-23 19:25:29 | 显示全部楼层
    没有实力。只能做为了解。。遗憾
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2024-3-18 23:31
  • 签到天数: 505 天

    [LV.9]以坛为家II

    发表于 2009-4-23 19:40:15 | 显示全部楼层
    最好提供一个待PJ的软件,再提供一个PJ工具,再并与文字与图片说明方式讲解。这样就太完美了
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表