专家和您一起谈谈java加壳的问题

2007-03-23     推荐:103895201    收藏:67226235    评论:37     来源:e800开发者频道

  在C世界,对代码进行加密,主要通过加壳的方式。所谓加壳,就是先将程序代码加密,然后用特定的程序加载器,将代码解密后加载进内存,这样可以在防止代码的反编译,当然,有加壳工具,也有解壳工具,虽然不能100%防止crack,但仍然给代码增加一层有力的保护。

  然而在java世界,保护代码是件很困难的事情,因为class文件非常规范,极易反编译,且反编译后的代码清晰可读。常见的保护办法是使用混淆器,打乱class和function以及变量的名字,可以干扰反编译后的代码的可读性。虽然简单提高了代码的安全性,但还仅仅相当于未加壳的C程序。

  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 所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。


您可以针对本文进行:[评论]  [收藏]  [推荐]   [查看原文链接]  
  • [37楼] 2008-05-13 08:50:16.0  xinghuo12
  • [回复]

  • <a href="http://www.bzjx.net/pro11.asp">喷码机</a>
    <a href="http://www.tmdy.net/cp3-2.asp">喷码机</a>
    <a href="http://www.cnbz.cn/Product.asp?BigClassID=32">喷码机</a>
    <a href="http://www.cnbz.cn/Product.asp?BigClassID=18">灌装机</a>
    <a href="http://www.bzjx.net/pro10.asp">收缩机</a>
    <a href="http://www.cnbz.cn/Product.asp?BigClassID=33">枕式包装机</a>
    <a href="http://www.bzjx.net/pro4.asp">打包机</a>
  • [36楼] 2008-05-13 08:49:49.0  xinghuo12
  • [回复]
  • [url=http://www.bzjx.net/pro11.asp]喷码机[/url]
    [url=http://www.tmdy.net/cp3-2.asp]喷码机[/url]
    [url=http://www.cnbz.cn/Product.asp?BigClassID=32]喷码机[/url]
    [url=http://www.cnbz.cn/Product.asp?BigClassID=18]灌装机[/url]
    [url=http://www.bzjx.net/pro10.asp]收缩机[/url]
    [url=http://www.cnbz.cn/Product.asp?BigClassID=33]枕式包装机[/url]
    [url=http://www.bzjx.net/pro4.asp]打包机[/url]
  • [35楼] 2008-04-19 09:20:30.0  网友
  • [回复]
  • <a href="http://www.bzjx.net/pro11.asp">喷码机</a>
    <a href="http://www.tmdy.net/cp3-2.asp">河南喷码机</a>
    <a href="http://www.cnbz.cn/Product.asp?BigClassID=32">郑州喷码机</a>
    <a href="http://www.cnbz.cn/Product.asp?BigClassID=19">打包机</a>
    <a href="http://www.bzjx.net/pro4.asp">自动打包机</a>
    <a href="http://www.bzjx.net/pro4.asp">半自动打包机</a> 
  • [34楼] 2008-04-19 09:20:13.0  网友
  • [回复]
  • [url=http://www.bzjx.net/pro11.asp]喷码机[/url]
    [url=http://www.tmdy.net/cp3-2.asp]河南喷码机[/url]
    [url=http://www.cnbz.cn/Product.asp?BigClassID=32]郑州喷码机[/url]
    [url=http://www.cnbz.cn/Product.asp?BigClassID=19]打包机[/url]
    [url=http://www.bzjx.net/pro4.asp]自动打包机[/url]
    [url=http://www.bzjx.net/pro4.asp]半自动打包机[/url]
  • [33楼] 2008-03-20 16:18:56.0  网友
  • [回复]
  • One isn't necessarily born with courage, but one is born with potential.
    Without courage, we cannot practice any other virtue with consistency.
    <a href='http://adipexadipexonl.blog.ijijiji.com'>side effects of adipex</a>
    http://adipexadipexonl.blog.ijijiji.com
  • [32楼] 2008-03-20 16:18:22.0  网友
  • [回复]
  • This webpage loads very fast
    What hosting provider do you use?
    <a href='http://adipexadipexonl.blog.ijijiji.com'>low cost adipex</a>
    http://adipexadipexonl.blog.ijijiji.com
  • [31楼] 2007-08-25 15:39:19.0  网友
  • [回复]
  •  axfnqvcg http://zdcemhcj.com ysjckvoh teizxywd  [URL=http://pbmnxgvk.com]qddrlnhz[/URL]  <a href="http://moozcbph.com">rqodwgsl</a> 
  • [30楼] 2007-06-19 10:36:12.0  网友
  • [回复]
  • [URL=http://www.1ust.info/angelica-bella] angelica bella [/URL]   <a href='http://www.1ust.info/angelica-bella'> angelica bella </a> [URL=http://www.1ust.info/video-sex] video sex [/URL]   <a href='http://www.1ust.info/video-sex'> video sex </a> 
  • [29楼] 2007-06-17 15:06:26.0  网友
  • [回复]
  • [URL=http://www.lebend16.org/1-formula] 1 formula [/URL]   <a href='http://www.lebend16.org/1-formula'> 1 formula </a> [URL=http://www.lebend16.org/preview-review] preview review [/URL]   <a href='http://www.lebend16.org/preview-review'> preview review </a> 
  • [28楼] 2007-06-17 09:51:11.0  网友
  • [回复]
  • [URL=http://www.lebend16.org/sesso-gratuito] sesso gratuito [/URL]   <a href='http://www.lebend16.org/sesso-gratuito'> sesso gratuito </a> [URL=http://www.lebend16.org/window-media-player] window media player [/URL]   <a href='http://www.lebend16.org/window-media-player'> window media player </a> 
  • 共有37条评论  点击查看更多评论
  • 网友评论仅供网友表达个人看法,并不表明e800同意其观点或证实其描述
我想发表评论:
用户名密码
  • 匿名发表
    验证码: