Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
阅读:1644回复:15

问个关于加密必须重新启动才能加密的问题,也请zhaock大哥进来拿分

楼主#
更多 发布于:2005-05-25 09:40
我是修改的filemon来做的加密,有个很奇怪的问题,我加密的文件必须在机器重新启动后才能显示出密文来?这个是怎么回事情啊?

如果我直接对
if (Irp->MdlAddress){
SysDataBuf = MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority);
}
else{
SysDataBuf = Irp->UserBuffer;
}
SysDataBuf进行修改的话,显示的是密文(不需要重新启动)。
但是这样的话,解密又一直解不出来。

[编辑 -  5/25/05 by  Hell_Fire_1981]

[编辑 -  5/25/05 by  Hell_Fire_1981]
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-25 11:21
不要对SysDataBuf直接进行修改,这样你的缓存当中也变成密文了。
你的问题应该还是缓存的问题,也就是说实际上磁盘上的文件已经变成密文,可是操作系统一般只有在第一次访问文件的时候才会从磁盘上读取文件内容,而一旦读取出来了,就保存在系统缓存当中。以后再次访问该文件读取的是缓存中的内容,自然就是明文了。
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-25 15:59
那具体应该怎么处理呢???
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-05-25 17:21
我给你发了,很简单,没有调试。你先调试一下,没问题了。再来解决这个问题
gongbin_net
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2005-06-07
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-25 19:20
joshua_yu
说的很对,就是缓存的问题,
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-26 14:37
具体是怎么解决的?
我也遇到这个问题了。

谢谢
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-05-26 18:03
我现在是在IRP_MJ_CLOSE里面加了清内存
CcPurgeCacheSection
来实现的,不过还是存在问题,比如我剪切到别的地方就没有问题,但是用复制的时候,复制出去的文件就是明文的了。
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-05-26 18:15
我也测试了,复制出去的是明文。
我想还是缓存的问题。
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-05-27 08:43
如果你正在打开某个文档,它的内容当然应该还在缓存中的,这个是没有办法的,除非在应用层处理,例如处理禁止剪贴板拷贝,禁止文件另存为的操作等等,单纯利用驱动程序是不行的。
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-05-27 09:49
如果把系统缓存也写成密文会不会有很大的影响??

Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-05-27 12:11
把系统缓存写成密文,我也试过了,但是有个问题就是,我解密的时候始终是密文,也就是不能解密。
to:joshua_yu
我是在关闭的时候拷贝的,但是出去的还是明文!
而且我在IRP_MJ_CLOSE 加了CcPurgeCacheSection 还是没有用,只有在剪切的时候才可以!
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-05-27 12:28
把系统缓存写成密文,我也试过了,但是有个问题就是,我解密的时候始终是密文,也就是不能解密。
千万不要把缓存也变成明文,这样你的程序怎么编辑内容呢?

to:joshua_yu
我是在关闭的时候拷贝的,但是出去的还是明文!

在过滤器的close例程当中拷贝?如果是这样的话应该还是明文,因为IRP_MJ_CLOSE实际上还没有到达FSD,关闭的动作并没有执行呢。

而且我在IRP_MJ_CLOSE 加了CcPurgeCacheSection 还是没有用,只有在剪切的时候才可以!

我在close里面清除缓存没问题。


[编辑 -  5/27/05 by  joshua_yu]

[编辑 -  5/27/05 by  joshua_yu]
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-05-27 13:47
to:joshua_yu
千万不要把缓存也变成明文,这样你的程序怎么编辑内容呢?

这句话什么意思呢??难道要让缓存里的也是密文????
joshua_yu
驱动小牛
驱动小牛
  • 注册日期2004-12-06
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分428分
  • 威望54点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-05-27 13:53
sorry!说错了,呵呵,应该是密文才对,缓存应该始终保持为明文。
Hell_Fire_1981
驱动牛犊
驱动牛犊
  • 注册日期2005-03-27
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分532分
  • 威望60点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-05-27 13:58
呵呵,可是我是在关闭文件后,进行拷贝的。可是出去的还是明文,我用剪切的时候出去的就是密文,这个是怎么回事啊???
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-05-27 15:16
我看我和你的问题差不多,真的是很奇怪的。
我在监视的目录下新建文件,没有问题是密文的。我拖一个文件进去,就是明文的,这个我觉得是因为拖进去的时候可能只修改了文件系统的一些指针,并没有把DISK上的内容复制,不知道对不对?

另外,刷新缓存。我如果解密的功能不开,那么我新建一个文件,关闭再打开就已经是密文了,说明已经刷新。如果我解密功能开了,我新建立一个文件,并把他COPY出来,结果还是明文???

真是晕。
游客

返回顶部