bilaopao
驱动牛犊
驱动牛犊
  • 注册日期2009-11-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
80楼#
发布于:2010-05-11 16:53
fat32下运行到
PreCleanup时 蓝屏。
f81882e4 efaadd7b f8188740 00000001 00000000 engine!Cc_ClearFileCache+0xf7 [c:\users\administrator\desktop\encryption_on-the-fly\engine\cache.c @ 50]
f8188344 f83e1888 81e96894 f8188364 f8188394 engine!PreCleanup+0x16b [c:\users\administrator\desktop\encryption_on-the-fly\engine\main.c @ 753]

我自己加了个异或加密
代码如下
在PreWrite中
pch = ExAllocatePoolWithTag(
                                            NonPagedPool,
                                            writeLen,
                                            "pch1"
                                            );
                    RtlCopyMemory( pch,
                    origBuf, // data need to be decrypted
                    writeLen );
                    for(i=0;i<writeLen;i++)
                        pch^=0x07;

在PostRead中:
          length = Data->IoStatus.Information;
                    pch = ExAllocatePoolWithTag(
                                            NonPagedPool,
                                            length,
                                            "pch"
                                            );
                    RtlCopyMemory( pch,
        origBuf, // data need to be decrypted
        length );
                    for(i=0;i<length;i++)
                       pch^=0x07;
                     RtlCopyMemory( origBuf,
        pch, // data need to be decrypted
        Data->IoStatus.Information );


crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
81楼#
发布于:2010-05-11 15:59
// sometimes paging/nocached write request is lauched by read-only file object and only
// write parital data of the file, under this condition, if the file has not been encrypted,
// encryption will lead to corrupt of file

楼主可以帮忙解释一下,这个是什么情况吗

还有就是为什么在PostSetInfo中要更新文件名啊?
crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
82楼#
发布于:2010-05-11 14:24
回 40楼(yiyi507) 的帖子
对已有文件加密不是在改写的时候加密比较好吗?

我觉得一个可行的办法是不是如果有FILE_WRITE_DATA | FILE_APPEND_DATA标记的打开文件,这时候把文件加密一次

这样不知道是否可行?
crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
83楼#
发布于:2010-05-11 14:03
谢谢楼主,原来是你哦,我都加过你qq的,看你的签名才想起来是你,你真的很厉害,有问题还来请教你
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
84楼#
发布于:2010-05-11 12:59
或者直接google也可以找到:)
作一名真实,诚实,优秀的科技工作者!
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
85楼#
发布于:2010-05-11 12:57
回 48楼(ander5115) 的帖子
你可以到OSR上找一下Obtaining A Useful Name for the Executable Image in a Process这篇文章,应该会有很大帮助。
作一名真实,诚实,优秀的科技工作者!
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
86楼#
发布于:2010-05-11 12:51
回 47楼(crazy4stef) 的帖子
这里因为是对文件的读写,所以先得到文件系统的设备对象,然后发请求给对应的文件系统。
作一名真实,诚实,优秀的科技工作者!
ander5115
驱动牛犊
驱动牛犊
  • 注册日期2009-12-23
  • 最后登录2012-08-17
  • 粉丝6
  • 关注3
  • 积分76分
  • 威望681点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
87楼#
发布于:2010-05-11 11:19
回 42楼(chenhongwu) 的帖子
原因是我还没找到在驱动里面获取进程全名的方法,现在获取进程名的方式为驱动启动是通过查找System的位置初始化偏移量,然后利用这个偏移量来得到进程名,这种方法只能得到最长15位进程名,如果进程名超过15位就只能得到前半部分(前15位)。所以我只能用笨办法,利用应用不断更新进程ID对应的进程名,而驱动里每个地方都可以得到进程ID。如果你有办法能在驱动内得到进程全名,请你告诉我,谢谢。
crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
88楼#
发布于:2010-05-11 10:25
pVolumeDevObj = IoGetDeviceAttachmentBaseRef(FileObject->DeviceObject) ;
if (NULL == pVolumeDevObj)
{
    return STATUS_UNSUCCESSFUL ;
}
pFileSysDevObj = pVolumeDevObj->Vpb->DeviceObject ;
pNextDevObj = pFileSysDevObj ;

请问楼主,这里pVolumeDevObj 是什么设备啊?
如果直接发IRP读写文件,为什么不是vpb-》RealDevice呢?

谢谢!
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
89楼#
发布于:2010-05-11 00:19
用户被禁言,该主题自动屏蔽!
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
90楼#
发布于:2010-05-10 22:28
回 44楼(bilaopao) 的帖子
呵呵,这个函数所有权不在我,所以不能公开,见谅。
如果是测试使用,建议你可以用一个简单的异或算法进行加解密即可。
作一名真实,诚实,优秀的科技工作者!
bilaopao
驱动牛犊
驱动牛犊
  • 注册日期2009-11-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
91楼#
发布于:2010-05-10 22:19
我去掉了用///注释掉的加密代码,但是编译不通过。220多个error。如果能发一份完整的,我不胜感激!
pencil###yeah.net
crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
92楼#
发布于:2010-05-10 17:00
楼主太厉害了,呵呵,学习一下代码,不懂再来讨论
chenhongwu
驱动牛犊
驱动牛犊
  • 注册日期2010-03-17
  • 最后登录2010-06-02
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
93楼#
发布于:2010-04-29 16:59
回 35楼(ander5115) 的帖子
为什么要不断更新呢?只在程序初始化是传入要监控的进程不就行了吗?
ander5115
驱动牛犊
驱动牛犊
  • 注册日期2009-12-23
  • 最后登录2012-08-17
  • 粉丝6
  • 关注3
  • 积分76分
  • 威望681点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
94楼#
发布于:2010-04-26 11:42
回 40楼(yiyi507) 的帖子
不好意思,没有,这个需要在应用里面实现,在应用里面扫描硬盘文件,合乎规则的进行加密。
yiyi507
驱动牛犊
驱动牛犊
  • 注册日期2008-10-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望313点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
95楼#
发布于:2010-04-25 23:30
回 35楼(ander5115) 的帖子
想请问ander5115是否实现对已有的文件(驱动安装之前已有的)进行加解密?
jpai2289
驱动牛犊
驱动牛犊
  • 注册日期2008-09-02
  • 最后登录2010-04-25
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望201点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
96楼#
发布于:2010-04-23 17:01
谢分享。。研究中。。。
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
97楼#
发布于:2010-04-22 22:24
回 36楼(yiyi507) 的帖子
这个代码并没有特别区分临时文件还是普通文件,一律平等对待。
作一名真实,诚实,优秀的科技工作者!
liuhui19842003
驱动牛犊
驱动牛犊
  • 注册日期2009-12-30
  • 最后登录2010-11-23
  • 粉丝1
  • 关注1
  • 积分52分
  • 威望481点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
98楼#
发布于:2010-04-22 20:34
回 27楼(yiyi507) 的帖子
可否发一份测试的代码作为参考!谢谢!dongn0905@126.com
yiyi507
驱动牛犊
驱动牛犊
  • 注册日期2008-10-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望313点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
99楼#
发布于:2010-04-22 17:24
回 34楼(shenhui) 的帖子
LS对word,excel是直接写加密,没有对临时文件进行处理吧?只有对PPT进行特殊处理了吧?这样的话确定测试可以通过吗?
游客

返回顶部