大家一起谈谈java加壳的事情
来源:互联网 发布:mac pro flash player 编辑:程序博客网 时间:2024/06/06 03:52
java可以加壳吗?以前我认为这是不可能的,因为动态加载代码这样的内存级别的操作,java无法做到,除非使用JNI(Java Native Interface),调用自己编写的C代码,在C代码中实现动态加载java代码。但是,C如何加载java代码呢?这需要对JVM相当的了解。所以当时的我认为这是不可能的。
然而,最近接触的一些知识告诉我——java也可以加壳!!
1.URLClassLoader。用URLClassLoader可以在java程序的运行期间,再将文件夹或者jar加入到classpath中,这个特性事实上就是动态加载。既然可以动态加载class的文件夹或者jar,为何不可以加载加密后的classes呢,将classes用自己的方式加密,在URLClassLoader调用时,使用自己的方式解密。不就是达到了加壳的目的了吗?不过解密的代码放在何处是个问题,就是说解壳器的代码暴露在外,还是很危险的。
2.javassist。这实在是一个非常神奇的新技术,我是在学习Tapestry5时第一次遇到这个包的,他可以动态创建java字节码,甚至可以修改你已经写好的函数,比如你的getter和setter,只是简单的读取和赋值,你可以在Runtime用他修改你的getter和setter,让你的getter和setter每次调用时都可以触发某些代码。借助这项神奇的技术,一定可以实现更强大的动态加载,加壳也就有了可能。
让我有些不爽的是,javassist又是小日本创建的项目。
http://www.open-open.com/open54954.htm
Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京技术学院的数学和计算机科学 系的 Shigeru Chiba 所创建的。
- 大家一起谈谈java加壳的事情
- 专家和您一起谈谈java加壳的问题
- 赚积分的好友快加我,大家一起赚!!!!
- 谈谈英语的事情
- Java 大家一起看看继承创建的适配器类。
- 谈谈内存池 (欢迎大家一起讨论,欢迎拍砖)
- 谈谈程序员创业的一些事情
- 来谈谈SEO能做的事情
- 大家佩服的人做的事情
- 希望能和大家一起学习Java
- 大家好,告诉大家一件十分有意思的事情
- 大家来谈谈分页显示的看法
- 几道小小的题目一起和大家更进一步的了解 Java(1)
- 几道小小的题目一起和大家更进一步的了解 Java (2)
- 黑马程序员_学习java的过程,网上看的,大家一起学习
- 一个工作三年左右的Java程序员跟大家谈谈从业心得
- 一个工作三年左右的Java程序员跟大家谈谈从业心得
- 几道小小的题目一起和大家更进一步地了解Java (3)
- memset
- css实现背景图拉伸(css背景拉伸,有图例)
- uboot在2440上移植(转的 相广超老师的)
- setTimeout延时0毫秒的作用
- map容器特点
- 大家一起谈谈java加壳的事情
- web.config/app.config敏感数据加/解密的二种方法
- java.net.BindException: Permission denied
- C语言 side effect 和 sequence point
- OpenSessionInView会不会影响性能?
- 超音速启动部分技术解析
- main函数执行完毕,能否再执行一段代码
- 我的机试经历之一(华为)
- #define 与 const