首页
社区
课程
招聘
[原创]基于diskperf写了一个U盘控制程序
发表于: 2013-4-3 20:54 10539

[原创]基于diskperf写了一个U盘控制程序

2013-4-3 20:54
10539

  之前见到过一款系统,可以实现对U盘的访问控制,只有注册过的U盘才能正常使用,否则会提示  请将磁盘插入驱动器...  

    简单用IDA膜拜了一下它的一个驱动,貌似是从diskperf上修改的,就想着模仿一下它的功能,因为其工作比较复杂,不止一个驱动,所以打算简单实现功能即可。。。没加多少代码,高手飘过~~
  
  曾经在一个群里问过怎么才能实现  弹出 请将磁盘插入驱动器  这个对话框,估计问题太2,没人摆我,于是就在IDA里翻啊翻,在其   ReadWriteDispatch 翻到这么一段代码:(感谢F5插件,要不我等水货肯定头大)
  
  

if ( pDeviceObject == DeviceObject )          // xxx的  FDO
  {
      status = 0xC0000010u;     // STATUS_INVALID_DEVICE_REQUEST
  LABEL_3:
      Irp->IoStatus.Status = status;
      returnValue = status;
  LABEL_44:
      Irp->IoStatus.Information = 0;
      IofCompleteRequest(Irp, 0);
      return returnValue;
  }

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

上传的附件:
收藏
免费 6
支持
分享
最新回复 (14)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
破解这些XX程序一向很有动力~
2013-4-3 22:57
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
话说,人家在普通电脑上显示未格式化的真正原因是。。。。透明加密~~
2013-4-3 22:58
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
4
这个还真没想到啊~~不过破解来讲,方法太多了,直接IRP HOOK都够了,黑月教主的摘除方法就显得繁琐了~ 俺甚至想到了装一个USB转串口驱动,接个单片机,挂个U盘读写模块了事,不过没实际制作,懒了~~膜拜achillis
2013-4-3 23:37
0
雪    币: 51
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
鞋子分享。。。
2013-4-4 06:51
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习了。。。IRP
2013-4-4 08:22
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
7
我没拿到过这种U盘,不过听有人说只是在U盘的某个偏移处写了一个标志啊~~
2013-4-4 09:33
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
8
居然没发现 achillis 就是黑月教主~~
2013-4-8 00:28
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
    抱歉,你跟我说的安全弹出,我一直以为是托盘的安全弹出,这个跟在盘符右击的弹出有差别。托盘的弹出是设备弹出,也就是移除设备,PNP管理器发的IRP应该是IRP_MN_REMOVE_DEVICE,盘符右键的弹出是设备里媒介的弹出(可以想象是光驱里的光盘),发的IRP应该是IOCTL_STORAGE_EJECT_MEDIA,区别你也看到了吧,前者是移除Device,后者移除Media。

    至于强制拔出的问题,之前你也没告诉我你的需求,刚看到你的需求。其实没有必要在DiskPerfReadWrite 读DBR的时候去Write会正确的标识,你可以再DiskPerfReadWrite 读DBR的时候,直接修改读完后的缓冲区,把你的标识改回来,这样就算强制移除,U盘的数据一样不会有变化。
    普通系统下,U盘显示请将磁盘插入驱动器,的问题,这个跟文件系统有关,如果你的盘被raw识别,那么只会弹出未格式化对话框,所以你需要做个手脚,让NTFS或FAT文件系统识别你的盘,但又让他们觉得在某些参数上有问题(比如大小),让他们无法正常操作,这个时候就访问盘的时候,文件系统就会报错,由于文件系统已经挂载了,当然不会弹出未格式化框了。你想想,“请将磁盘插入驱动器”,像不像把软盘插入软驱的提示呢?这里的磁盘和驱动器的关系像不像前面提到到Media和Device的关系呢?
2013-4-8 10:34
0
雪    币: 298
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
嗯,某涉密信息管理系统就是~07年逆向时分析过。应该算是方便管理权限的漏洞。而受限U盘是全盘加密的。同时固定格式文档也被接口加密。
2013-4-8 23:17
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
11
感谢ITSailor关于弹出的解释~不知道你是怎么知道的啊?调试出来的么?

另外,可能我没说清楚,我在设置的 完成例程里面 就是修改的缓冲区,而没有回写数据到U盘,嘿嘿~~非常感谢!
2013-4-9 21:25
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
12
全盘加密的话,应该是文件过滤驱动的事吧?为什么只XX了磁盘过滤驱动就能正常使用 非特定U盘呢?  或许是版本不一样?
2013-4-9 21:32
0
雪    币: 326
活跃值: (56)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
读卷的头格式,再解析也可以吧.研究过,但没有具体实现.
2013-4-11 16:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
全盘加密的话,应该是文件过滤驱动的事吧?为什么只XX了磁盘过滤驱动就能正常使用 非特定U盘呢?  或许是版本不一样?
2013-4-16 13:02
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
15
为毛copy我的回复,骚年?
2013-4-16 21:34
0
游客
登录 | 注册 方可回帖
返回
//