模拟美萍加密狗--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后 ...
随机推荐
- ASPxGridview在对话框中无法编辑!!
aspxgridview在使用window.showModelDialog(或者window.showModelessDialog)打开的窗体中居然无法进入编辑!好奇怪啊 . 点击后显示“无法显示网 ...
- UITextField键盘类型
UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //初始化textfield并 ...
- window.external.JavaScriptCallCpp
方案2: 1.编写html <html> <head> </head> <body> <script language="javascr ...
- install tool
# 查看静态态依赖库 ldd ./nginx #查看安装了哪些模块 ./nginx -V
- 汉化testlink
testlink版本:1.9.13 1.登录testlink后,打开my setting(左上角小人人) 2.Locale 选择chinese,然后点击save 3.over,汉化完毕
- PHP学习(前言)
PHP学习(前言) 都说做IT技术的都该写写博客,以前没写过,现在开始写写吧.不是给别人看,就当是自己的学习笔记了. 大三结束了,该找工作了,对web前端感兴趣,想从事前端工作,自然要会一门后台语言了 ...
- python+sublime text2中文乱码[Decode error - output not utf-8]
转自: http://blog.sina.com.cn/s/blog_765abd7b0101dtbw.html 学习,记录一下.中文编码真的挺麻烦.抽空把自己的sb3的配置写一些. 该问题让我纠结了 ...
- (iOS)关于GCD死锁的问题
- (void)viewDidLoad { [super viewDidLoad]; dispatch_sync(dispatch_get_main_queue(), ^{NSLog("); ...
- 《Java4Android视频教程》学习笔记(三)
一:抽象类 接口 1.使用abstract修饰抽象类 抽象函数 2.一个类中有一个或者多个抽象函数,必须定义为抽象类 3.抽象类可以不含有抽象函数 4.抽象类不可以生成对象 tip:如果一个代码在语意 ...
- nmon related
nmon related pGraph (supports nmon) https://www.ibm.com/developerworks/community/wikis/home?lang=en# ...