|
[原创]#30天写作挑战#炒冷饭之Minifilter学习
支持一下,现在学minifilter的人应该不多了 UNICODE_STRING应该是不保证以0结尾, 使用wcsstr来搜索UNICODE_STRING可能会有问题的 |
|
[原创][开源]sysenter;实现万分之一毫秒级sleep
sysenter 0x3b XP下也就是NtDelayExecution NTSYSAPI NTSTATUS NTAPI NtDelayExecution( IN BOOLEAN Alertable, IN PLARGE_INTEGER DelayInterval ); |
|
根据簇号快速定位文件路径
这个没有了,算法优化只能慢慢搞。 |
|
根据簇号快速定位文件路径
不走解析NTFS的路,那就用FSCTL_GET_RETRIEVAL_POINTERS这个IOCTL,不过一样要枚举出所有文件。WINHEX占用内存小,好像是因为他会把信息保存到文件中。 |
|
根据簇号快速定位文件路径
解析NTFS文件系统 得到 文件路径和簇的对应关系。 |
|
根据簇号快速定位文件路径
如果是WIN7+: 用FSCTL_LOOKUP_STREAM_FROM_CLUSTER IO控制码可以实现,速度会有点慢,但可接受吧。 // LocateFileFromCluster.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <winioctl.h> #include <memory> int _tmain(int argc, _TCHAR* argv[]) { if (argc != 3) { printf("LocateFileFromCluster.exe <VolumeName> <ClusterNo>\n"); return 0; } LOOKUP_STREAM_FROM_CLUSTER_INPUT Input; Input.Flags = 0; Input.NumberOfClusters = 1; Input.Cluster[0].QuadPart = _wtoi64(argv[2]); PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT Output = nullptr; const DWORD OutputSize = 65536; std::unique_ptr<BYTE[]> OutputBuffer(new BYTE[OutputSize]); Output = reinterpret_cast<PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT>(OutputBuffer.get()); HANDLE VolumeHandle = CreateFile(argv[1], GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, nullptr); if (VolumeHandle == INVALID_HANDLE_VALUE) { printf("Open volume failed:%d\n", GetLastError()); return 0; } DWORD dwBytesReturned = 0; BOOL fOk = DeviceIoControl(VolumeHandle, [COLOR="Red"]FSCTL_LOOKUP_STREAM_FROM_CLUSTER[/COLOR], (PVOID)&Input, sizeof(Input), Output, OutputSize, &dwBytesReturned, nullptr); CloseHandle(VolumeHandle); if (fOk) { PLOOKUP_STREAM_FROM_CLUSTER_ENTRY Entry = reinterpret_cast<PLOOKUP_STREAM_FROM_CLUSTER_ENTRY>((PCHAR)(Output)+Output->Offset); printf("%S\n", Entry->FileName); } else { printf("Query failed : %d\n", GetLastError()); } return 0; } 如果是XP/VISTA,貌似只能走WINHEX方法,分析文件系统。。。。 |
|
[分享]关于文件系统过滤驱动sFilter框架的话题。MiniFilter框架已经很成熟了,sFilter框架还能用吗?
用sfilter的也是可以的, 只是vista+以后,如果你想支持TxF,必须要走minifilter,因为微软没有提供sfilter支持。 另外IoRegisterFsRegistrationChange据说存在一个竞态问题,微软推荐使用 IoRegisterFsRegistrationChangeMountAware。 |
|
我做为一名程序员,在计算机软件这个行业的成长道路
facebook也要windows内核开发程序员? |
|
Minifilter禁止创建
对于文件生成的情况,要手动删除 |
|
求指教,关于增量更新
bsdiff |
|
|
|
[求助]不让杀毒软件读取某项注册表
可以的! |
|
10万现金求购引擎
LZ也是要去搞一个类似COS的么? |
|
[求助]驱动读取注册表问题
少年,学驱动也是要有WINDOWS编程基础的。 |
|
[讨论]Using STL in Kernel Driver Coding
搜索一下吧。国外有人做过 |
|
[求助]IRP_MJ_CLOSE的问题
IRP_MJ_CLOSE是会延迟发送的,因为fileObject会被有些内核组件缓存。 |
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值