DriverEntry zwCreatefile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #include"ntddk.h" VOID xiezai1(PDRIVER_OBJECT qudongduixiang) { KdPrint(( "驱动卸载 历程\n" )); return ; } NTSTATUS DriverEntry(PDRIVER_OBJECT qudongduixiang, PUNICODE_STRING zhucebiao1) { HANDLE wenjianjubing = NULL; NTSTATUS zhuangtai1; UNICODE_STRING wenjianming; UNICODE_STRING wenjianming2; OBJECT_ATTRIBUTES duixiangshuxing; IO_STATUS_BLOCK zhuangtaikuai; //可拥有的控制权 FILE_BASIC_INFORMATION xinxi_jiben; LARGE_INTEGER linshi1; PVOID str1; RtlInitUnicodeString(&wenjianming, L "\\??\\c:\\李赛赛.txt" ); //初始化文件名 memset (&duixiangshuxing, 0, sizeof (OBJECT_ATTRIBUTES)); //对象属性清空 InitializeObjectAttributes(&duixiangshuxing, &wenjianming, OBJ_CASE_INSENSITIVE, NULL, NULL); //对象属性关键是文件名字 不区分大小写 zhuangtai1 = ZwCreateFile(&wenjianjubing, GENERIC_ALL, &duixiangshuxing, &zhuangtaikuai, NULL, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_READ, FILE_OPEN_IF, FILE_NON_DIRECTORY_FILE, NULL, 0); //就是普通文件属性.其他常用的还有: // FILE_ATTRIBUTE_DIRECTORY 目录 FILE_SHARE_READ共享读 我们创建这个文件还对这个文件进行操作的时候 别的应用程序对这个文件进行访问的时候 只能进行读这个文件 // FILE_ATTRIBUTE_ARCHIVE 存档 FILE_OPEN_IF 如果不存在创建文件 如果存在打开文件 // FILE_ATTRIBUTE_READONLY 只读 // FILE_ATTRIBUTE_HIDDEN 隐藏 // FILE_ATTRIBUTE_SYSTEM 系统 if (!NT_SUCCESS(zhuangtai1)) { KdPrint(( "ZwCreateFile文件创建失败\n" )); } else { KdPrint(( "ZwCreateFile文件创建成功\n" )); } ZwClose(wenjianjubing); //打开文件------------------------------------------------------ RtlInitUnicodeString(&wenjianming, L "\\??\\c:\\李赛赛.txt" ); //初始化文件名 memset (&duixiangshuxing, 0, sizeof (OBJECT_ATTRIBUTES)); //对象属性清空 InitializeObjectAttributes(&duixiangshuxing, &wenjianming, OBJ_CASE_INSENSITIVE, NULL, NULL); //对象属性关键是文件名字 不区分大小写 zhuangtai1 = ZwOpenFile(&wenjianjubing, GENERIC_ALL, &duixiangshuxing, &zhuangtaikuai, FILE_SHARE_READ, FILE_NON_DIRECTORY_FILE); //FILE_NON_DIRECTORY_FILE FILE_SYNCHRONOUS_IO_NONALERT if (!NT_SUCCESS(zhuangtai1)) { KdPrint(( "ZwOpenFile打开文件失败\n" )); } else { KdPrint(( "ZwOpenFile打开文件成功\n" )); } zhuangtai1 = ZwQueryInformationFile(wenjianjubing, &zhuangtaikuai, &xinxi_jiben, sizeof (FILE_BASIC_INFORMATION), FileBasicInformation); if (!NT_SUCCESS(zhuangtai1)) { ZwClose(wenjianjubing); } KdPrint(( "%x %x" , xinxi_jiben.ChangeTime.QuadPart, xinxi_jiben.FileAttributes)); xinxi_jiben.CreationTime.QuadPart = 0; xinxi_jiben.FileAttributes |= FILE_ATTRIBUTE_HIDDEN; zhuangtai1 = ZwSetInformationFile(wenjianjubing, &zhuangtaikuai, &xinxi_jiben, sizeof (FILE_BASIC_INFORMATION), FileBasicInformation); if (!NT_SUCCESS(zhuangtai1)) { ZwClose(wenjianjubing); } str1 = ExAllocatePool(NonPagedPool, 50); linshi1.QuadPart = 0; zhuangtai1 = ZwReadFile(wenjianjubing, NULL, NULL, NULL, &zhuangtaikuai, str1, 50, &linshi1, NULL); if (!NT_SUCCESS(zhuangtai1)) { KdPrint(( "错误码%x" , zhuangtai1)); ZwClose(wenjianjubing); } RtlCopyMemory(str1, "\n打击日本鬼子" , strlen ( "\n打击日本鬼子" )); linshi1.QuadPart = strlen ( "\n打击日本鬼子" ); zhuangtai1 = ZwWriteFile(wenjianjubing, NULL, NULL, NULL, &zhuangtaikuai, str1, 50, &linshi1, NULL); KdPrint(( "%s" , str1)); ZwClose(wenjianjubing); qudongduixiang->DriverUnload = xiezai1; //ZwCreateFile 创建文件 //ZwOpenFile 打开文件 //ZwSetInformationFile 设置创建的名字 信息大小 //ZwQueryInformationFile查询文件的信息 时间 名字 很多东西 //ZwReadFile 读取文件 //ZwWriteFile 写文件 return STATUS_SUCCESS; } |
分类:
驱动内核
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-11-02 usb dcd
2022-11-02 unsigned char usb_receive_buffer[64] = {0};
2022-11-02 CUSTOM_HID_EPOUT_ADDR CUSTOM_HID_EPOUT_ADDR
2022-11-02 USBD_CUSTOM_HID_SendReport
2022-11-02 github搜索
2022-11-02 USBD_LL_Transmit
2022-11-02 usb cdc