20楼#
发布于:2005-07-02 20:30
你的程序是想达到什么目的,实现什么功能,能详细说明一下吗,这样我们也好读懂你的代码,thx
|
|
|
21楼#
发布于:2005-08-10 19:52
很不错的程序支持一下,另外请问代码里边需要的验证文件老大能够提供吗?否则安装后在driverentry就退出了:》
|
|
|
22楼#
发布于:2007-01-23 11:35
老大,能给一个xefs.dat文件吗? xiaanyong@yahoo.com.cn
|
|
23楼#
发布于:2007-01-23 16:29
我觉得是为了隐藏记录加密信息的文件夹用的
|
|
|
24楼#
发布于:2007-01-26 18:55
能给出调试方法吗?我 编译好DDK里面的 Sfilter.sys 但是运行使用 DebugView.exe 什么也看不到.
可能是我不太会用.指教一下 好吗? |
|
|
25楼#
发布于:2007-02-16 13:45
我也需要一个 xefs.dat 文件 !那位好人 送我一个,minyuanyang@gmail.com
|
|
|
26楼#
发布于:2007-02-26 09:00
我用了。但是对 除了 C盘外的。好使。但是C盘总也起步来。卡住在黑屏状态。没有蓝屏。
除了C盘,其他盘。好像格式化后才能加密。之前总也不加密。为什么呢? |
|
|
27楼#
发布于:2007-02-26 18:27
我调试 发现。
sfwrite(.... ..... ExAcquireFastMutex(&DevExt->FsCtxTableMutex); pFileSrcCtx->FsContext = FileObject->FsContext; FileCtxPtr = RtlLookupElementGenericTable(&DevExt->FsCtxTable, pFileSrcCtx); ExReleaseFastMutex(&DevExt->FsCtxTableMutex); ExFreeToPagedLookasideList(&gFileContextLookAsideList, pFileSrcCtx); IoSkipCurrentIrpStackLocation(Irp); return IoCallDriver(DevExt->NLExtHeader.AttachedToDeviceObject, Irp); if (!FileCtxPtr || !FileCtxPtr->EncryptOnWrite ) { IoSkipCurrentIrpStackLocation(Irp); Status = IoCallDriver(DevExt->NLExtHeader.AttachedToDeviceObject, Irp); return Status ; //监测 Return 全都是 0 ,就是成功。进入20多次,之后驱动到这里就停掉了。黑屏。也没有进入驱动的其他部分。就是黑屏。WinDebug 再也看不到消息。状态如下。 } eax=00000001 ebx=ffdff980 ecx=8054af4c edx=000003f8 esi=00000001 edi=083759d4 eip=80527da8 esp=f93da810 ebp=f93da820 iopl=0 nv up ei pl nz na po nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202 nt!RtlpBreakWithStatusInstruction: 80527da8 cc int 3 kd> u nt!vDbgPrintExWithPrefix: 80527db2 6824020000 push 224h 80527db7 6808b14d80 push offset nt!ObWatchHandles+0x8dc (804db108) 80527dbc e81f030100 call nt!_SEH_prolog (805380e0) 80527dc1 a140b05480 mov eax,dword ptr [nt!__security_cookie (8054b040)] 80527dc6 8945e4 mov dword ptr [ebp-1Ch],eax 80527dc9 8b7d08 mov edi,dword ptr [ebp+8] 80527dcc 8b4514 mov eax,dword ptr [ebp+14h] 80527dcf 8985dcfdffff mov dword ptr [ebp-224h],eax kd> u nt!vDbgPrintExWithPrefix+0x23: 80527dd5 8b4518 mov eax,dword ptr [ebp+18h] 80527dd8 8985d8fdffff mov dword ptr [ebp-228h],eax 80527dde 33db xor ebx,ebx 80527de0 837d0cff cmp dword ptr [ebp+0Ch],0FFFFFFFFh 80527de4 7413 je nt!vDbgPrintExWithPrefix+0x47 (80527df9) 80527de6 ff7510 push dword ptr [ebp+10h] 80527de9 ff750c push dword ptr [ebp+0Ch] 80527dec e815440100 call nt!NtQueryDebugFilterState (8053c206) kd> u nt!vDbgPrintExWithPrefix+0x3f: 80527df1 85c0 test eax,eax 80527df3 0f84c8000000 je nt!vDbgPrintExWithPrefix+0x10f (80527ec1) 80527df9 895dfc mov dword ptr [ebp-4],ebx 80527dfc 8bc7 mov eax,edi 80527dfe 8d4801 lea ecx,[eax+1] 80527e01 8a10 mov dl,byte ptr [eax] 80527e03 40 inc eax 80527e04 84d2 test dl,dl 俺是 新人。请多指教。就是 好楼主的的代码。 |
|
|
28楼#
发布于:2007-03-01 14:31
楼主老大,能给一个xefs.dat文件吗?多谢! liujijia@sina.com
|
|
29楼#
发布于:2007-03-02 14:25
引用第25楼magichere于2007-02-16 13:45发表的“”: 各位如有该文件请发给我一个。多谢。 liujijia@sina.com |
|
30楼#
发布于:2007-03-02 15:52
搜一下,应该有很多的.
上传一个,感兴趣的看一下吧. |
|
|
31楼#
发布于:2007-03-02 20:19
我有.但是不会上传.
|
|
|
32楼#
发布于:2007-03-06 11:48
新手上路,正在学习前辈的工作中……
有一个问题不解,还望前辈解答,为什么要用gFsCtxLookAsideList和gFileContextLookAsideList两个不同的LookAsideList呢?除了一个size+32以外,我看好像他们分配的东西都是一样的,都是FILE_CONTEXT对象,为什么不能只用一个呢?困惑中…… |
|
33楼#
发布于:2007-03-06 19:49
再提一个问题:
在SfCreate()中,在下层驱动完成后,使用的是FileObject->FsContext值来判断是否是文件还是目录,按照楚狂人教程的说法,Create成功以后,IrpSp->Parameters.Create.Options的FILE_DIRECTORY_FILE标志也指明是否是一个目录,没有必要发送IRP来查询FileObject的属性。但我自己在测试中发现,即使同时使用这两种方法,DbgPrint的输出里仍然能看到诸如"C:\"、"C:\WINDOWS\system32"这样的被打开的目录,请问这是为什么呀?能否避免呢?如果必须发送IRP来查询的话,又该怎么做呢? |
|
34楼#
发布于:2007-03-07 09:41
对33楼问题,是俺搞错了FileObject->FsContext的数据类型,应该没有问题的。大牛圣明!
自问自答,算不算灌水啊。 |
|
35楼#
发布于:2007-03-20 14:06
引用第30楼reddargon于2007-03-02 15:52发表的“”: 多谢。虽然没用上-我没办法,自已写了一个。 还是多谢! |
|
36楼#
发布于:2007-03-21 14:43
发现一个问题,有时候发现 , 已经加密的文件,也包含$ecrypt的加密标志文件,但是没有解密。
是乱码!怎么回事? |
|
|
37楼#
发布于:2007-03-25 10:02
看看。。。
|
|
38楼#
发布于:2007-03-26 17:11
装了一个Office 有些文件解不出来.就乱了!
|
|
|
39楼#
发布于:2007-05-30 13:00
#if DBG
#define DEBUG_VOLUME L'D' #endif ... #if DBG KdPrint(("sfilter!SfRead: ...2%08x %08x \n", DevExt->DriveLetter, L'D')); if (DevExt->DriveLetter != DEBUG_VOLUME) { IoSkipCurrentIrpStackLocation(Irp); return IoCallDriver(DevExt->AttachedToDeviceObject, Irp); } #endif 上一段代码,我在D盘操作文件测试, 为什么总是DevExt->DriveLetter != DEBUG_VOLUME成立,并进入if语句内,退出? |
|