aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
阅读:1318回复:7

文件加密中有一部分数据竟然没有被加密。 顺便放分

楼主#
更多 发布于:2004-12-17 15:00
我在IRP_MJ_WRITE中完成文件加密。
只要条件满足IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO,我就进行加密。

但是我发现有一文件数据中,有一段数据没有加密。没有加密的数据的地址为0x2A0000~0x2CFFFF。好奇怪!!!

我有查看其他文件,好像没出问题。

这种情况是绝对不应许出现的。
会不会是我的判断条件出错了?

//================
今天我发现我的“可用给分范围”变大了。可能是我把分转换了一下。特放100分,用来感谢曾经帮助过我的网友。


[编辑 -  12/17/04 by  aasa2]

最新喜欢:

ljmmaryljmmar...
技术交流:aasa2@21cn.com QQ群:10863699
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-17 16:14
你是怎么知道的这块数据没加密呢
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-17 16:22
我的数据很简单,全文只有 1,(像这样“11111111111111111111111111111................”).
文件大小 有300k.

加密函数也很简单,就是对 每个字节 简单的加1。所以结果应该是“2222222222222222222222222222222222222222.....”。

解密就是减1。
技术交流:aasa2@21cn.com QQ群:10863699
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-17 16:49
我碰到过这种问题,就是加密不完全,解密的时候最后老是乱码,其实那个乱码就是没有加密的内容。
建议你在写文件之后清一下缓存。
在交流中学习。。。
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-17 17:40
你处理的有些不对!
你是用的FILEMon改的把!
我以前也遇到类似的!
你要把System的放开!
我不仅要金子,我还要点石成金的手指!
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-20 09:51
TO:fsfile
我的内存已经释放了。

TO:trent
"把System的放开!"是什么意思?
我有点不懂!是不是对于system的进程,irp_mj_write不处理?
技术交流:aasa2@21cn.com QQ群:10863699
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-20 10:50
首先得有CcFlushCache将缓存写回硬盘,然后用CcPurgeCacheSection将缓存清掉。你是这样做的吗?
在交流中学习。。。
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-22 08:17

首先,谢谢各位。

我查了一下,CcFlushCache好像在ntoskrnl.lib中。
我的ntoskrnl.lib在我的
C:\NTDDK\lib
C:\NTDDK\lib\i386
C:\NTDDK\lib\i386\free
文件夹下都有。(我拷贝过的,呵呵)
所以我这样定义:TARGETLIBS=$(DDK_LIB_PATH )\ntoskrnl.lib。
但是系统还是说我没有定义CcFlushCache()。
郁闷!

由于这个问题我已经在“Kernel Mode discussion and Soft Driver”问了一下,如果各位知道的话,请回这个贴子,
我先把分给大家。
http://www.driverdevelop.com/forum/viewthread.php?tid=83326
技术交流:aasa2@21cn.com QQ群:10863699
游客

返回顶部