模拟美萍加密狗--Rockey2虚拟狗(三)
几经挣扎,我最终还是选择了虚拟设备的方法来模拟Rockey2加密狗。HID.DLL劫持+API劫持的办法技术上虽然简单些,但太繁琐了,不仅要转发大量的函数,还要Hook好几个API,向我这么懒的人可干不了这体力活,几经取舍还是选择了虚拟设备的方法,原因有一下几点:
1、劫持HID.DLL同样要分析描述符,并没有避开难点。相比Dll劫持+API劫持两项技术,写一个虚拟设备只需要攻破一个点,总体结构上简单了。昨天惧怕虚拟设备是因为从没做过USB,都说技术是一层窗户纸,静下心来慢慢分析,也没那么恐怖。
2、趁机学习一下Windows下的驱动编写(其实用的都是人家的框架,也没学着什么)
3、趁机学习一下USB通讯(这方面倒是真学到了不少)
写虚拟狗首先要确认美萍认不认,从DSF的文档说明上看,虚拟设备的模拟是比较底层的,应用程序不会发现虚拟设备和真实物理设备的区别,就算有办法,估计美萍也不会费这么大事去识别的(当然,如果我真的成功了,估计美萍就要研究了,哈哈推动技术发展也是我的目的之一)。这里用到一个Tee8088大大的工具,其实就是一个劫持的HID.Dll,用来监听HID加密狗与狗通讯的。使用方法很简单,把这个HID.DLL考到美萍的目录下,正常运行美萍就行,监听到的数据会写在C盘根目录下的一个TXT里,实际使用了是另一个网友的改进版,输出的信息更全一点。一开始监听到的只有HidD_GetAttributes函数的调用,搜索监听到的VID、PID值发现是我的摄像头(哈哈,意外发现摄像头是HID设备。),运行插入虚拟狗的脚本(TestGenericHid.wsf)后出现了虚拟狗的VID、PID,我猜这是在枚举HID设备找狗 (后来OD看Rockey.dl也证实了我的想法),把HIDDevice.cpp 里的VID和PID改成R2的后(VID_096E PID_0201)监听数据多出来了HidD_GetPreparsedData 等函数的调用,依此确认虚拟设备原理上可行。这里有一点需要注意DSF运行时的文件夹里有一个默认的SoftHIDReceiver.dll,直接运行TestGenericHid.wsf脚本将调用这个dll,所以刚一开始时,发现改了HIDDevice.cpp里的VID PID居然不好用,还是例子里的值,用自己编译的SoftHIDReceiver.dll替换掉DSF文件夹里才成功。
OK,既然可行那就一步步来吧,根据Rockey2的一般流程应该是先调用RY2_Find找狗,于是OD载入Rockey2.dll在RY2_Find开头打个断点,调试--调用Dll导出,选择RY2_Find,没有参数,调用时隐藏打钩,CALL!一步步跟看到了96E和201,是比较VID,PID,后面有个CALL就是就是进一步验证是否是R2了,跟进去发现只有HidP_GetCaps填充的数据结构HIDP_CAPS的FeatureReportByteLength=0x49是才能通过,于是修改报告描述符加一个Feature项目报表,Report Size =8位 Report Count=0x48(这样加上Report id的一字节正好等于0x49),再次编译虚拟HID设备,调用RY2_Find已经可以返回1了!下一步向RY2_Open进军!
模拟美萍加密狗--Rockey2虚拟狗(三)的更多相关文章
- 模拟美萍加密狗--Rockey2虚拟狗(一)
目录(?)[+] 最近受朋友之托做了一个美萍智能电源控制的插件.美萍茶楼从2010版开始支持智能电源控制设备,就是开单.结账时自动开关相应房间的电器,不过官方的设备是有线的.朋友的店已经开了一段时 ...
- 模拟美萍加密狗--Rockey2虚拟狗(五)
虚拟狗开源后很多网友询问有关使用方法的问题,其实看我前四篇文章就应该了解怎样使用了,但还是写篇教程吧 [一].安装DSF (驱动模拟环境): 运行DSFx86Runtime.msi 如需改变安装目录请 ...
- 模拟美萍加密狗--Rockey2虚拟狗(二)
按好了WDK,看了一天的DSF例子GenericHID,直接头大了,就能改个VID,PID让美萍识别成R2的狗.其他的什么各种描述符,根本无从下手,怪不得网上没有驱动模拟的加密狗,确实太复杂了,特别像 ...
- 模拟美萍加密狗--Rockey2虚拟狗(四)
目录(?)[+] 首先,抱怨一下.学校个破网,似乎把我端口封了,死活分不上IP,也许是是我MAC改的太频繁了,有盗号嫌疑…… 然后,正文开始…… 其实虚拟狗几天前就写完了,可这几天上不了网 ...
- 克隆Rockey6加密狗复制资料
克隆Rockey6加密狗复制资料下载 描述:Rockey6加密狗复制克隆方法Rockey6加密狗复制案例解析! 一.用OD加载DLL,并分析: 10001320 >/$ B8 4C140000 ...
- 老王教您怎么做cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗
cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗本来是出于好奇看到网上有这样的东西,学了下感觉挺简单的,如果你是cass的初学者想仅仅是想学习这个软件,不想花大价格购买正版的,这个是可以 ...
- 美萍超市销售管理系统标准版access数据库密码mp611
美萍超市销售管理系统标准版access数据库密码mp611 作者:admin 来源:本站 发表时间:2015-10-14 19:01:43 点击:199 美萍超市销售管理系统标准版access后 ...
- Rockey 4加密狗介绍
Rockey 4加密狗介绍 特点:该加密狗是单片机加密狗时代飞天公司的主力产品,R4一样继承了R2的硬件特征,具有全球唯一性硬件ID.R4内置了硬件随机数生成器,可以进行一些抗跟踪,或在硬件算法中参与 ...
- C# Java间进行RSA加密解密交互(三)
原文:C# Java间进行RSA加密解密交互(三) 接着前面一篇C# Java间进行RSA加密解密交互(二)说吧,在上篇中为了实现 /** * RSA加密 * @param text--待加密的明文 ...
随机推荐
- 【译】html5游戏入门
[译]html5游戏入门 原文链接 简介 如果你想用canvas做个游戏,那么来对地方了. 但是但是你至少知道javascript怎么拼写(╯‵□′)╯︵┻━┻ 既然没问题,那先来玩一下或者下载 创建 ...
- 12 款最好的 Bootstrap 设计工具
作为一位设计师,会经常追寻新鲜有趣的设计工具,这些工具会提高工作的效率,使得工作更有效, 最重要的是使工作变得更方便.非常肯定的说,随着日益增长的工具和应用的数量,设计和开发变得越来越简单了. 其中最 ...
- jQuery Mobile组件
一.页面 jQuery Mobile 应用了 HTML5 标准的特性,在结构化的页面中完整的页面结构分为header.content.footer 这三个主要区域. 在body 中插入内容块: < ...
- NSURLConnect 的简单实用(iOS8淘汰)
Demo_1 NSRULConnection NSRULConnection 苹果公司在ios8已经抛弃了,但是我还是要讲一下,因为这和后面的NSSession有着密切的联系 下面开始使用步骤: 1. ...
- 数据库MySQL多个数据库服务冲突
一.目标名称 MySQL 二.目标版本 mysql-5.6.24-win32.1432006610.zip 三.环境信息 系统:windows 7 旗舰版 防火墙:关闭 —— 注意:如果防火墙不关闭 ...
- Java中的流程控制(二)
关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch( ...
- JS表格排序
var employees = [] employees[0] = { name: "George", age: 32, retiredate: "March 12, 2 ...
- 个人收集资料整理-WebForm
[2016-03-23 20:35:53] C#实现局域网文件传输 win7系统中桌面图标显示不正常问题
- Core第三方开源Web框架
NET Core第三方开源Web框架YOYOFx YOYOFx框架 YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台. 本着学习的态度,造了这个 ...
- Drupal7模块multiselect使用
Drupal二次开发的时候,我们时常要使用到多选列表,但是官方默认的多选下拉列表,是在不敢恭维如下图所示: 不过难看不可怕,Drupal有两万第三方模块做支撑,只有你想不到,没有找不到的. 功夫不负有 ...