克隆Rockey6加密狗复制资料
描述:Rockey6加密狗复制克隆方法Rockey6加密狗复制案例解析!
一、用OD加载DLL,并分析:
10001320 >/$ B8 4C140000 mov eax,0x144C //加密狗关键函数一
10001325 |. E8 660A0000 call f2.10001D90 //打开加密狗函数,检测加密狗是否存在
1000132A |. 53 push ebx
1000132B |. 55 push ebp
1000132C |. 56 push esi
1000132D |. 33DB xor ebx,ebx
1000132F |. 57 push edi
10001330 |. 33ED xor ebp,ebp
10001332 |. 895C24 18 mov dword ptr
ss:[esp+0x18],ebx
10001336 |. 891D E8CC0010 mov dword ptr
ds:[0x1000CCE8],ebx
1000133C |. E8 2FFEFFFF call f2.10001170
10001341 |. 8D4424 30 lea eax,dword ptr
ss:[esp+0x30]
10001345 |. 50 push eax
10001346 |. E8 FB070000 call
<jmp.&HID.HidD_GetHidGuid>
1000134B |. 6A 12 push 0x12
1000134D |. 53 push ebx
1000134E |. 8D4C24 38 lea ecx,dword ptr
ss:[esp+0x38]
10001352 |. 53 push ebx
10001353 |. 51 push ecx
……………………
10001680 |. 3BEB cmp ebp,ebx
10001682 |. 8BC5 mov eax,ebp
10001684 |. 75 05 jnz short f2.1000168B //加密狗克隆的关键点
10001686 |. B8 0100870E mov eax,0xE870001
1000168B |> 5F pop edi
1000168C |. 5E pop esi
1000168D |. 5D pop ebp
1000168E |. 5B pop ebx
1000168F |. 81C4 4C140000 add esp,0x144C
10001695 \. C3 retn
100016A0 >/$ 53 push ebx //加密狗克隆关键点二
100016A1 |. 55 push ebp //打开加密狗函数,如果打开失败,则退出程序
100016A2 |. 56 push esi
100016A3 |. 8B35 E8CC0010 mov esi,dword ptr
ds:[0x1000CCE8]
100016A9 |. 57 push edi
100016AA |. 33DB xor ebx,ebx
100016AC |. 33FF xor edi,edi
100016AE |. 85F6 test esi,esi
100016B0 |. 7E 34 jle short f2.100016E6
100016B2 |. 8B5424 1C mov edx,dword ptr
ss:[esp+0x1C]
100016B6 |. 8B4C24 14 mov ecx,dword ptr
ss:[esp+0x14]
100016BA |. B8 70AB0010 mov eax,f2.1000AB70
100016BF |> 85C9 /test ecx,ecx
100016C1 |. 7E 0E |jle short f2.100016D1
100016C3 |. 8B68 FC |mov ebp,dword ptr
ds:[eax-0x4]
100016C6 |. 3B6C24 18 |cmp ebp,dword ptr
ss:[esp+0x18]
100016CA |. 75 10 |jnz short f2.100016DC
100016CC |. 43 |inc ebx
100016CD |. 3BCB |cmp ecx,ebx
100016CF |. 75 0B |jnz short f2.100016DC
100016D1 |> 83F9 FF |cmp ecx,-0x1
100016D4 |. 75 1C |jnz short f2.100016F2
100016D6 |. 8B28 |mov ebp,dword ptr ds:[eax]
100016D8 |. 3B2A |cmp ebp,dword ptr ds:[edx]
100016DA |. 74 16 |je short f2.100016F2 //加密狗克隆关键点,必须跳
100016DC |> 47 |inc edi
100016DD |. 05 14010000 |add eax,0x114
100016E2 |. 3BFE |cmp edi,esi
100016E4 |.^ 7C D9 \jl short f2.100016BF
100016E6 |> 5F pop edi
100016E7 |. 5E pop esi
100016E8 |. 5D pop ebp
100016E9 |. B8 01000000 mov eax,0x1
100016EE |. 5B pop ebx
100016EF |. C2 0C00 retn 0xC
100016F2 |> 8D047F lea eax,dword ptr
ds:[edi+edi*2]
100016F5 |. 6A 00 push 0x0 ; /hTemplateFile =
NULL
100016F7 |. C1E0 03 shl eax,0x3 ; |
100016FA |. 2BC7 sub eax,edi ; |
100016FC |. 6A 00 push 0x0 ; |Attributes = 0
100016FE |. 6A 03 push 0x3 ; |Mode =
OPEN_EXISTING
10001700 |. 6A 00 push 0x0 ; |pSecurity = NULL
10001702 |. 8D3440 lea esi,dword ptr
ds:[eax+eax*2] ; |
10001705 |. 6A 03 push 0x3 ; |ShareMode =
FILE_SHARE_READ|FILE_SHARE_WRITE
10001707 |. C1E6 02 shl esi,0x2 ; |
1000170A |. 68 000000C0 push 0xC0000000 ;
|Access = GENERIC_READ|GENERIC_WRITE
1000170F |. 8B86 70AB0010 mov eax,dword ptr
ds:[esi+0x1000AB70] ; |
10001715 |. 8D8E 68AA0010 lea ecx,dword ptr
ds:[esi+0x1000AA68] ; |
1000171B |. 51 push ecx ; |FileName
1000171C |. 8902 mov dword ptr ds:[edx],eax ; |
1000171E |. FF15 3C700010 call dword ptr
ds:[<&KERNEL32.CreateFile>; \CreateFileA
10001724 |. 85C0 test eax,eax
10001726 |. 8986 68AB0010 mov dword ptr
ds:[esi+0x1000AB68],eax
1000172C |. 75 0C jnz short f2.1000173A //加密狗克隆关键点,必须跳走
1000172E |. 5F pop edi
1000172F |. 5E pop esi
10001730 |. 5D pop ebp
10001731 |. B8 070010A0 mov eax,0xA0100007
10001736 |. 5B pop ebx
10001737 |. C2 0C00 retn 0xC
1000173A |> 8BC7 mov eax,edi
1000173C |. 5F pop edi
1000173D |. 5E pop esi
1000173E |. 5D pop ebp
1000173F |. 5B pop ebx
10001740 \. C2 0C00 retn 0xC
二、接下来就是读取加密狗中的数据,此函数如果直接修改跳转,程序就会出现BUG,必须根据原狗中的数据一一赋值。
10001890
>/$ 81EC A0000000 sub esp,0xA0 //加密狗克隆关键点三,
10001896
|. 56 push esi //读取加密狗中的数据
10001897
|. 8BB424 A80000>mov esi,dword ptr ss:[esp+0xA8]
1000189E
|. 8D0476 lea eax,dword ptr ds:[esi+esi*2]
100018A1
|. C1E0 03 shl eax,0x3
100018A4
|. 2BC6 sub eax,esi
100018A6
|. 8D1440 lea edx,dword ptr ds:[eax+eax*2]
100018A9
|. C1E2 02 shl edx,0x2
100018AC
|. 8B82 68AB0010 mov eax,dword ptr ds:[edx+0x1000AB68]
100018B2
|. 85C0 test eax,eax
100018D3
|. F3:AB rep stos dword ptr es:[edi]
100018D5
|. 8B8A 6CAB0010 mov ecx,dword ptr ds:[edx+0x1000AB6C]
100018DB
|. 8BAC24 BC0000>mov ebp,dword ptr ss:[esp+0xBC]
100018E2
|. AA stos byte ptr es:[edi]
100018E3
|. 8A8424 B80000>mov al,byte ptr ss:[esp+0xB8]
100018EA
|. 8DBA 78AB0010 lea edi,dword ptr ds:[edx+0x1000AB78]
100018F0
|. C64424 19 00 mov byte ptr ss:[esp+0x19],0x0
100018F5
|. C64424 1A 81 mov byte ptr ss:[esp+0x1A],0x81
100018FA
|. 884424 1B mov byte ptr ss:[esp+0x1B],al
100018FE
|. 894C24 1D mov dword ptr ss:[esp+0x1D],ecx
10001902
|. 33DB xor ebx,ebx
1000195A
|. 8B7424 10 mov esi,dword ptr ss:[esp+0x10]
1000195E
|> 5F pop edi
1000195F
|. 5D pop ebp
10001960
|. 8BC6 mov eax,esi
10001962
|. 5B pop ebx
10001963
|. 5E pop esi
10001964
|. 81C4 A0000000 add esp,0xA0
1000196A
\. C2 0C00 retn 0xC
三、相关的代码因为比较多,这里就不贴上来了,只要有原狗,一切都非常顺利。
接下来的是获取软件的版本信息,也就是软件的的使用期限,如果读取信息错误的话,软件就无法正常使用,或是提示软件已过期。
10001A40
>/$ 8B4C24 04 mov ecx,dword ptr ss:[esp+0x4] //加密狗破解关键点四
10001A44
|. 8D0449 lea eax,dword ptr ds:[ecx+ecx*2] //获取软件使用期限
10001A47
|. C1E0 03 shl eax,0x3
10001A4A
|. 2BC1 sub eax,ecx
10001A4C
|. 8D0440 lea eax,dword ptr ds:[eax+eax*2]
10001A4F
|. C1E0 02 shl eax,0x2
10001A52
|. 8B88 68AB0010 mov ecx,dword ptr ds:[eax+0x1000AB68]
10001A58
|. 85C9 test ecx,ecx
10001A5A
|. 75 08 jnz short f2.10001A64 //加密狗破解的关键位置
10001A5C
|. B8 020010A0 mov eax,0xA0100002
10001A61
|. C2 0800 retn 0x8
10001A64
|> 8B5424 08 mov edx,dword ptr ss:[esp+0x8]
10001A68
|. 33C9 xor ecx,ecx
10001A6A
|. 66:8B88 74AB0>mov cx,word ptr ds:[eax+0x1000AB74]
10001A71
|. 51 push ecx ; /<%d>
10001A72
|. 68 50800010 push f2.10008050 ; |Format = "1.06.%d"
10001A77
|. 52 push edx ; |s
10001A78
|. FF15 28710010 call dword ptr ds:[<&USER32.wsprintfA>] ; \wsprintfA
10001A7E
|. 83C4 0C add esp,0xC
10001A81
|. 33C0 xor eax,eax
10001A83
\. C2 0800 retn 0x8
此函数修改办法还是挺多,当然最好的就是无限制使用了,经过几次测试,软件可以无限制使用,没有任何BUG,加密狗复制完美成功!
以上只是克隆Rockey6加密狗复制资料的简单介绍,文章由(逆向开发技术网)编辑整理。需要完整” 克隆Rockey6加密狗复制方法”的内容,可以在逆向开发技术网下载 !
克隆Rockey6加密狗复制资料的更多相关文章
- 老王教您怎么做cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗
cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗本来是出于好奇看到网上有这样的东西,学了下感觉挺简单的,如果你是cass的初学者想仅仅是想学习这个软件,不想花大价格购买正版的,这个是可以 ...
- (028)[技术资料]et99加密狗打开函数的一个小bug
et99加密狗的打开函数,其官方vb调用申明如下:Declare Function et_OpenToken Lib "FT_ET99_API.dll" (ByRef et99ha ...
- Rockey 4加密狗介绍
Rockey 4加密狗介绍 特点:该加密狗是单片机加密狗时代飞天公司的主力产品,R4一样继承了R2的硬件特征,具有全球唯一性硬件ID.R4内置了硬件随机数生成器,可以进行一些抗跟踪,或在硬件算法中参与 ...
- 磐石加密狗NT88管理层API
磐石加密狗NT88管理层API 直接贴代码了 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 ...
- 模拟美萍加密狗--Rockey2虚拟狗(五)
虚拟狗开源后很多网友询问有关使用方法的问题,其实看我前四篇文章就应该了解怎样使用了,但还是写篇教程吧 [一].安装DSF (驱动模拟环境): 运行DSFx86Runtime.msi 如需改变安装目录请 ...
- 模拟美萍加密狗--Rockey2虚拟狗(二)
按好了WDK,看了一天的DSF例子GenericHID,直接头大了,就能改个VID,PID让美萍识别成R2的狗.其他的什么各种描述符,根本无从下手,怪不得网上没有驱动模拟的加密狗,确实太复杂了,特别像 ...
- 模拟美萍加密狗--Rockey2虚拟狗(一)
目录(?)[+] 最近受朋友之托做了一个美萍智能电源控制的插件.美萍茶楼从2010版开始支持智能电源控制设备,就是开单.结账时自动开关相应房间的电器,不过官方的设备是有线的.朋友的店已经开了一段时 ...
- 使用USB Key(加密狗)实现身份认证
首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品 公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插 ...
- 模拟美萍加密狗--Rockey2虚拟狗(三)
几经挣扎,我最终还是选择了虚拟设备的方法来模拟Rockey2加密狗.HID.DLL劫持+API劫持的办法技术上虽然简单些,但太繁琐了,不仅要转发大量的函数,还要Hook好几个API,向我这么懒的人可干 ...
随机推荐
- NumPy的思考……
问题: 为什么第一次输出矩阵形式的数据,第二次输出list形式的数据? 详见代码: a = np.array([[1, 2], [3, 4]]) print(a) print('ndim :', a. ...
- 99%的Linux运维工程师必须要掌握的命令及运用
本为同步于微信公众号[IT行业技术圈]关注即可查看更多相关知识点~ Linux对于程序员来并不陌生,随着图形化界面的深入人心,渐渐地命令行开始淡出了我们的视野,随着时间的推移也变得生疏且陌生起来.在此 ...
- CodeForces 630G Challenge Pennants (组合数学)
<题目链接> 题目大意: 有两种旗子,分别有5个和3个,将这些旗子分配给n个人,有多少中方法. 解题分析: 5面A旗子的发放方案为:$[1,1,1,1,1],[1,1,1,2],[1,2, ...
- Aspnet Mvc 前后端分离项目手记(三)关于restful 风格Url设计
RESTful 不是新东西,简单理解它的核心思想就是最大程度的利用http协议的一些特点,比如uri,比如请求动词,在前后端分离的项目中会有大大的好处 ,好的设计的url简单明了,胜过详细的说明文档. ...
- OpenStack共享组件
一.云计算的前世今生 1.物理机架构,应用部署和运行在物理机上 2.虚拟化架构,物理机上运行若干虚拟机,应用系统直接部署到虚拟机上 3.云计算架构,虚拟化提高了单台物理机的资源使用率 二.Open ...
- react-native 引入某些低三方库时出现的Command `run-android` unrecognized,命令不识别错误
在使用第三方库时react-native-swiper,执行 npm install react-native-swiper --save 再次运行react-native run-android时直 ...
- wangEditor大图片上传问题
wangEditor上传大图片时候会 上传超时.后端没有问题,我百度很多,又去群里问,都得不到答案.最后问同事,有个属性 editor.config.uploadTimeout = 10000000 ...
- nginx/php的redis模块扩展
redis模块介绍 redis2-nginx-module 可以实现 Nginx 以非阻塞方式直接防问远方的 Redis 服务,可以启用强大的 Redis 连接池功能,进而实现更多的连接与更快速的访问 ...
- linux 中数据库的常用操作
1-连接数据库: mysql -h localhost -u jiangbiao -p xxxxx@xxx:~$ mysql -h localhost -u jiangbiao -p Enter pa ...
- 【zc】 PHP中json_encode(编码) 与 json_decode(解码) 【aa】
一.json_encode() 对变量进行JSON编码, 语法: json_encode ( $value [, $options = 0 ] ) 注意:1.$value为要编码的值,且该函数只对UT ...