首页
论坛
课程
招聘
[原创]真假Rockey2完整源码
2018-3-23 11:48 12511

[原创]真假Rockey2完整源码

2018-3-23 11:48
12511
前段时间工作需要接触了一个程序,其中用到了飞天诚信的Rockey2加密狗。
以前对加密狗接触比较少,刚好借此机会学习了一下加密狗的一些基本知识,并对Rockey2的接口库Rockey2.dll进行了一些简单的分析和重写。
主要内容放在附件里了,包括三个程序,TrueRockey2,FakeRockey2,Rockey2Test

程序介绍:
TrueRockey2 顾名思议,这是真正的Rockey2.dll的源码,可以对真实的狗进行查找、读、写等操作
FakeRockey2 这个是假的Rockey2.dll,只提供了相应的接口,用来模拟Rockey2狗
Rockey2Test 这个是个简单的Rockey2的测试程序

真Rockey2的代码比较长,但也不复杂,跟普通的HID设备操作程序差不多,有兴趣的自己看一看
假Rockey2的代码就比较简单了,这里直接贴出来:
int WINAPI RY2_Find()
{
	//返回值表示找到的狗的个数,返回1表示找到了一个狗
	return 1;
}

int WINAPI RY2_Open(int mode,DWORD uid,DWORD *hid)
{
	//返回值表示打开的狗的序号,返回0表示打开第0个狗成功,并返回HID的值
	*hid = 0x11223344;
	return 0;
}

void WINAPI RY2_Close(int handle)
{
	//do nothing
}

int WINAPI RY2_GenUID(int handle,DWORD *uid, char *seed,int isProtect)
{
	return RY2_SUCCESS;
}

int WINAPI RY2_Read(int handle,int block_index,char *buffer512)
{
	//如果是字符串的话,从配置文件中读取比较方便
	//否则可以修改为从文件中读取,可自行发挥
	char szBuffer[512] = {0};
	char szBlockName[64] = {0};
	sprintf(szBlockName,"Block%d",block_index);
	GetPrivateProfileString("CONFIG",szBlockName,"",szBuffer,512,g_szConfigFilePath);
	strcpy(buffer512,szBuffer);
	return RY2_SUCCESS;
}

int WINAPI RY2_Write(int handle,int block_index,char *buffer512)
{
	char szBlockName[64] = {0};
	sprintf(szBlockName,"Block%d",block_index);
	WritePrivateProfileString("CONFIG",szBlockName,buffer512,g_szConfigFilePath);
	return RY2_SUCCESS;
}

int WINAPI RY2_Transform(int handle, int len, BYTE *data)
{
	return RY2_SUCCESS;
}

int WINAPI RY2_GetVersion(int handle)
{
	//要求返回版本号,这里随便给一个
	//某些版本的Rockey2.dll提供的该函数接口可能不一样
	return 0x010F;
}

假Rockey2的模拟方式非常简单,就是要啥给啥。
程序说要找狗,那就给它一个
程序说要写狗,那就把写的内容存起来先
程序说要读狗,那就返回点内容(自定义或之前写的内容)给它

上面是用了配置文件的方式来存储模拟狗数据,这对于字符串类的数据比较合适。
如果是二进制数据,可以换成普通的文件来存储就可以了。
Rockey2共有5个块,每块大小512字节,所以一个大小为2560字节的文件就可以模拟。
这样只需要修改数据文件就可以模拟修改狗内的数据,而不需要每次修改这个模拟的Rockey2程序。

对于不使用RY2_Transform的普通程序来说,只是Find/Read/Write的话,用“真Rockey2.dll+真狗”能做到的事,用一个假的Rockey2.dll就可以完全做到。
读者可以分别在使用真假Rockey2.dll的情况下运行Rockey2Test,可以看到效果完全是一样的。
而且大多数时候,这类程序都会拖着一个Rockey2.dll,直接用我们的假Rockey2.dll替换掉这个动态库是最简单的破解方法。

不过呢,Rockey2也比较老了,现在的狗大部分都不止是存储而已,基本都带有自己的处理器。
所以本代码也就是纯供学习,了解一下思路和基础知识,希望对感兴趣的人有点帮助。
对于需要硬复制狗的同学们,万能的淘宝上是可以定制UID和HID的哦。

顺便吐槽一下看雪的编辑器真的挺不好用的,自动吃回车,插入的代码段也看不到效果。。。预览功能也没找到

[注意] 招人!base上海,课程运营、市场多个坑位等你投递!

最后于 2018-3-23 11:49 被achillis编辑 ,原因:
上传的附件:
收藏
点赞1
打赏
分享
最新回复 (19)
雪    币: 1958
活跃值: 活跃值 (493)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
十年后 活跃值 2018-3-23 12:14
2
0
好东西  必须顶!
雪    币: 1003
活跃值: 活跃值 (121)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
futosky 活跃值 3 2018-3-23 12:37
3
0
哈哈,赞一个
雪    币: 1201
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_kx71601 活跃值 2018-3-23 12:47
4
0
说的好,鼓掌!
雪    币: 421
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhaoker 活跃值 2018-3-23 14:26
5
0
不错,很有价值,赞一个,这里面水很深……………
雪    币: 1
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hackmiss 活跃值 2018-3-23 14:39
6
0
赞一个
雪    币: 107
活跃值: 活跃值 (99)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yangya 活跃值 2018-3-23 16:53
7
0
这个狗没有内部运算?
雪    币: 0
活跃值: 活跃值 (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
michallsun 活跃值 2018-3-29 18:28
8
0
yangya 这个狗没有内部运算?
可以有变换算法!这样就不管用了!
雪    币: 2
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
梧桐絮 活跃值 2018-4-4 16:47
9
0
现在有rockey8了,楼主可以搞一搞。
最后于 2018-4-4 16:47 被梧桐絮编辑 ,原因:
雪    币: 223
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lccxsusuk 活跃值 2018-6-7 00:06
10
0
先顶一个      有yt88教程不      从简单的入手
雪    币: 137
活跃值: 活跃值 (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
niuzuoquan 活跃值 2018-6-7 11:19
11
0
感谢楼主分享
雪    币: 0
活跃值: 活跃值 (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
商品国际 活跃值 2018-12-7 04:47
12
0
这个真不错 谢谢楼主 顾名思义 模拟啊
雪    币: 27
活跃值: 活跃值 (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
次元有名 活跃值 1 2018-12-11 00:19
13
0
mark 感谢分享
雪    币: 447
活跃值: 活跃值 (174)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lvtx 活跃值 2018-12-17 17:36
14
0
感谢分享,这个确实是好东西!
雪    币: 234
活跃值: 活跃值 (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 活跃值 2019-10-18 14:14
15
0
没有模拟过R2狗,模拟一个试试。
雪    币: 5627
活跃值: 活跃值 (747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs 活跃值 2019-12-6 14:15
16
0
谢谢楼主提供,学习,收藏
雪    币: 197
活跃值: 活跃值 (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
黄薛海 活跃值 2020-12-31 14:33
17
0
rockey2hid模拟源码(编译通过)
可以模拟hid,uid。生成hid.dll
支持win10
https://download.csdn.net/download/huangxuehai/13991788
雪    币: 30
活跃值: 活跃值 (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
慢半拍 活跃值 2021-3-20 09:43
18
0
谢谢分享,学习了            
雪    币: 863
活跃值: 活跃值 (320)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
icoon 活跃值 2021-4-21 09:16
19
0
黄薛海 rockey2hid模拟源码(编译通过) 可以模拟hid,uid。生成hid.dll 支持win10 https://download.csdn.net/download/huangxuehai ...
有没易语言版本的,整个来我买
雪    币: 13
活跃值: 活跃值 (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
昕雪 活跃值 2021-6-8 19:57
20
0
前辈您好!你的假狗程序对我这样小白非常适应。但,我用测试读取原狗里数据,只有0区数据,看你测试里也只有0区数据。可能我没整明白,还是程序你没有发全啊?请前辈不忙时,再帮我发一份:422286056@qq.com,非常感谢!
游客
登录 | 注册 方可回帖
返回