社区
非技术区
帖子详情
关于JAVA的*.CLASS文件可反编译的思索!!
heton
2001-07-20 09:49:31
JAVA的*.CLASS文件能通过各种工具反编译,且反编译的效果很好,几乎根源代码一样,这是JAVA的一个阴影吗?我对JAVA认识颇浅,请高人指点迷津!
...全文
211
8
打赏
收藏
关于JAVA的*.CLASS文件可反编译的思索!!
JAVA的*.CLASS文件能通过各种工具反编译,且反编译的效果很好,几乎根源代码一样,这是JAVA的一个阴影吗?我对JAVA认识颇浅,请高人指点迷津!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
seasun2k
2001-07-20
打赏
举报
回复
同意alou()
alou
2001-07-20
打赏
举报
回复
呵呵,最好的办法是自己跑得更快一些,让对手在你的后面吃土!
keiga
2001-07-20
打赏
举报
回复
当然你还可以编译成针对于不同机型的机器码
keiga
2001-07-20
打赏
举报
回复
我认为,java源程序编译后可提高执行效率,至于保密,不让人得到你的.class文件就可以了
iloveyouonlyonce
2001-07-20
打赏
举报
回复
针锋相对的代码模糊处理
代码模糊处理字面上的意思就是模糊处理您代码的行为。Java 模糊处理器用不易察觉的方法改变程序,以致于它的运行对 JVM 来说是一模一样的,但它使得试图理解程序的人更加迷惑了。
让我们看一下当反汇编器遇到经过模糊处理后的代码会发生什么情况。清单 6 显示了 Mocha 在尝试反汇编被一种名为 jmangle 的工具模糊处理的 Java 代码后的结果。请注意以下的一小段程序和我们在前面清单中使用的是相同的,尽管乍一看,您肯定不会这么认为。
清单 6. 经过 jmangle 模糊处理的代码
public Foo()
{
jm2 = 10;
int i = jm0();
System.out.println("foo constructor");
jm1(i);
}
象 jmangle 这样的模糊处理器把许多变量名和方法名(有时甚至是类名和包的名称)转换成没有意义的字符串。这样就使得人们难以阅读程序,但对于 JVM 来说,其在本质上和原来的程序是一样的。
一种常用的模糊处理代码的方法是用一个非法的字符串来替代类文件中的标记,这比使用没有意义的字符串更进了一步。替代的有可能是一个关键字,例如 private,或者甚至是象 *** 这样没有意义的标记。一些虚拟机 -- 尤其在浏览器中 -- 对这些古怪的用法不会作出合法的反应。从技术上说,一个象 = 这样的变量与 Java 的规范是相反的;一些虚拟机可以忽略它,而另一些不可以这样。
还可以通过模糊处理放置代码炸弹~~
yatwql
2001-07-20
打赏
举报
回复
可以通过代码混稽器来保密
gzproger
2001-07-20
打赏
举报
回复
混淆有时不起作用,比如你做个30天试用版,再怎么混淆,人家反编译一把,找个IDE跟踪一下,再重新编译一把,就破解了。
situju
2001-07-20
打赏
举报
回复
编译成exe文件
使用自动注入时,属性为空的解决方案
在Spring框架中,自动注入(Autowiring)是一个强大的功能,它允许开发者通过自动检测机制来装配bean之间的依赖关系,从而简化了手动配置的工作量。然而,在使用自动注入时,有时会遇到属性为空(即未正确注入)的情况。
Spring 子类注入
1,准备 一个父类接口,三个子类接口,一个子类的子类接口 public interface FatherInterface {} public
class
InterfaceOne implements FatherInterface{} public
class
InterfaceThree implements FatherInterface{} public
class
I...
子类注入父类属性
方法一 通过 super.setBaseDao方法设置父类私有变量 父类 public
class
BaseServiceImpl { private BaseDao baseDao; public BaseDao getBaseDao() { return baseDao; } public void setBaseDao(BaseDao baseDao) { this.baseDao = baseDao; } publ
spring使用注解通过子类注入父类的私有变量
方法一 通过super.setBaseDao方法设置父类私有变量 父类 public
class
BaseServiceImpl { private BaseDao baseDao; public BaseDao getBaseDao() { return baseDao; } public void setBaseDao(BaseDao b...
自己实现的Spring父类注入
自己实现的Spring父类注入 在开发过程如果使用全注解方式,难免会遇到一个类继承至某个父类,而这个父类的属性需要注入。 如果使用XML可以直接在XML配置
文件
中使用属性setter进行注入父类属性。 但是如果使用的是全注解,这个问题会比较棘手。 方法1: 自己在工程项目中写一个类继承至该父类A,而不要直接继承该父类A。原因是
非技术区
23,404
社区成员
70,506
社区内容
发帖
与我相关
我的任务
非技术区
Java 非技术区
复制链接
扫一扫
分享
社区描述
Java 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章