if(bHooked == FALSE)
{
RtlInitUnicodeString (&HookDriverName, L"\\FileSystem\\Ntfs");
//获得\Driver\VolSnap驱动对象
status = ObReferenceObjectByName (
&HookDriverName,
OBJ_CASE_INSENSITIVE,
0,
0,
*IoDriverObjectType,
KernelMode,
0,
(PVOID*)&diskdrvobj
);
if (NT_SUCCESS (status) && pgOldFileControl == NULL)
{
pgOldFileControl = (PDRIVER_DISPATCH) InterlockedExchange( ( PLONG)&(diskdrvobj->MajorFunction[IRP_MJ_FILE_SYSTEM_CONTROL]), (LONG)&DispatchMyfileControl);
ObDereferenceObject(diskdrvobj);
DbgPrint("Hook: HOOK driver object! Success\n");
bHooked = TRUE;
}else HOOK NTFS 禁止格式化 // 禁止格式化
NTSTATUS DispatchMyfileControl ( IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp)
{
PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation( Irp ); if(IrpSp->Parameters.FileSystemControl.FsControlCode == FSCTL_LOCK_VOLUME ||
IrpSp->Parameters.FileSystemControl.FsControlCode == FSCTL_DISMOUNT_VOLUME)
{
PIRP NewIrp = NULL;
PIO_STACK_LOCATION NewIrpSp = NULL;
KEVENT event;
IO_STATUS_BLOCK ioStatus;
NTSTATUS status;
PDEVICE_OBJECT QuerryDev = NULL; QuerryDev = IrpSp->FileObject->Vpb->RealDevice;
if(QuerryDev == NULL)
{
_asm int 3;
} Irp->IoStatus.Information = 0;
Irp->IoStatus.Status = STATUS_ACCESS_DENIED;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_ACCESS_DENIED;
}
return pgOldFileControl(pDeviceObject,Irp);
}

HOOK NTFS 禁止格式化的更多相关文章

  1. object hook实现禁止创建文件

    object hook实现禁止创建文件 原理不说了,大伙都懂得.. 要解决的问题: ,FILE_NON_DIRECTORY_FILE); if (!NT_SUCCESS(status)) { dpri ...

  2. 通过hook实现禁止shift+delete快捷键

    实现全局hook必须要将hook代码封装在dll里,所以此程序有两个文件:noShiftDeleteHook.dll和noShiftDelete.exe noShiftDeleteHook.dll / ...

  3. vim代码格式化插件clang-format

    title: vim代码格式化插件clang-format date: 2017-12-12 20:28:26 tags: vim categories: 开发工具 安装vim-clang-forma ...

  4. 1-18 编译安装内核支持ntfs文件系统

    大纲: 源码编译Linux内核 使用Linux内核模块 实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写功能 =============================== ...

  5. Share and NTFS Permission

    NTFS Permissions Share Permissions Share and NTFS Permission Similarities 共享权限和NTFS权限的相似性 Modifying ...

  6. U盘用FAT32还是用NTFS格式好

    U盘用FAT32还是用NTFS格式好 ● FAT32文件系统 FAT32使用4个字节(也就是32位)的空间来表示每个扇区(Sector)配置文件的情形,故称之为FAT32.FAT16的分区容量上限是2 ...

  7. Inline Hook 钩子编写技巧

    Hook 技术通常被称为钩子技术,Hook技术是Windows系统用于替代中断机制的具体实现,钩子的含义就是在程序还没有调用系统函数之前,钩子捕获调用消息并获得控制权,在执行系统调用之前执行自身程序, ...

  8. Hyper-V2:向VM增加虚拟硬盘

    使用Hyper-V创建VM,在VM成功安装OS之后,发现VM只有一个逻辑盘C,用于存储VM的操作系统.在产品环境中,需要向VM增加虚拟硬盘,便于将数据单独存储在不同的逻辑盘符中.在Hyper-V中,分 ...

  9. 使用USBWriter做U盘启动盘后容量变小的解决办法

    环境windows10 , 以administrator登录: 1. 按下windows键盘上的Win+R键, 输入cmd 2. 输入DiskPart, 回车,  然后弹出新的命令行窗口 3. 在弹出 ...

随机推荐

  1. awk 进阶,百万行文件取交集

    今天我们说的不是简单的交集,而是如下示例: file1: as,er,gf,1212kl,iop,121378,jkl,uio,jki,1214vbnm,yuoi,678i,1215sadfasdf, ...

  2. VirtualBox网络的Host-Only配置

    创建host-only虚拟网卡 VBox管理器页面-管理-主机网络管理器,如果已经存在默认的虚拟网卡则下一步,如果不存在则创建一个虚拟网卡,不启用DHCP服务器,这里ip地址为192.168.137. ...

  3. <ROS> 通讯方式之 Action

    Ros 官网介绍 http://wiki.ros.org/actionlib 一个简易的action教程,package -- example_action_server. action文件夹内存放 ...

  4. Oracle + Mybatis批量插入数据,xml.mapper种的写法

    1,把表中去年所有的信息全部复制作为今年的数据,即查询出去年所有的数据然后复制插入 <insert id="cover" parameterType="java.l ...

  5. 团队第一次 # scrum meeting

    github 本此会议项目由PM召开,召开时间为4-1日晚上9点 召开时长30分钟 任务表格 袁勤 重新搭建原本的项目 https://github.com/buaa-2016/BuaaPhyLabB ...

  6. JS类型转换(强制和自动的规则)

    显式转换 通过手动进行类型转换,Javascript提供了以下转型函数: 转换为数值类型:Number(mix).parseInt(string,radix).parseFloat(string) 转 ...

  7. 实战ELK(7)ElasticSearch常用的基本查询语句

    1.term 过滤 term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经切词的文本数据类型): { "term": { "d ...

  8. 编写Servlet 实例 -Shopping网站时,遇到的几个问题

    问题一.在Web 上运行时,用JDBC链接MySQL总是出错,一直出现驱动加载失败 ------提示java.lang.ClassNotFoundException.解决方案:将数据库驱动jar文件导 ...

  9. java判断是否是数字

    1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ ...

  10. http-cookie、session、Token

    无状态  cookie技术的发展 客户端发送请求登录系统 Set-Cookie管理Cookie信息并且返回给客户端 拿着返回的cookie请求Server cookie 管理session 发送登录信 ...