模拟美萍加密狗--Rockey2虚拟狗(四)
然后,正文开始……
其实虚拟狗几天前就写完了,可这几天上不了网,所以没写博客……(你有完没完!!!)
然后,正文开始……
第二步开始搞定RY2_Open函数……完了。真的完了,RY2_Open一句代码都不用谢,Rockey2的库在第一步枚举Rockey2加密锁的时候就把每把锁的HID,UID,硬件版本(就是RY2_GetVersion获得的版本,所以RY2_GetVersion也不用写了)读到内存了,所以直接调用RY2_Open就可以正确返回狗的句柄了,不过这也有一点不好,无法通过虚拟狗截取程序要求的UID和HID,因为这部分的比较都在RY2_Open里完成了。
接着就是关键的读写部分了RY2_Read和RY2_Write,通过OD跟踪发现Rockey2的通讯都是通过HidD_SetFeature和HidD_GetFeature这两个API完成的,封装成了个函数,流程就是HidD_SetFeature发送命令和数据HidD_GetFeature接收返回数据分析了一下协议,很简单:
- HidD_SetFeature
- FUN: RY2_Read RY2_Write RY2_GenUID RY2_Transform
- CMD: 81 82 87 8B
- ARG: block_index block_index FF 00
- PAG: 0-8 0-8 FF [LEN]1
- ARG: [uid]4 [uid]4 00 00 00 00 [uid]4
- DAT: buffer512 buffer512 seed64 data32
重写了Get_Report的HID_REPORT_TYPE_FEATURE分支返回数据,增加了Set_Report函数处理命令。这样RY2_Read和RY2_Write也就完成了

至此,虚拟狗已经基本完成了,只剩RY2_GenUID和RY2_Transform两个与算法相关的API了,由于没有实物狗,是在无能为力。RY2_GenUID用的应该不多,至少实际产品中应该不会用到,如果被调用的话我只写了个弹出Seed的消息框,并不会生成UID,应该不会用到,如果被调用的话我只写了个弹出Seed的消息框,并不会生成UID,不过有两个例外,根据官方文档和OD了一个写狗程序,找到两个Seed-UID对
seed:12345 uid:2AA426F3
seed:chinacoho and chi uid:2BF2DB93
RY2_Transform就直接返回一串0了。
狗内的数据部分我做成了一个外部的dat文件,包括HID、UID、block内数据,这样就方便交流了。
有问题的朋友请留言,可以深入交流。
另:希望使用Rockey2的厂商一定要使用RY2_Transform函数,这样才能更有效的保护自己的产品
代码开源!感谢某位大神的帮助!地址:http://download.csdn.net/detail/douniwan5788/4114939
(发博客时发生了点小意外,Service Unavailable,登不上博客了,挂着代理才上来,Google了一下还是个常见问题……)
模拟美萍加密狗--Rockey2虚拟狗(四)的更多相关文章
- 模拟美萍加密狗--Rockey2虚拟狗(一)
目录(?)[+] 最近受朋友之托做了一个美萍智能电源控制的插件.美萍茶楼从2010版开始支持智能电源控制设备,就是开单.结账时自动开关相应房间的电器,不过官方的设备是有线的.朋友的店已经开了一段时 ...
- 模拟美萍加密狗--Rockey2虚拟狗(五)
虚拟狗开源后很多网友询问有关使用方法的问题,其实看我前四篇文章就应该了解怎样使用了,但还是写篇教程吧 [一].安装DSF (驱动模拟环境): 运行DSFx86Runtime.msi 如需改变安装目录请 ...
- 模拟美萍加密狗--Rockey2虚拟狗(三)
几经挣扎,我最终还是选择了虚拟设备的方法来模拟Rockey2加密狗.HID.DLL劫持+API劫持的办法技术上虽然简单些,但太繁琐了,不仅要转发大量的函数,还要Hook好几个API,向我这么懒的人可干 ...
- 模拟美萍加密狗--Rockey2虚拟狗(二)
按好了WDK,看了一天的DSF例子GenericHID,直接头大了,就能改个VID,PID让美萍识别成R2的狗.其他的什么各种描述符,根本无从下手,怪不得网上没有驱动模拟的加密狗,确实太复杂了,特别像 ...
- 克隆Rockey6加密狗复制资料
克隆Rockey6加密狗复制资料下载 描述:Rockey6加密狗复制克隆方法Rockey6加密狗复制案例解析! 一.用OD加载DLL,并分析: 10001320 >/$ B8 4C140000 ...
- Rockey 4加密狗介绍
Rockey 4加密狗介绍 特点:该加密狗是单片机加密狗时代飞天公司的主力产品,R4一样继承了R2的硬件特征,具有全球唯一性硬件ID.R4内置了硬件随机数生成器,可以进行一些抗跟踪,或在硬件算法中参与 ...
- 盘点几种DIY加密狗的制作方法,适用于穿越机模拟器
前言 前几天笔者的加密狗在使用中突然坏掉了,现象是插电脑不识别,LED灯不亮. 网上很多模友也反映了同样的问题: http://bbs.5imx.com/forum.php?mod=viewthrea ...
- J20航模遥控器开源项目系列教程(五)| 制作STM32F0接收机,8路PWM输出,SBUS输出,PPM输出 | 加密狗无线化,畅玩飞行模拟器
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...
- 美萍超市销售管理系统标准版access数据库密码mp611
美萍超市销售管理系统标准版access数据库密码mp611 作者:admin 来源:本站 发表时间:2015-10-14 19:01:43 点击:199 美萍超市销售管理系统标准版access后 ...
随机推荐
- oracle 提示口令失效解决方法
Oracle错误代码:ORA-28002. 受影响版本:Oracle11g以上版本. 导致密码消失的原因:Oracle 11g中默认的DEFAULT概要文件中口令有效期PASSWORD_LIFE_TI ...
- C#按钮客户端验证
OnClientClick="return confirm('是否确定排除?');"
- 在win7下装ubuntu(硬盘版安装)及遇到的问题
都怪自己弄什么Ubuntu下的Android Studio,因为GFW,gradle总下载不了,用命令行下载一半关机了,然后Ubuntu就这样被我搞残废了.又张罗着重装. 其实就是参照网上的帖子,算是 ...
- JS 代码调试经验总结(菜鸟必读)
前言:不知不觉写了很多,希望你能耐心看完这篇文章 任何一个编程者都少不了要去调试代码,不管你是高手还是菜鸟,调试程序都是一项必不可少的工作.一般来说调试程序是在编写代码之后或测试期修改Bug 时进行的 ...
- TOJ 1702.A Knight's Journey
2015-06-05 问题简述: 有一个 p*q 的棋盘,一个骑士(就是中国象棋里的马)想要走完所有的格子,棋盘横向是 A...Z(其中A开始 p 个),纵向是 1...q. 原题链接:http:// ...
- Performance tool httperf
httperf: A relatively well-known open source utility developed by HP, for Linux operating systems on ...
- 安卓里面JSON处理和JAVA SE里面的JSON包
今天编译安卓项目遇到这个问题 com.android.dex.DexException: Multiple dex files define的解决办法 大致意思就是引用了 相同的包 在JAVA SE里 ...
- call和apply方法的理解
第一种:直接先来个粟子吧... ; } var child = {}; console.log(child); //Object() 对象 Parent.call(child); console. ...
- JS笔记 入门第三
认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树) 把上面的代码进行分 ...
- java中常用的数据加密算法
以下为加密的工具类: import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; im ...