yiyi507
驱动牛犊
驱动牛犊
  • 注册日期2008-10-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望313点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
40楼#
发布于:2010-04-25 23:30
回 35楼(ander5115) 的帖子
想请问ander5115是否实现对已有的文件(驱动安装之前已有的)进行加解密?
ander5115
驱动牛犊
驱动牛犊
  • 注册日期2009-12-23
  • 最后登录2012-08-17
  • 粉丝6
  • 关注3
  • 积分76分
  • 威望681点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
41楼#
发布于:2010-04-26 11:42
回 40楼(yiyi507) 的帖子
不好意思,没有,这个需要在应用里面实现,在应用里面扫描硬盘文件,合乎规则的进行加密。
chenhongwu
驱动牛犊
驱动牛犊
  • 注册日期2010-03-17
  • 最后登录2010-06-02
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
42楼#
发布于:2010-04-29 16:59
回 35楼(ander5115) 的帖子
为什么要不断更新呢?只在程序初始化是传入要监控的进程不就行了吗?
crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
43楼#
发布于:2010-05-10 17:00
楼主太厉害了,呵呵,学习一下代码,不懂再来讨论
bilaopao
驱动牛犊
驱动牛犊
  • 注册日期2009-11-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
44楼#
发布于:2010-05-10 22:19
我去掉了用///注释掉的加密代码,但是编译不通过。220多个error。如果能发一份完整的,我不胜感激!
pencil###yeah.net
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
45楼#
发布于:2010-05-10 22:28
回 44楼(bilaopao) 的帖子
呵呵,这个函数所有权不在我,所以不能公开,见谅。
如果是测试使用,建议你可以用一个简单的异或算法进行加解密即可。
作一名真实,诚实,优秀的科技工作者!
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
46楼#
发布于:2010-05-11 00:19
用户被禁言,该主题自动屏蔽!
crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
47楼#
发布于: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呢?

谢谢!
ander5115
驱动牛犊
驱动牛犊
  • 注册日期2009-12-23
  • 最后登录2012-08-17
  • 粉丝6
  • 关注3
  • 积分76分
  • 威望681点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
48楼#
发布于:2010-05-11 11:19
回 42楼(chenhongwu) 的帖子
原因是我还没找到在驱动里面获取进程全名的方法,现在获取进程名的方式为驱动启动是通过查找System的位置初始化偏移量,然后利用这个偏移量来得到进程名,这种方法只能得到最长15位进程名,如果进程名超过15位就只能得到前半部分(前15位)。所以我只能用笨办法,利用应用不断更新进程ID对应的进程名,而驱动里每个地方都可以得到进程ID。如果你有办法能在驱动内得到进程全名,请你告诉我,谢谢。
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
49楼#
发布于:2010-05-11 12:51
回 47楼(crazy4stef) 的帖子
这里因为是对文件的读写,所以先得到文件系统的设备对象,然后发请求给对应的文件系统。
作一名真实,诚实,优秀的科技工作者!
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
50楼#
发布于: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分
  • 社区居民
51楼#
发布于:2010-05-11 12:59
或者直接google也可以找到:)
作一名真实,诚实,优秀的科技工作者!
crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
52楼#
发布于:2010-05-11 14:03
谢谢楼主,原来是你哦,我都加过你qq的,看你的签名才想起来是你,你真的很厉害,有问题还来请教你
crazy4stef
驱动牛犊
驱动牛犊
  • 注册日期2008-08-24
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望425点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
53楼#
发布于: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分
54楼#
发布于: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中要更新文件名啊?
bilaopao
驱动牛犊
驱动牛犊
  • 注册日期2009-11-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
55楼#
发布于: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 );


xxagri
驱动牛犊
驱动牛犊
  • 注册日期2009-07-13
  • 最后登录2010-06-30
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望91点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
56楼#
发布于:2010-05-11 17:51
很不错,顶起
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
57楼#
发布于:2010-05-11 23:27
回 54楼(crazy4stef) 的帖子
1. 对于ppt来说,点save按钮进行保存和点close进行保存效果是不一样的。点save只会将修改的一部分数据写入磁盘,点close保存则是将整个文件重新写到磁盘一遍。
2. postset更新文件名只是习惯。
作一名真实,诚实,优秀的科技工作者!
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
58楼#
发布于:2010-05-11 23:28
回 55楼(bilaopao) 的帖子
有可能,我也偶尔遇到过这个问题。你的机器上有没有装杀软?
作一名真实,诚实,优秀的科技工作者!
bilaopao
驱动牛犊
驱动牛犊
  • 注册日期2009-11-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
59楼#
发布于:2010-05-12 09:17
回 58楼(shenhui) 的帖子
干净的xp虚拟机
游客

返回顶部