首页
社区
课程
招聘
[求助]不通过文件过滤驱动程序 如何实现让一个A.exe 程序在运行时候不被剪切到其他系统位置? 大侠们给个意见
发表于: 2010-6-25 18:49 6185

[求助]不通过文件过滤驱动程序 如何实现让一个A.exe 程序在运行时候不被剪切到其他系统位置? 大侠们给个意见

2010-6-25 18:49
6185
不通过文件过滤驱动程序 如何实现让一个A.exe 程序在运行时候不被剪切到其他系统位置? 大侠们给个意见
现在的杀毒软件如360安全卫生 具有此功能。 当360safe.exe 运行的时候 用户是不能用剪切(CTRL + X)命令 把360safe.exe 剪切到其他目录中.  这种文件保护功能 我发现只有杀毒软件有这种功能。 一般exe程序都没有这种保护功能。 这种功能是通过文件过滤功能实现的吗, 如何不用驱动有其他的方法实现吗, HOOK  API 能实现吗? 我现在不想用驱动 太麻烦, 因为我的项目里已经用过一种驱动程序了 我怕有冲突, 想通过其他方法实现 大侠们给小弟个建议!!!!!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 284
活跃值: (106)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
2
正在运行的程序本来就剪切不了啊?!这个需要保护吗?汗…………
2010-6-25 20:10
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
同楼上迷惑。。。
2010-6-25 23:53
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
正在运行的程序 在正常情况下是可以随意剪切的
杀毒程序一般会保护自身程序所在目录  所以不能随意改动^-^
2010-6-26 12:47
0
雪    币: 2743
活跃值: (1049)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
今天才发现。。。真的可以剪切啊
2010-6-26 13:29
0
雪    币: 284
活跃值: (106)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
6
我这里怎么不能剪切呢?能剪切有毛用,又不能移动,你剪切后粘贴一下看看就知道了,显示文件正在使用中,当执行剪切操作时,操作系统只是在剪切板里放入这个文件的位置等信息,又不是真的”剪切“去了,成不成功是要看粘贴能否成功……
2010-6-26 13:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我这里怎么不能剪切呢?能剪切有毛用,又不能移动,你剪切后粘贴一下看看就知道了,显示文件正在使用中,当执行剪切操作时,操作系统只是在剪切板里放入这个文件的位置等信息,又不是真的”剪切“去了,成不成功是要看粘贴能否成功……

// 我希望大家认真看看我发的帖子 例如C:\A\B\C.exe 当通过剪切命令 是可以把c.exe 在运行的时候  剪切到  C:\A\C.exe 的目录下 B的目录下不出再有C.exe  我说的是普通的exe文件 但是360 的安全卫生 360 杀毒的exe 是剪切不成功的 当你粘贴的时候会提示移动文件夹出错误   这说明360 再文件保护方面做了处理 一般的exe程序没有处理。 我想知道原因 或者是怎样用代码实现。 请不要用word, txt 等程序实验 这不是我关注的 我要的是exe执行程序 大家 看好了再发言  不要随便发言 耽误大家的时间
2010-6-26 14:28
0
雪    币: 284
活跃值: (106)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
8
测试一下,确实是自己粗心,在同一个卷上是可以剪切的,在不同卷上不能成功……

个人觉得没必要使用驱动来解决:
我给一个C#解决方案,可以参考SDK移植到C++下面,原理很简单,监视剪切板,发现我们要保护的文件名,清空剪切板:C#只需要几小行代码,当然了我坚信,这个操作最终是使用MoveFile(Ex)来实现了,可以拦截到,文件过滤驱动自然也是可以拦截到的,只是大材小用而已……
   if (Clipboard.ContainsFileDropList())
            {
                StringCollection All = Clipboard.GetFileDropList();
                foreach (string str in All)
                {
                    if (str == "要保护文件名字")
                    {
                        Clipboard.Clear();
                    }
                }

            }
2010-6-26 17:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢鹿兄的方法
你说的这种方法需要在程序中启动一个线程一直在检测剪切板的内容 效率应该会很低的 。 本人不才 想不出什么好的方法, 实在不行的话 那只能用驱动来做了。 再次谢谢鹿兄的建议 哈哈
2010-6-26 19:35
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
10
同卷内的剪切 相当于 移动文件
跨卷的剪切 相当于 复制文件
2010-6-26 20:13
0
游客
登录 | 注册 方可回帖
返回
//