首先用一点儿时间来谈谈什么是加密狗(dongle),dongle经常被认为是硬件保护,它是一个可被附加在计算机并口、串口或USB上的小插件,它包含厂家烧制的EPROM和定制的专用集成电路。

dongle保护的的原理就是软件开发者在程序里经常检查dongle中的单元(Cell)的并对比返回值,这种检查可以是直接读单元或者是使用某种内部算法(此时单元受到保护无法直接读)。尽管任何称职的硬件工程师都能很容易地分析出dongle是如何实现的,但是实际上并不用那么麻烦,dongle保护最薄弱的环节在于应用程序要通过dongle厂家提供的函数库来访问dongle,而应用程序和这些函数的连接通常是很弱的,因为软件开发人员不管这些函数如何访问dongle,它只检查函数的返回值是表示成功还是失败,那么只要打补丁让所有函数返回成功即可,而且这些函数通常并不多,从厂家提供的API手册中很容易查到这些函数的定义(参数和返回值)。一般来说dongle解密不需要原来的正版狗。

必须指出从(西方)法律上来说,破解狗与调试独立的程序有一些细微的不同,后者是完全合法的,但前者在德国有被判为非法的案例(即使你已经购买了正版的软件),我不知道我国法律是如何规定的,这种涉嫌侵权的情况当然是民不告、官不纠,好在我们不讨论国产软件,你如果被引渡到美国或德国本站不负任何责任。

下面是一些著名dongle厂商的官方网站,从中可以下载用户手册,应用程序接口(API)和其它相关资料,也可以了解dongle技术的最新进展。

比如说,从彩虹公司提供的API文档中我们可以了解到Sentinel Superpro(以下简称 sspro)的一些情况,sspro有64个内存单元(memory cells),其中56个可以被用户使用,这些单元中的每一个都可以被用为三种类型之一:算法、数据值和计数器。

算法(algorithm)是这样一种技术,你用sproQuery(queryData)函数访问它,其中 queryData是查询值,上述函数有一个返回值,被加密的程序知道一组这样的查询值/返回值对,在需要加密的地方,用上述函数检查狗的存在和真伪。对于被指定为算法的单元,软件上是无法读和修改的,即使你是合法的用户也是如此,我理解这种技术除了增加程序复杂性以外,主要是为了对付使用模拟器技术的破解。

数据值和计数器就比较好理解了,数据值用户存储在可读写的单元中的数,用户可以用它存储自己的信息,计数器(counter)是这样一种单元,软件开发商在其软件中使用sproDecrement函数可以把其值减一,当计数器和某种活动的(active)算法关联时,计数器为零则会封闭(deactive) 这个算法。

下面是sspro的所有API函数:
RNBOsproActivate() 激活或反激活一个算法以便它能被RNBOsproQuery()函数使用。
RNBOsproDecrement() 把计数器或一个可读写的单元减一。
RNBOsproExtendedRead() 读任一非隐藏单元的值和连接码(access code)
RNBOsproFindFirstUnit() 查找指定的狗。
RNBOsproFindNextUnit() 查找同一ID的下一个狗。
RNBOsproFormatPacket() 初始化一些数据结构,这个函数必须在其他API函数之前调用。
RNBOsproGetVersion() 返回驱动程序的版本。
RNBOsproInitialize() 驱动程序初始化。
RNBOsproOverwrite() 可以修改除保留单元00–07之外的任何单元的值和连接码。
RNBOsproQuery() 提供一个查询值,给应用程序返回一个加密的返回值。
RNBOsproRead() 读非隐藏单元的值。
RNBOsproWrite() 改变某单元的值。
DesKey的API函数就更简单了: Dk2DriverInstalled 检查驱动程序是否安装
findDk2 检查DK2狗是否安装
dk2readmemory 读DK2某个单元的内容
dk2readdowncounter 读计数器的值
dk2decrementDowncounter 计数器减一
具体的函数细节可以查看sspro和Deskey的开发者指南(本站有下载)

了解了上述函数之后,你就可以使用IDA对你的目标进行分析,然后应用相应的sig符号表(本站有下载),IDA就可以在反汇编的结果中找到上述函数(如果有的话),接下来就看你的汇编语言工夫和思维是否清晰了。

如何破解软件狗,dongle相关推荐

  1. USB软件狗的设计及反破解技术

    1 软件狗技术 近年来,软件狗技术在保护软件开发者利益.防止软件盗版方面起了很大作用.软件狗技术属于硬加密技术,它具有加密强度大.可靠性高等特点,已广泛应用于计算机软件保护.软件狗技术的发展经历了多次 ...

  2. 常见破解软件的优秀替代免费软件

    题目真坳口,大致就是说,很多同志日常工作中会用到很多破解软件或者盗版软件.其实这些东东不是非用不可的,有很多优秀的免费软件可以来替代,甚至不夸张的说,这些免费软件的质量有些要高于收费的商业软件.所以说 ...

  3. 【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解-破解软件论坛-ZOL中关村在线...

    [WiFi密码破解详细图文教程]ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解-破解软件论坛-ZOL中关村在线 好了,先说下提前要准备的东东吧: 1.U盘一枚,最小1G空间.需进行格 ...

  4. 【转帖】绝版破解软件教程就不信你学不会!!

    绝版破解软件教程就不信你学不会!! www.hxhack.com 阅读: <script src="/Article/GetHits.asp?ArticleID=1191"& ...

  5. 编辑PDF【没有PDF编辑器的会员时,且无破解软件】

    在没有PDF编辑器的会员时,且无破解软件时,可用以下方法编辑PDF文件: 在这个回答评论区发现妙方法: 使用"万兴PDF"编辑文件,保存[不开会员],这时保存的文件是带有水印的. ...

  6. OD破解软件找断点方法系列【2】----万能断点法(XP系统)

    [文章标题]: OD 破解软件找断点方法系列[2]----万能断点法(XP系统) [文章作者]: HPKEr [软件名称]: MP3转换器 V5.2.0 [软件大小]: 3.20 MB [下载地址]: ...

  7. 工控 组态王6.60 SP3软件7.5 SP4 授权软件狗 USB 硬件狗 分享 下载

    工控 组态王6.60 SP3软件 授权软件狗 USB 硬件狗 分享 下载 技术咨询QQ:3137723307 组态王6.60是一款非常好用的工业类自动化控制软件,此版本继承了前面几个版本的所有功能,可 ...

  8. 电脑安装破解软件跟杀毒软件冲突怎么办

    拿联想小新为例 打开杀毒软件 添加信任文件(也就是老被杀毒软件隔离的文件) 然后,就可以流畅安装破解软件了~

  9. 外挂、破解软件理论与实战

    外挂.破解软件理论与实战 1 理论 1.1 不同操作系统下的可执行文件 Windows[PE] PE 格式,可移植可执行格式(Portable Executable), 是 Windows 下的主要可 ...

最新文章

  1. 在Linux终端下查看GPU正常使用的情况
  2. 对几个submission文件迅速做voting操作
  3. JVM笔记详解之垃圾回收器
  4. Linux:tomcat安装/版本升级
  5. 一个简单的游戏服务器框架 .
  6. mysql 视图 局部变量_mysql创建视图和存储过程,变量
  7. 深度学习(二十六)Network In Network学习笔记
  8. [转载]手工安全测试方法修改建议
  9. 树莓派(Raspberry Pi)搭建简单的lamp服务
  10. 8s pod 查看 的yaml_k8s之深入解剖Pod(二)
  11. JavaWeb 敏感词汇过滤器
  12. 计算机网络自学指南,简直太全了!
  13. JavaScript基本语法
  14. 如何做好项目中的风险控制
  15. 分赛区决赛见!2021eBay全国跨境电商创新创业大赛分赛区决赛晋级名单
  16. thread.java 619_java jstack thread 映射 linux 线程(LWP) | 学步园
  17. wps excel 中将一行多列数据转换为一行两列的格式 的方法函数
  18. 2021最新苹果CMS影视站全站模板100+套模板分享下载
  19. @html.dropdownlist默认多选,Html.DropDownList()赋默认值
  20. 随手记——静态Flag变量使用不规范导致的重大流程错误

热门文章

  1. 【Processing】行走的行星 动态海报 processing艺术与科技
  2. oracle10g数据库复制,windows 下oracle 10G 数据库移植到 linux平台 (通过文件直接复制方法)...
  3. LPC1768 UART超时中断的使用
  4. 一块宝藏存储芯片【SD NAND】
  5. HLA(high level architecture) 高层体系结构
  6. 单链表的逆置算法解析
  7. 用Python求完美数
  8. php redis sadd 多个,Redis Sadd 命令
  9. else用法的一个小细节
  10. 输入法框无法正常显示问题