赞助商链接

本文“专家和您一同谈谈java加壳的问题[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在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框架.

以上是“专家和您一同谈谈java加壳的问题[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

java 代码加壳,专家和您一同谈谈java加壳的问题[Java编程]相关推荐

  1. jsp文件里java代码的作用_如何使用JSP 2避免JSP文件中的Java代码?

    小编典典 自从2001年标签库(例如JSTL)和EL(表达语言,那些东西)的诞生以来,在JSP中确实不建议使用scriptlet(那些东西).${} scriptlet的主要缺点是: 可重用性:您无法 ...

  2. java代码如何与界面联系在一起_如何在Visual Studio Code 中编写Java代码

    本文将展示如何在Visual Studio Code中用Java编写和运行一个简单的Hello World程序. 首先您必须在本地开发环境中安装Java SE开发工具包(JDK) Visual Stu ...

  3. jsp中java代码无效_来杯咖啡,教你如何优雅的在java中统计代码块耗时

    推荐阅读: Sping源码+Redis+Nginx+MySQL等七篇实战技术文档,阿里大佬推荐 阿里内部:2020年全技术栈文档+PPT分享,(万粉总结,回馈粉丝) 在我们的实际开发中,多多少少会遇到 ...

  4. java执行sql列名无效_列名无效!java代码里的SQL语句!数据库里可以得到正确为什么放java里出错了?...

    在数据库里执行下面的SQL语句可得到正确结果,放在java代码里错误了!Stringsql="SELECTtradeId,t.cardNo,tradeType,tradeAmount,tar ...

  5. java 代码重用需要注意的事项_程序员笔记|编写高性能的Java代码需要注意的4个问题...

    一.并发 无法创建新的本机线程...... 问题1:Java的中创建一个线程消耗多少内存? 每个线程有独自的栈内存,共享堆内存 问题2:一台机器可以创建多少线程? CPU,内存,操作系统,JVM,应用 ...

  6. 成绩查询系统源java代码_基于jsp的成绩查询系统-JavaEE实现成绩查询系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的成绩查询系统, 该项目可用各类java课程设计大作业中, 成绩查询系统的系统架构分为前后台两部分, 最终实现在线上 ...

  7. 运动会成绩管理java代码_基于jsp的运动会成绩管理-JavaEE实现运动会成绩管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的运动会成绩管理, 该项目可用各类java课程设计大作业中, 运动会成绩管理的系统架构分为前后台两部分, 最终实现在 ...

  8. 电子招投标java代码_基于jsp的招投标业务管理-JavaEE实现招投标业务管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的招投标业务管理, 该项目可用各类java课程设计大作业中, 招投标业务管理的系统架构分为前后台两部分, 最终实现在 ...

  9. Java代码清除Word文档的批注和修订 (Aspose.Words) Java老铁们,亲测有效!

    项目里面要求Word文档接受修订,并要去掉批注,常见的工具库有POI和JXL,但有些功能不太强大,用起来也啰嗦,这里用Aspose.Words这个类库来实现一下. 文档链接 在这里 : https:/ ...

  10. java代码开发类似知网导出_知网语义相似度计算java实现 - 源码下载|其它|中文信息处理|源代码 - 源码中国...

    压缩包 : WordSimilarity.zip 列表 WordSimilarity/ WordSimilarity/.checkstyle WordSimilarity/.classpath Wor ...

最新文章

  1. mysql之修改表引擎
  2. 不懂Redis Cluster原理,我被同事diss了!
  3. 领域驱动系列:三种领域逻辑组织模式的本质
  4. 阿里 10 年:一个普通技术人的成长之路
  5. 7-26 Windows消息队列 (25 分)(详解+思路+超时解决)
  6. [css] 怎么给手持设备添加特殊样式?
  7. ASP.net控件开发系列之(一、二)
  8. primal and dual linear problem
  9. 什么是开源(Open Source)?
  10. vs中能编译通过,但是会有红色下划线提示未定义标示符问题
  11. mac编写python_刚到手Mac写Python的一个简单问题
  12. 各种PLC和触摸屏解密软件大全
  13. Java国密算法加密
  14. 舒尔特方格html5源码,舒尔特方格(5×5)
  15. php word 简历模板,php程序员简历模板
  16. 综合布线系统计算机辅助设计nVisual
  17. java jzip_JAVA UI 实现ZIP的压缩与解压缩
  18. 你不知道的JS 沙箱隔离
  19. 微信小程序入门教程之四:API 使用
  20. 阅读赵炯的《Linux内核完全注释》之前必须知道的!

热门文章

  1. linux获取cpu使用率,linux获取cpu使用率
  2. 湖南软件计算机单招较好学校,长沙岳麓区计算机IT单招学校排行榜
  3. Uva - 1589 - Xiangqi
  4. 计算机的单位换算字节,关于计算机的存储字节单位换算和使用
  5. 解决vue项目运行npm run serve报错的问题
  6. mysql client_multi_statements_MySQL中CLIENT_MULTI_STATEMENTS的用法
  7. CentOS支持NTFS格式
  8. Python自动化运维之1、Python入门
  9. 养猫日记之如何获得一只喵
  10. JAVA实现音频采样率转换