首页
社区
课程
招聘
[未解决,已结帖] [求助] 硬件模拟 150.00雪花
发表于: 2022-8-25 11:41 7337

[未解决,已结帖] [求助] 硬件模拟 150.00雪花

2022-8-25 11:41
7337

附件中有三个文件(_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.


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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

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

上传的附件:
2022-8-26 11:35
0
雪    币: 3127
活跃值: (3689)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
模拟返回硬件串口信息的pid vid
2022-8-27 09:45
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
icoon 模拟返回硬件串口信息的pid vid
大佬,给个例子 
2022-8-27 10:01
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
虚拟狗在XP系统下可以用
2022-8-27 10:44
0
雪    币: 86
活跃值: (1183)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
et99的狗
2022-8-27 17:45
0
雪    币: 86
活跃值: (1183)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
刚看了一下,是USB模拟狗的代码,只是XP和win2000系统下可用,有能力的可以改一下就可以用在Win7或win10上了。
2022-8-27 18:35
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
虚拟狗w7,32位也可以用,
2022-8-27 21:56
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
根据虚拟狗代码能不能在hid.dll中模拟硬件,
2022-8-27 21:58
0
雪    币: 86
活跃值: (1183)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
一样的东西啊,一个是驱动一个是DLL,实现的总体思路是一样的啊
2022-8-28 09:51
0
雪    币: 23
活跃值: (1401)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
驱动模拟会有签名问题.    直接用DLL把 程序获取HID设备过程 全部HOOK模拟吧
2022-8-28 15:24
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
sealmoon 驱动模拟会有签名问题. 直接用DLL把 程序获取HID设备过程 全部HOOK模拟吧
hook了,程序一闪而过,没有界面出来,
2022-8-28 21:03
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
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
2022-8-28 21:06
0
雪    币: 341
活跃值: (1171)
能力值: ( LV3,RANK:24 )
在线值:
发帖
回帖
粉丝
18
给你点提示
  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;
2022-8-29 08:38
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
少妇之友 给你点提示 case 0x3A: //取随机数 break; case 0x3B: //亮灯 break; case 0x3C: // Read bre ...
大佬提示这部分模拟已实现,现在想模拟硬件,摆脱硬件
2022-8-29 11:39
0
雪    币: 106
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
我有同样的需求…
2022-9-22 00:57
0
雪    币: 4180
活跃值: (3406)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
21
以前不知道哪位大佬发过setupapi.dll(t..d2006模拟),可以逆了借鉴一下思路,大概是Hook这几个API:CreateFile、SetupDiEnumDeviceInterfaces、SetupDiGetDeviceInterfaceDetail、DeviceIoControl、CloseHandle。
2022-9-22 08:18
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
haogl 以前不知道哪位大佬发过setupapi.dll(t..d2006模拟),可以逆了借鉴一下思路,大概是Hook这几个API:CreateFile、SetupDiEnumDeviceInterfaces、 ...
大神,hook了这几个函数,没有hook到数据,好象根本就没有调用它们
2022-9-22 21:51
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23

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

数据在附件中

上传的附件:
2022-9-22 22:28
0
雪    币: 4180
活跃值: (3406)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24

(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编辑 ,原因:
2022-9-23 08:33
0
雪    币: 62
活跃值: (2052)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25

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

2022-9-23 19:02
0
游客
登录 | 注册 方可回帖
返回
//