读书人

怎么禁止别的程序读取小弟我的文件

发布时间: 2012-03-13 11:21:12 作者: rapoo

如何禁止别的程序读取我的文件
自己程序里的一些文件,不想别的程序读取,这个怎么做?

是不是要写驱动?

不用权限那种方式。

[解决办法]
文件加密、或放入数据库中。
[解决办法]
定义自己的格式,或者把你的文件头部修改一下(要记得如何改回去),这样他就打不开了
[解决办法]
加密吧
[解决办法]

探讨
引用:

定义自己的格式,或者把你的文件头部修改一下(要记得如何改回去),这样他就打不开了


我要别人用api访问不了,比如readfile之类或更底层的api。

[解决办法]
只要你还是文件,他就怎么都能打开,

至于打开了 能不能用那是另外一回事.




[解决办法]
我要别人用api访问不了,比如readfile之类或更底层的api?

这能实现吗? 最多别能不解读也不你的文件 也就是加密

或者 操作系统本身提供的 隐藏文件 用户文件访问权限之类的
[解决办法]
探讨

引用:

定义自己的格式,或者把你的文件头部修改一下(要记得如何改回去),这样他就打不开了


我要别人用api访问不了,比如readfile之类或更底层的api。

[解决办法]
打不开,代价太大
打开无法识别,简单多了——关键是有效!
[解决办法]
那就不要把你的文件给别人,随身带好了,你API HOOK掉了,别人把硬盘拆走挂到其它系统上也是有可能打开的,你加密也可能有高手破解的,
搞个自定义的格式保存一下应当就可以了吧,安全总是相对的
[解决办法]
LZ用80分问了一个800分的问题,确实代价太大,除非你直接操作未分区硬盘来存储数据,我以前在delphibbs上看到有牛人做过,但是确实没看懂
另外替代解决方案倒是有几个,不过各有漏洞

1 使用文件加密

2 使用独占打开,也就是你的程序运行时即打开该文件
Of_Share_Deny_Read or
Of_Share_Deny_Write or
Of_Share_Exclusive or

3 阿拉丁的加密锁提供这种功能,即对某一类文件加密,使加密锁才能打开该文件

[解决办法]
来关注下
[解决办法]
探讨
引用:
LZ用80分问了一个800分的问题,确实代价太大,除非你直接操作未分区硬盘来存储数据,我以前在delphibbs上看到有牛人做过,但是确实没看懂
另外替代解决方案倒是有几个,不过各有漏洞
1 使用文件加密
2 使用独占打开,也就是你的程序运行时即打开该文件
Of_Share_Deny_Read or
Of_Share_Deny_Wri……

[解决办法]
CreateFile以独占方式打开
[解决办法]
独占方式打开
这个方法应该可行
[解决办法]
win7 倒是有个 bitlock 这个应该是跟操作系统有关吧
[解决办法]
探讨
自己程序里的一些文件,不想别的程序读取,这个怎么做?

是不是要写驱动?

不用权限那种方式。

[解决办法]
最简单的方法就是独占打开
猥琐一点就duplicatehandle把这个进程映射到系统进程里面,无法结束进程,无法操作
[解决办法]
dll 注入倒是可以实现,就是把自己的dll注入例如elplore之类的系统进程里,既不能被结束,也不能打开他独占的文件
[解决办法]
duplicatehandle这个API你查一下就知道了
用这个函数把你的句柄映射到其他的进程当中,这样就相当于是独占方式了,如果映射到系统进程,比如smss那些进程里面,其他的程序是没法直接读取的
[解决办法]
不懂楼主想要什么,可以再具体点,例如使用场景,你这样的需求所担心的问题是什么。

若是要挡住别的程序使用api来访问你的文件,是做不到的。 因为你的程序用API来访问,别的程序就可以用同样的API来访问,你自己的程序优先级并不比别人高。

若是你想保护你的文件中的内容不被别人看懂,则可以用对文件加密的方式来进行,或是使用hook API的方式来挡住别人的访问。 例如windows 加密过的rar压缩文件,它并不能阻挡别人对rar文件的访问,但是通过加密的方式,别人就看不到里面的内容了。 同样的可以保护文件。




[解决办法]
这个..真很难.
在xp/2003/win7 32位的程序,即使以独占打开的程序,都可以通过CreateFile 传递FILE_READ_ATTRIBUTES打开,然后再DeviceIoControl,FSCTL_GET_RETRIEVAL_POINTERS查询所在扇区,直接读取磁盘对应的扇区把文件down出来.
在win7 64位下,独占的话如果在普通的用户进程,直接openprocess,duplicatehandle 把句柄dump到自己进程然后用,也可以.如果是系统进程,那就直接解析ntfs文件格式,依然可以dump文件.
这些还是不在内核里面做,如果上驱动,那更简单了,枚举句柄表,找目标句柄拿来直接用.
上面提到的hook api前提是你要hook所有进程里面的api,包括以后创建的进程的,如果别人把你钩子取了也就没用了.

so...lz还是从加密的角度来考虑吧,不要想着让别人没法读取文件.
当然上面提到的ntfs文件加密也应该是不错的.

[解决办法]
加密吧
[解决办法]
最好的办法就是用算法加密
[解决办法]
如果是你写的程序放到服务器上的,建议你在程序中加入看门狗。
[解决办法]
把写在文件中得内容加密,自己通过api读出来再解密。
[解决办法]
1.把数据放在别人读不到的地方,不过你也要读呀。
把数据放在分区之外,别人难读到,windows也读不到,你怎么读。
2.加密后再保存,使用时解密。
ntfs硬盘数据是可以加密的,windows帮你加解密。
软件狗,软件狗帮你加解密。
3.控制别人的读取。
你能吗?钩子。独占打开。

限制是相对的,个人认为加密后再保存,使用时解密简单可靠些。



[解决办法]
文件加密享用独占方式
[解决办法]

探讨
引用:
呵呵,你真是太坏了呀
这个呀,我也做过的
给你一个思路:
你可以在DLL中设置两个参数
这两个参数,你可以选中其中一个参数作为“判断”,传递是“指定参数”,就继续引用DLL
否则就直接退出


不知道是我没懂你的意思还是你没懂我的意思。

读书人网 >.NET

热点推荐