首页
论坛
课程
招聘
未解决 [求助] 硬件模拟 150.00雪花
2022-8-25 11:41 4606

未解决 [求助] 硬件模拟 150.00雪花

2022-8-25 11:41
4606

附件中有三个文件(_hid.dll,hid.dll,TestExe.exe)
_hid.dll已经成功模拟软件和硬件间通讯,hid.dll劫持了_hid.dll,插上硬件,硬件中不需要数据,软件可以成功运行,如何在hid.dll初始化时模拟一个硬件,让软件脱离硬件可以运行.
我使用的是delphi,代码如下
library Hid;

 

uses
Windows;

 

{$WARNINGS OFF}
{$R *.res}

 

var
ModHandle: Cardinal;
POldHidD_FlushQueue: Pointer;
POldHidD_FreePreparsedData: Pointer;
POldHidD_GetAttributes: Pointer;
POldHidD_GetFeature: Pointer;
POldHidD_GetHidGuid: Pointer;
POldHidD_GetPreparsedData: Pointer;
POldHidD_GetProductString: Pointer;
POldHidD_SetFeature: Pointer;
POldHidP_GetCaps: Pointer;

 

procedure HidD_FlushQueue; asm jmp POldHidD_FlushQueue end;
procedure HidD_FreePreparsedData; asm jmp POldHidD_FreePreparsedData end;
procedure HidD_GetAttributes; asm jmp POldHidD_GetAttributes end;
procedure HidD_GetFeature; asm jmp POldHidD_GetFeature end;
procedure HidD_GetHidGuid; asm jmp POldHidD_GetHidGuid end;
procedure HidD_GetPreparsedData; asm jmp POldHidD_GetPreparsedData end;
procedure HidD_GetProductString; asm jmp POldHidD_GetProductString end;
procedure HidD_SetFeature; asm jmp POldHidD_SetFeature end;
procedure HidP_GetCaps; asm jmp POldHidP_GetCaps end;

 

exports
HidD_FlushQueue,
HidD_FreePreparsedData,
HidD_GetAttributes,
HidD_GetFeature,
HidD_GetHidGuid,
HidD_GetPreparsedData,
HidD_GetProductString,
HidD_SetFeature,
HidP_GetCaps;

 

begin
ModHandle:= LoadLibrary('_Hid.dll');
if ModHandle > 0 then
begin
POldHidD_FlushQueue:= GetProcAddress(ModHandle, 'HidD_FlushQueue');
POldHidD_FreePreparsedData:= GetProcAddress(ModHandle, 'HidD_FreePreparsedData');
POldHidD_GetAttributes:= GetProcAddress(ModHandle, 'HidD_GetAttributes');
POldHidD_GetFeature:= GetProcAddress(ModHandle, 'HidD_GetFeature');
POldHidD_GetHidGuid:= GetProcAddress(ModHandle, 'HidD_GetHidGuid');
POldHidD_GetPreparsedData:= GetProcAddress(ModHandle, 'HidD_GetPreparsedData');
POldHidD_GetProductString:= GetProcAddress(ModHandle, 'HidD_GetProductString');
POldHidD_SetFeature:= GetProcAddress(ModHandle, 'HidD_SetFeature');
POldHidP_GetCaps:= GetProcAddress(ModHandle, 'HidP_GetCaps');
end;
begin
// 如何处理可以脱离硬件
end;
end.


[2022冬季班]《安卓高级研修班(网课)》月薪两万班招生中~

最后于 2022-8-25 11:42 被JJGuo编辑 ,原因:
上传的附件:
收藏
点赞0
打赏
分享
最新回复 (24)
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-25 18:06
2
0
硬件  vid:096E pid:0303
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-25 21:55
3
0
用C语言也可以
雪    币: 2132
活跃值: 活跃值 (629)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
icoon 活跃值 2022-8-26 09:46
4
0
JJGuo 硬件 vid:096E pid:0303
好像用专用定制狗需要hid
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-26 11:08
5
0
hid已经在_hid.dll中处理了
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-26 11:35
6
0

不会c语言,有一个虚拟狗源代码,我在VS2013中编译不过

上传的附件:
雪    币: 2132
活跃值: 活跃值 (629)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
icoon 活跃值 2022-8-27 09:45
7
0
模拟返回硬件串口信息的pid vid
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-27 10:01
8
0
icoon 模拟返回硬件串口信息的pid vid
大佬,给个例子 
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-27 10:44
9
0
虚拟狗在XP系统下可以用
雪    币: 75
活跃值: 活跃值 (442)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luzhmu 活跃值 2022-8-27 17:45
10
0
et99的狗
雪    币: 75
活跃值: 活跃值 (442)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luzhmu 活跃值 2022-8-27 18:35
11
0
刚看了一下,是USB模拟狗的代码,只是XP和win2000系统下可用,有能力的可以改一下就可以用在Win7或win10上了。
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-27 21:56
12
0
虚拟狗w7,32位也可以用,
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-27 21:58
13
0
根据虚拟狗代码能不能在hid.dll中模拟硬件,
雪    币: 75
活跃值: 活跃值 (442)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luzhmu 活跃值 2022-8-28 09:51
14
0
一样的东西啊,一个是驱动一个是DLL,实现的总体思路是一样的啊
雪    币: 24
活跃值: 活跃值 (469)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sealmoon 活跃值 2022-8-28 15:24
15
0
驱动模拟会有签名问题.    直接用DLL把 程序获取HID设备过程 全部HOOK模拟吧
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-28 21:03
16
0
sealmoon 驱动模拟会有签名问题. 直接用DLL把 程序获取HID设备过程 全部HOOK模拟吧
hook了,程序一闪而过,没有界面出来,
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-28 21:06
17
0
HidGuid        {4D1E55B2-F16F-11CF-88CB-001111000030}
HidGuid.D1  1293833650
HidGuid.D2  61807
HidGuid.D3  4559
HidGuid.D40:=[88]
HidGuid.D41:=[CB]
HidGuid.D42:=[00]
HidGuid.D43:=[11]
HidGuid.D44:=[11]
HidGuid.D45:=[00]
HidGuid.D46:=[00]
HidGuid.D47:=[30]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HidD_GetAttributes Result                 True
HidD_GetAttributes.HidAttrs.Size          000C
HidD_GetAttributes.HidAttrs.VendorID      096E
HidD_GetAttributes.HidAttrs.ProductID     0303
HidD_GetAttributes.HidAttrs.VersionNumber 0100
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HidD_GetPreparsedData  True
HidDeviceObject        204
PreparsedData          1238068
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HidP_GetCaps            1114112
Capabilities.Usage      00A2
Capabilities.UsagePage  FFA0
Capabilities.InputReportByteLength   0000
Capabilities.OutputReportByteLength  0000
Capabilities.FeatureReportByteLength 0041
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.Reserved  0
Capabilities.NumberLinkCollectionNodes 0001
Capabilities.NumberInputButtonCaps     0000
Capabilities.NumberInputValueCaps      0000
Capabilities.NumberInputDataIndices    0000
Capabilities.NumberOutputButtonCaps    0000
Capabilities.NumberOutputValueCaps     0000
Capabilities.NumberOutputDataIndices   0000
Capabilities.NumberFeatureButtonCaps   0000
Capabilities.NumberFeatureValueCaps    0002
Capabilities.NumberFeatureDataIndices  0002
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HidD_FreePreparsedData  True
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HidD_GetProductString  True
Buffer                 E
BufferLength           128
雪    币: 336
活跃值: 活跃值 (984)
能力值: ( LV3,RANK:24 )
在线值:
发帖
回帖
粉丝
少妇之友 活跃值 2022-8-29 08:38
18
0
给你点提示
  case 0x3A: //取随机数
    break;
  case 0x3B: //亮灯
    break;
  case 0x3C: // Read
    break;
  case 0x3D: // Write
    break;
  case 0x3E: // SetKey
    break;
  case 0x3F: // SetUserPIN
    break;
  case 0x40: // MD5
    break;
  case 0x41: // Verify PIN
    break;
  case 0x42: //重置权限
    break;
  case 0x43: // GetHSN
    break;
  case 0x44: // SetToken
    break;
  case 0x45: // Set pid
    break;
  case 0x46: // get pid
    break;
  case 0x47: // set so pin
    break;
  case 0x48: // shell crypt
    break;
  case 0x49://后门重置
       break;
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-8-29 11:39
19
0
少妇之友 给你点提示 case 0x3A: //取随机数 break; case 0x3B: //亮灯 break; case 0x3C: // Read bre ...
大佬提示这部分模拟已实现,现在想模拟硬件,摆脱硬件
雪    币: 306
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_evzozxps 活跃值 2022-9-22 00:57
20
0
我有同样的需求…
雪    币: 2691
活跃值: 活跃值 (1465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
haogl 活跃值 2022-9-22 08:18
21
0
以前不知道哪位大佬发过setupapi.dll(t..d2006模拟),可以逆了借鉴一下思路,大概是Hook这几个API:CreateFile、SetupDiEnumDeviceInterfaces、SetupDiGetDeviceInterfaceDetail、DeviceIoControl、CloseHandle。
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-9-22 21:51
22
0
haogl 以前不知道哪位大佬发过setupapi.dll(t..d2006模拟),可以逆了借鉴一下思路,大概是Hook这几个API:CreateFile、SetupDiEnumDeviceInterfaces、 ...
大神,hook了这几个函数,没有hook到数据,好象根本就没有调用它们
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-9-22 22:28
23
0

HOOK 了8个函数,只有0-3有数据

数据在附件中

上传的附件:
雪    币: 2691
活跃值: 活跃值 (1465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
haogl 活跃值 2022-9-23 08:33
24
0

(1)比如与狗的通信需要先用CreateFile(打开狗),你就可以Hook这个CreateFile,判断一下lpFileName参数是不是和你的设备一样(如\\?\usb#vid_.....&pid_........),如果不一样正常执行CreateFile调用,如果一样就直接返回你自己随便弄的一个假句柄(如 0x12345678);

(2)比如你的软件要通过DeviceIoControl与狗通信,你就可以Hook这个函数,判断一下传进来的句柄是不是 0x12345678,不是就正常执行DeviceIoControl,是的话,你就完成你的通信模拟后直接返回;

(3)你的软件要调用CloseHandle关闭狗的话,你就Hook这个函数,判断一下句柄是不是0x12345678,不是你就正常执行CloseHandle,是你就清掉假句柄后直接返回成功。

      涉及其它和这个过程有关系API,一样的思路全部按需要处理好就可以,这个过程根据你的需要做好Hook和UnHook。

      你的狗具体什么情况我不清楚,我也是菜鸟,我只是说了一下我知道的3环模拟狗的思路。

最后于 2022-9-23 08:51 被haogl编辑 ,原因:
雪    币: 100
活跃值: 活跃值 (611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JJGuo 活跃值 2022-9-23 19:02
25
0

只要找狗成功就行,下面这个是找狗,大佬帮我看看,hook哪几个函数

游客
登录 | 注册 方可回帖
返回