JVM之字节码——字节码增强应用(四)


 source:http://blog.chinaunix.net/uid-21718047-id-3340423.html

标签:   应用  分类:  JVM


4、扩展内容

      当然,除了前面的内容,通过字节码的操作,还可以完成很多功能。前面没有提到的有:

          1)Java代码反编译
               class文件的格式很大程度上都体现了Java代码的结构。通过class文件可以很快地反推出部分Java代码,不过对于指令码的处理就需要另当别论了,现在比较开源的一些反编译工具主要有JD,Dava,SourceAgain等。

          2)Java代码混淆器
               代码是程序员智慧的结晶,怎么能这么轻易就被人窃取呢?有工具可以反编译,当然也有工具来防止反编译了,这就是代码混淆器。代码混淆器也是基于class文件来实现的。它的主要原理是破坏class文件中保存的Java代码的信息,使得反编译器无法反编译出代码。主要的手段有:重命名变量和方法,拆分或者合并class文件,使用Java代码里不可能出现的标识符等等。详细内容可以参考这篇论文http://www.sable.mcgill.ca/publications/techreports/sable-tr-2006-5.pdf

          3)生成代码的时序图
               在阅读一些开源的项目代码时,对于一些地方我们需要画出时序图来了解具体的细节,但是很多时候,方法之间的调用关系往往会很很复杂,手动绘制比较耗费时间和精力。在这里,我们就可以通过在代码中插入一些内容来实现对方法调用的追踪,然后通过插入的代码统计到的信息来绘制出程序执行的时序图。具体细节这里也不讨论了,详细内容参考http://blog.crazybob.org/2005/10/generating-sequence-diagrams-using.html

博客推荐文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值