阅读:1319回复:7
文件加密中有一部分数据竟然没有被加密。 顺便放分
我在IRP_MJ_WRITE中完成文件加密。
只要条件满足IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO,我就进行加密。 但是我发现有一文件数据中,有一段数据没有加密。没有加密的数据的地址为0x2A0000~0x2CFFFF。好奇怪!!! 我有查看其他文件,好像没出问题。 这种情况是绝对不应许出现的。 会不会是我的判断条件出错了? //================ 今天我发现我的“可用给分范围”变大了。可能是我把分转换了一下。特放100分,用来感谢曾经帮助过我的网友。 [编辑 - 12/17/04 by aasa2] |
|
最新喜欢:![]()
|
沙发#
发布于:2004-12-17 16:14
你是怎么知道的这块数据没加密呢
|
|
|
板凳#
发布于:2004-12-17 16:22
我的数据很简单,全文只有 1,(像这样“11111111111111111111111111111................”).
文件大小 有300k. 加密函数也很简单,就是对 每个字节 简单的加1。所以结果应该是“2222222222222222222222222222222222222222.....”。 解密就是减1。 |
|
|
地板#
发布于:2004-12-17 16:49
我碰到过这种问题,就是加密不完全,解密的时候最后老是乱码,其实那个乱码就是没有加密的内容。
建议你在写文件之后清一下缓存。 |
|
|
地下室#
发布于:2004-12-17 17:40
你处理的有些不对!
你是用的FILEMon改的把! 我以前也遇到类似的! 你要把System的放开! |
|
|
5楼#
发布于:2004-12-20 09:51
TO:fsfile
我的内存已经释放了。 TO:trent "把System的放开!"是什么意思? 我有点不懂!是不是对于system的进程,irp_mj_write不处理? |
|
|
6楼#
发布于:2004-12-20 10:50
首先得有CcFlushCache将缓存写回硬盘,然后用CcPurgeCacheSection将缓存清掉。你是这样做的吗?
|
|
|
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 |
|
|