linuxyf
驱动小牛
驱动小牛
  • 注册日期2007-04-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望162点
  • 贡献值0点
  • 好评度161点
  • 原创分1分
  • 专家分0分
阅读:2086回复:18

请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到Read方法

楼主#
更多 发布于:2007-05-10 18:51
  这是为何??斑竹是如何解决这个问题的?

最新喜欢:

LeopardLeopar...
在孤独和无助中缓慢前行...
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
沙发#
发布于:2007-05-11 08:32
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
我没看清楚你的意思,请见谅!

1. 谁读文件?
2. 和透明加解密有什么关系?
3. 清缓存和Read方法又有什么关系?
人总在矛盾中徘徊。。。
linuxyf
驱动小牛
驱动小牛
  • 注册日期2007-04-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望162点
  • 贡献值0点
  • 好评度161点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2007-05-11 08:48
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
多谢版主回答,我的意思是这样的:

在SfRead方法中,比如说读一个文本文件,是用记事本打开的,打开时,除了首次可以进到SfRead方法中,以后打开时,不能进入SfRead方法。也就不能解密。

所以SfCleanClose方法中清缓存,这样每次读的时候都会进到SfRead中进行解密。

这个清缓存操作对不对?
在孤独和无助中缓慢前行...
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
地板#
发布于:2007-05-11 08:54
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
不需要,难道你首次SfRead例程调用中不做解密吗? :-)

大家怎么都对清缓存这么感兴趣,这是一个美好的陷阱,
我曾花费了一个星期来弄懂它,但最终被OSR上的MVP忠告了一堆忠告!
人总在矛盾中徘徊。。。
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
地下室#
发布于:2007-05-11 08:57
第一次读取后数据可能在缓存中。如在缓存中就无需再读物理空间,包括预读的内容。读缓存中数据一般通过fastioxxx来操作。但是缓存中数据是解密的内容还是加密的内容,主要是看加密/解密操作所处的位置。如在SfRead中处理密文,则缓存中数据就是明文。

理论上不需要在对缓存中数据操作,因为首次操作保证了你的数据能够操作正确。除非数据需要指定可信进程来处理,需要考虑缓存的内容。
走走看看开源好 Solaris vs Linux
linuxyf
驱动小牛
驱动小牛
  • 注册日期2007-04-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望162点
  • 贡献值0点
  • 好评度161点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2007-05-11 09:03
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
多谢二位的回答,十分感谢
在孤独和无助中缓慢前行...
linuxyf
驱动小牛
驱动小牛
  • 注册日期2007-04-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望162点
  • 贡献值0点
  • 好评度161点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2007-05-11 09:10
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
还想请教二位一个问题,是在写加密的时候,我用采用rc4加密,对于小文件没有问题,对于大文件会死机,大文件需不需要做特殊的处理?
在孤独和无助中缓慢前行...
linuxyf
驱动小牛
驱动小牛
  • 注册日期2007-04-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望162点
  • 贡献值0点
  • 好评度161点
  • 原创分1分
  • 专家分0分
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);.

请问两位版主,这个流程对不对??
在孤独和无助中缓慢前行...
nvicly
驱动牛犊
驱动牛犊
  • 注册日期2006-09-12
  • 最后登录2019-01-21
  • 粉丝1
  • 关注0
  • 积分12分
  • 威望158点
  • 贡献值0点
  • 好评度82点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2007-05-11 10:09
最好把数据包分成数K字节的块,逐块进行加密.
linuxyf
驱动小牛
驱动小牛
  • 注册日期2007-04-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望162点
  • 贡献值0点
  • 好评度161点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2007-05-11 10:21
Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
楼上的,需要分块加密吗?
在孤独和无助中缓慢前行...
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-05-11 10:39
Re:Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
引用第3楼devia2007-05-11 08:54发表的“Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R”:
不需要,难道你首次SfRead例程调用中不做解密吗? :-)

大家怎么都对清缓存这么感兴趣,这是一个美好的陷阱,
我曾花费了一个星期来弄懂它,但最终被OSR上的MVP忠告了一堆忠告!


对于以前加密过的文件脱离内网后又重新返回的情况,系统还没有判断文件是否经过加密,第一次读文件时,cache是缓冲了整个文件,且缓存中为秘文,如果不清缓存,这种情况如何避免呢?
driver12345
驱动牛犊
驱动牛犊
  • 注册日期2005-11-15
  • 最后登录2007-10-28
  • 粉丝0
  • 关注0
  • 积分814分
  • 威望84点
  • 贡献值0点
  • 好评度82点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-05-11 11:07
"对于以前加密过的文件脱离内网后又重新返回的情况,系统还没有判断文件是否经过加密,第一次读文件时,cache是缓冲了整个文件,且缓存中为秘文,如果不清缓存,这种情况如何避免呢?"

这时候要看是哪个进程在操作了
如果是可信的进程操作的话就要先把缓存给清了 要不就解不开了
如果是非可信进程操作的话就不用清了,譬如:explorer
总之是清了缓寸最好

透明加解蜜是和进程相关的
jl2004
驱动小牛
驱动小牛
  • 注册日期2007-04-10
  • 最后登录2011-02-22
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望276点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-06-15 23:55
楼主您好,我做透明加密时也出现同样的问题,
小文件时可以(<190K),大文件时死机.
BugCheck: Page_Fault_in_NonPage_Area(0x50)

目前还没找到问题,各位大佬帮帮俺啊
向前,向前,向前....
pandaforum
驱动小牛
驱动小牛
  • 注册日期2007-02-13
  • 最后登录2011-09-06
  • 粉丝0
  • 关注0
  • 积分728分
  • 威望282点
  • 贡献值1点
  • 好评度66点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-06-20 14:09
能不能告诉我OSR是什么,网址多少啊?
mr6698
驱动牛犊
驱动牛犊
  • 注册日期2008-03-26
  • 最后登录2017-09-27
  • 粉丝3
  • 关注0
  • 积分21分
  • 威望200点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分1分
14楼#
发布于:2008-04-09 00:09
同样的问题  正在找解决办法
给顶起来吧
mr6698
驱动牛犊
驱动牛犊
  • 注册日期2008-03-26
  • 最后登录2017-09-27
  • 粉丝3
  • 关注0
  • 积分21分
  • 威望200点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分1分
15楼#
发布于:2008-04-09 00:11
同样的问题 顶起来!
robinking
驱动牛犊
驱动牛犊
  • 注册日期2005-08-27
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望15点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2008-04-11 14:20
Re:Re:请问版主,在透明加密解密程序中,读文件的时候是否要 清缓存,不清缓存有时候不能进到R
引用第7楼linuxyf于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);.

请问两位版主,这个流程对不对??


如果这是加密的过程,到e的时候是不是就结束了吗?
第f步,是什么意思呢?
能给讲讲吗?
robinking
驱动牛犊
驱动牛犊
  • 注册日期2005-08-27
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望15点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2008-04-11 14:25
哦,是让调用者仍然看到的是明文,
不好意思~我理解能力很差~
shyandsy
驱动牛犊
驱动牛犊
  • 注册日期2007-12-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分447分
  • 威望183点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2008-04-14 14:17
   恢复内存的明文 RtlCopyMemory(SysDataBuf,SysDataBufFirst, ulWriteLen);.

  需要么  驱动程序收到IRP的数据,然后申请一块内存(使用完就销毁),
将IRP数据复制出来加密,然后再放到IRP里

 为什么要恢复内存明文呢 秘文跟着IRP走了阿?
 这与“调用者仍然看到的是明文”有什么关系呢?
选择喜欢做的事,就要努力去做!
游客

返回顶部