drinkant(喝酒的蚂蚁) 的方法有道理啊,对文件进行加密!

解决方案 »

  1.   

    谢谢大家关注。
    呵呵,刚才偶然窥到一点端倪。说是用securityManager和classLoader来控制。
    等一会试验了,再来交流。
      

  2.   

    to 班长 & 蚂蚁:
       无法知道对那些文件加密,无法预测第三方code会做对那些文件,端口,进行操作。
      

  3.   


    如果第三方只能通过你提供的接口操作文件之流的,也许你可以做到你要的效果
    可是如果第三方能直接通过jdk来操作,那么你一定做不到
    你能改security文件,第三方就不能改?
    你能改某个classloader,老子就重新装个jdk,你能把偶怎么样?呵呵,你根本不明白你自己处在什么样的位置上
      

  4.   

    初步试验成功
    1。自定义一个ClassLoader去加载第三方的class,我是extends了URLClassLoader
    2。extends了SecurityManager,overide了checkPermission方法,对执行队列的每个类getClassLoader.如果和加载第三方的classLoader相等。进行对应的异常处理不过还不完善,希望有更好的方法。希望更激烈的讨论
    对了还一个问题没答案,就是怎么能让一个无意义的路径加载到想读取文件的前面。我觉得这样的好处是我不用抛出异常来中断我得应用。
      

  5.   

    to drinkant:
       肯定是按照我得API来写和服务器端的接口。好接受服务器端的管理。
    你倒是提醒我了,去测试客户程序加载securityManager的情况,刚才试验了。后加载的sManager除非 RuntimePermission("setSecurityManager")打开,否则不可以被替换。
      

  6.   

    误会了,不是我要操作文件,而是不让加载的第三方程序touch我本机上的file