阅读:2086回复:18
请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到Read方法
这是为何??斑竹是如何解决这个问题的?
|
|
最新喜欢:![]()
|
沙发#
发布于:2007-05-11 08:32
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
我没看清楚你的意思,请见谅!1. 谁读文件? 2. 和透明加解密有什么关系? 3. 清缓存和Read方法又有什么关系? |
|
|
板凳#
发布于:2007-05-11 08:48
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
多谢版主回答,我的意思是这样的:在SfRead方法中,比如说读一个文本文件,是用记事本打开的,打开时,除了首次可以进到SfRead方法中,以后打开时,不能进入SfRead方法。也就不能解密。 所以SfCleanClose方法中清缓存,这样每次读的时候都会进到SfRead中进行解密。 这个清缓存操作对不对? |
|
|
地板#
发布于:2007-05-11 08:54
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
不需要,难道你首次SfRead例程调用中不做解密吗? :-)大家怎么都对清缓存这么感兴趣,这是一个美好的陷阱, 我曾花费了一个星期来弄懂它,但最终被OSR上的MVP忠告了一堆忠告! |
|
|
地下室#
发布于:2007-05-11 08:57
第一次读取后数据可能在缓存中。如在缓存中就无需再读物理空间,包括预读的内容。读缓存中数据一般通过fastioxxx来操作。但是缓存中数据是解密的内容还是加密的内容,主要是看加密/解密操作所处的位置。如在SfRead中处理密文,则缓存中数据就是明文。
理论上不需要在对缓存中数据操作,因为首次操作保证了你的数据能够操作正确。除非数据需要指定可信进程来处理,需要考虑缓存的内容。 |
|
|
5楼#
发布于:2007-05-11 09:03
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
多谢二位的回答,十分感谢 |
|
|
6楼#
发布于:2007-05-11 09:10
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
还想请教二位一个问题,是在写加密的时候,我用采用rc4加密,对于小文件没有问题,对于大文件会死机,大文件需不需要做特殊的处理? |
|
|
7楼#
发布于:2007-05-11 09:49
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
加密简单过程:a.得到Windows传下来的Buffer Address, if (Irp->MdlAddress) { SysDataBuf = MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority); } else { SysDataBuf = Irp->UserBuffer; } b.保存明文SysDataBuf 在SysDataBufFirst c.用你强大的算法加密SysDataBuf -->> MyBuf d.把MyBuf Copy到 SysDataBuf, e.IoCallDriver 把密文向下传,写入HardDisk。 f.恢复内存的明文 RtlCopyMemory(SysDataBuf,SysDataBufFirst, ulWriteLen);. 请问两位版主,这个流程对不对?? |
|
|
8楼#
发布于:2007-05-11 10:09
最好把数据包分成数K字节的块,逐块进行加密.
|
|
9楼#
发布于:2007-05-11 10:21
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
楼上的,需要分块加密吗? |
|
|
10楼#
发布于:2007-05-11 10:39
Re:Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
引用第3楼devia于2007-05-11 08:54发表的“Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R”: 对于以前加密过的文件脱离内网后又重新返回的情况,系统还没有判断文件是否经过加密,第一次读文件时,cache是缓冲了整个文件,且缓存中为秘文,如果不清缓存,这种情况如何避免呢? |
|
11楼#
发布于:2007-05-11 11:07
"对于以前加密过的文件脱离内网后又重新返回的情况,系统还没有判断文件是否经过加密,第一次读文件时,cache是缓冲了整个文件,且缓存中为秘文,如果不清缓存,这种情况如何避免呢?"
这时候要看是哪个进程在操作了 如果是可信的进程操作的话就要先把缓存给清了 要不就解不开了 如果是非可信进程操作的话就不用清了,譬如:explorer 总之是清了缓寸最好 透明加解蜜是和进程相关的 |
|
12楼#
发布于:2007-06-15 23:55
楼主您好,我做透明加密时也出现同样的问题,
小文件时可以(<190K),大文件时死机. BugCheck: Page_Fault_in_NonPage_Area(0x50) 目前还没找到问题,各位大佬帮帮俺啊 |
|
|
13楼#
发布于:2007-06-20 14:09
能不能告诉我OSR是什么,网址多少啊?
|
|
14楼#
发布于:2008-04-09 00:09
同样的问题 正在找解决办法
给顶起来吧 |
|
15楼#
发布于:2008-04-09 00:11
同样的问题 顶起来!
|
|
16楼#
发布于:2008-04-11 14:20
Re:Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
引用第7楼linuxyf于2007-05-11 09:49发表的 Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R : 如果这是加密的过程,到e的时候是不是就结束了吗? 第f步,是什么意思呢? 能给讲讲吗? |
|
17楼#
发布于:2008-04-11 14:25
哦,是让调用者仍然看到的是明文,
不好意思~我理解能力很差~ |
|
18楼#
发布于:2008-04-14 14:17
恢复内存的明文 RtlCopyMemory(SysDataBuf,SysDataBufFirst, ulWriteLen);.
需要么 驱动程序收到IRP的数据,然后申请一块内存(使用完就销毁), 将IRP数据复制出来加密,然后再放到IRP里 为什么要恢复内存明文呢 秘文跟着IRP走了阿? 这与“调用者仍然看到的是明文”有什么关系呢? |
|
|