




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、USB 透明加解密驱动By boywhp一、使用说明该驱动基于hook 技术实现了USB 指定目录透明加解密功能,在windows2000、XP、以及windows2003下测试通过,由于使用了fsd hook 技术,可能会与一些安全软件冲突。测试步骤如下: 1、启动binusbmon.sys2、插入U 盘【FAT32格式】,建立一个测试文件夹test 为加解密标识符,从硬盘拷贝一个文档到该目录,拔出U 盘。3、在另一台未安装驱动的机器上插入U 盘,文件已加密。4、插回原机器,文件被解密,卸载驱动。源代码位于codes 目录,v920是完整的版本,但是由于一些问题我没有很好的解决,所以你可以帮
2、忙完善下,你可以使用2000DDK 直接编译,也可以使用VC6直接编译。你可以自由修改代码,我有空也可以一起帮忙改进,如果你打算在商业代码中使用它,请开放代码,因为我痛恨它。 二、基本思路插入U 盘我们用DevView 看一下设备情况Root Driver :System32DRIVERSusbhub20.sysDriverusbhub20 - DeviceUSBPDO-6FILE_DEVICE_UNKNOWN usbhub20USB 通用驱动 System32DRIVERSUSBSTOR.SYS DriverUSBSTOR Device0000036 ->Pdo =DeviceUSBP
3、DO-6b oy wh p126.c omDevice0000037 ->Pdo =DeviceUSBPDO-6因此初步的设想是Hook USBSTOR 的数据读写处理函数,但是USBSTOR 并不常驻内存,因此我们要先顺便把它下层USBHUB 的PNP 事件也HOOK 掉,代码如下:Usbmon.c DriverEntry Line34:Globals.PnpHookHandle = SetupInlineHook(usbRoot->MajorFunctionIRP_MJ_PNP, HookPnpDevice, NULL;Usbmon.c HookPnpDevice Line83
4、: case IRP_MN_START_DEVICE:if (KeGetCurrentIrql( = PASSIVE_LEVEL /HOOK USBSTOR IRP_MJ_SCSIRtlInitUnicodeString(&usbStorName, USB_STOR_DRIVER_NAME;if (NT_SUCCESS(ObReferenceObjectByName(&usbStorName, OBJ_CASE_INSENSITIVE, NULL, 0, *IoDriverObjectType, 0, 0, &usbStor ObDereferenceObject(us
5、bStor;KdPrint("Usb device %08x %08x %08x started.n", DeviceObject, usbStor, irpStack->FileObject;if (Globals.UsbStorDriver && Globals.UsbStorDriver != usbStor ASSERT(Globals.ScsiHookHandle;KdPrint("RE_HOOK USBSTOR SCSI!" ClearInlineHook(Globals.ScsiHookHandle; Globals.
6、ScsiHookHandle = NULL;Globals.ScsiReadCompletionHandle = NULL; Globals.UsbStorDriver = usbStor; if (!Globals.ScsiHookHandle KdPrint("Hook UsbStor .n"Globals.ScsiHookHandle = SetupInlineHook(usbStor->MajorFunctionIRP_MJ_SCSI, HookUsbScsi, NULL; 这样我们就可以得到所有的USB 读写消息了,由于我们处理的相当底层了,因此这一层实际上
7、已经是SCSI 接口标准了,当然如果b oy wh p126.c om你要做全盘透明加密的话,还是可以考虑在这里处理加解密,但是会有一些很麻烦的小问题,比方说文件缓存的问题,我在驱动开发网上发了相关的问题,但是至今没有人回答。也许是这个比较难搞吧,如果你了解scsi 以及windows 内核,你可以看看v920,里面有更多好玩的东西。这里我们的目标是加解密指定的文件夹,但是在usbstor 这一层已经没有任何的文件对象了,这点你可以用windbg 验证。所以我们需要一个更上层的hook,也就是hook windows 文件系统,因为Mj告诉我Irp 到那一层还是有文件对象的。fsdhook 网
8、上流传的多是hook ntfs,但是一般的U 盘都是Fat 格式的,hoho。不过原理是一样的,只是hook fastfat 而已。Usbmon.c DriverEntry Line213:Globals.fsdReadHookHandle = SetupInlineHook(Globals.FastFatDriver->MajorFunctionIRP_MJ_READ, HookFsdReadWrite, NULL;Globals.fsdWriteHookHandle = SetupInlineHook(Globals.FastFatDriver->MajorFunctionIRP_MJ_WRITE, HookFsdReadWrite, NULL;这样所有的文件数据都会在HookFsdReadWrite 中流过,而且你也有一个文件对象。相关代码太简单了,注意的一点就是加密的时候记得最后要恢复原始数据到Mdl。至于SetupInlineHook,也很简单,稍微了解一点汇编,在图上画几下应该可以明白。 b oy wh p126.c om三、后记220行代码的USB透明加密复杂吗?为什么google不到任何资料?很是郁闷。也许一些关键技术是要保密吧,但是我痛恨没有资料。痛恨那些个从互联网
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学三年级下册(三下)苏教版数学期中测试卷.2
- 2025年小升初数学专项训练-集合(含答案)
- 2024国际设计师考试全景式复习试题及答案
- 2024年设计师创意能力考核题及答案
- 助理广告师考试目标导向试题及答案
- 侧方停车考试题库及答案
- 信托业培训试题及答案
- 2024年纺织品新材料趋势试题及答案
- 新能源知识竞赛考试试卷及答案(二)
- 广告设计师考试2024年外部环境影响试题及答案
- 妇科一病一品护理汇报
- 大学生心理健康教育-大学生心理健康
- 精密干涉传感技术与应用 - 干涉条纹与zernike多项式
- 2024住院患者静脉血栓栓塞症预防护理与管理专家共识要点(全文)
- 2024-2030年中国有机肥产业应用态势及投资盈利预测报告
- 钢结构工程施工应急处置措施
- 施工损坏赔偿协议书
- 2024年湖北省十堰市荆楚初中联盟八年级中考模拟预测生物试题
- 2024年北京东城区高三二模地理试题和答案
- 幼儿园一等奖公开课:大班绘本《爱书的孩子》课件
- 中国城市建设史智慧树知到期末考试答案章节答案2024年西安工业大学
评论
0/150
提交评论