鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站安全 > 加密解密 > >

打狗的一般性思路总结

来源:互联网 作者:佚名 时间:2015-04-12 10:25
1,bp CreateFileA 与设备连接 2, bp DeviceIoControl 读取U盘数据,相当于bp ReadFile 3, bp MessageBoxA 提示 4, 几个重要的dll: JTUSB.dll, setupapi.dll, hid.dll 5, 一些关键Call的名字以及说明: // 准备查找符合HID规范的USB设备 SetupDiGetClassDevs
1,bp CreateFileA  与设备连接
2, bp DeviceIoControl  读取U盘数据,相当于bp ReadFile
3, bp MessageBoxA 提示
4, 几个重要的dll: JTUSB.dll, setupapi.dll, hid.dll
5, 一些关键Call的名字以及说明:
// 准备查找符合HID规范的USB设备
SetupDiGetClassDevs(&guidHID,NULL,0,DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
 
// 查找USB设备接口
SetupDiEnumDeviceInterfaces(hDevInfo,NULL,&guidHID,0, &strtInterfaceData);
 
//释放
SetupDiDestroyDeviceInfoList(hDevInfo);
 
// 若找到了设备,则读取设备路径名
SetupDiGetDeviceInterfaceDetail(hDevInfo,&strtInterfaceData,&strtDetailData,sizeof(strtDetailData),NULL,NULL))
 
// 开放与设备的通信
CreateFile(m_strPath,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
 
// 读取
HidD_GetAttributes(hCom,&strtAttrib))
Hid.dll.HidD_GetHidGuid
取得类别的
 
Setupapi.dll.SetupDiGetClassDevs
传回一个设备信息群,包含指定类的所有设备
 
Setupapi.dll.SetupDiEnumDeviceInterfaces
传回信息群内一个设备的信息路径
 
Setupapi.dll.SetupDiGetDeviceInterfaceDetail
传回设备路径
 
Hid.dll.HidD_GetAttributes
传回厂商与产品,及版本号码
 
Hid.dll.HidP_GetValueCaps
传回描述设备能力的结构
 
Kernel32.dll.CreateFile
开启设备通信
 
Kernel32.dll.WriteFile
传送一个输出报文给设备
 
Kernel32.dll.ReadFile
从设备读取报文
 
Kernel32.dll.CloseHandle
释放CreateFile使用的资源
 
Setupapi.dll.SetupDiDestroyDeviceInfoList
释放SetupDiGetClassDevs使用的资源
 
Hid.dll.HidD_GetPreparsedData
返回一个句柄到保存设备能力信息的缓冲器
 
Hid.dll.HidD_FreePreparsedData
释放HidD_GetPreparsedData使用的资源
 
Hid.dll.HidD_SetFeature
传送一个特征报文给设备
 
Hid.dll.HidD_GetFeature
从设备读取一个特征报文 
 
 
打狗无非就是:识别有没有插入狗-->枚举狗路径-->读取狗的版本-->读取狗数据-->验证。
根据上面的API断点,总是可以找到破解思路的。
注意,验证中可能有断点检查,会进误区。 
网友评论
<