导航:首页 > 编程语言 > Java反编译防止

Java反编译防止

发布时间:2023-01-27 11:37:30

Ⅰ 如何防止java程序源代码被反编译

我们都知道JAVA是一种解析型语言,这就决定JAVA文件编译后不是机器码,而是一个字节码文件,也就是CLASS文件。而这样的文件是存在规律的,经过反编译工具是可以还原回来的。例如Decafe、FrontEnd,YingJAD和Jode等等软件。下面是《Nokia中Short数组转换算法
类中Main函数的ByteCode:0 ldc #162 invokestatic #185 astore_16 return其源代码是:short [] pixels = parseImage("/ef1s.png");
我们通过反编译工具是可以还原出以上源代码的。而通过简单的分析,我们也能自己写出源代码的。
第一行:ldc #16
ldc为虚拟机的指令,作用是:压入常量池的项,形式如下ldc index这个index就是上面的16,也就是在常量池中的有效索引,当我们去看常量池的时候,我们就会找到index为16的值为String_info,里面存了/ef1s.png.
所以这行的意思就是把/ef1s.pn作为一个String存在常量池中,其有效索引为16。
第二行:2 invokestatic #18
invokestatic为虚拟机指令,作用是:调用类(static)方法,形式如下
invokestatic indexbyte1 indexbyte2
其中indexbyte1和indexbyte2必须是在常量池中的有效索引,而是指向的类型必须有Methodref标记,对类名,方法名和方法的描述符的引用。
所以当我们看常量池中索引为18的地方,我们就会得到以下信息:
Class Name : cp_info#1
Name Type : cp_info#19
1 和19都是常量池中的有效索引,值就是右边<中的值,再往下跟踪我就不多说了,有兴趣的朋友可以去JAVA虚拟机规范。
这里我简单介绍一下parseImage(Ljava/lang/String;)[S 的意思。
这就是parseImage这个函数的运行,我们反过来看看parseImage的原型就明白了
short [] parseImage(String)
那么Ljava/lang/String;就是说需要传入一个String对象,而为什么前面要有一个L呢,这是JAVA虚拟机用来表示这是一个Object。如果是基本类型,这里就不需要有L了。然后返回为short的一维数组,也就是对应的[S。是不是很有意思,S对应着Short类型,而“[”对应一维数组,那有些朋友要问了,两维呢,那就“[[”,呵呵,是不是很有意思。
好了,调用了函数,返回的值要保存下来吧。那么就是第三行要做的事情了。

Ⅱ 如何防止java文件被反编译

所谓魔高一尺,道高一丈
这种事是很难做到绝对防止反编译的

Ⅲ class文件能被反编译,java程序不就没有保密性了吗

Java .class 文件是高度抽象的, 因而反编译技术难度不大, 现行也有很多好用的工具. 所以, 不加特别的保护策略的话, 可以说 Jar 包是没有保密性的了.

但是, 一般来说, 代码是有知识产权保护和 Licence 声明的, 所以, 你的竞争对手在反编译你的代码时, 是冒着侵权被诉讼的风险的.

而且, 可以采用保护策略来防止反编译, 比如采用工具来扰乱编译得到的 .class 文件.

Ⅳ 请教:对Java类库jar文件,有什么好的防止反编译办法,最好是加密/解密方案,而不是代码混淆方案。

很久前做过一个项目,用很复杂的算法加密 class文件,然后在虚拟机载入前调用解密程序。用的是 jvmti。这样可以防止class loader被反编译导致加解密算法泄漏,应该算比较好的一种解决方案了。

Ⅳ 如何防止代码被反编译

针对代码反编译,推荐使用CBS赛博锁,通过把安全容器内嵌到操作系统中,对容器内的应用和数据进行加锁,程序和数据在容器内运行,实现最后一米数据安全,防止核心数据被泄露,防止服务器终端中病毒,防止反编译,反破解。

Ⅵ 如何ava程序+防止Java反编译

防止java文件被反编译的方法:
1、java编译的文件或者发布包不要放到网上,仅供内部使用则不会被人反编译;
2、java发布包加上密码,只给指定的人使用;
注:在java编译文件本身是没有办法阻止别人反编译的,只要能拿到编译文件,就能使用反编译工具进行反编译。

阅读全文

与Java反编译防止相关的资料

热点内容
黄色武侠小说txt下载 浏览:531
如何将服务器转移至阿里平台 浏览:744
哪个网站可以看岛国片 浏览:648
代驾app如何导航到起点 浏览:667
机器人穿越外国电影 浏览:681
赢在龙头主图指标源码 浏览:951
符号加在命令后面 浏览:271
沙漏验机宝检测安卓手机怎么样 浏览:369
非洲电影有哪些好看的 浏览:763
媒介学pdf 浏览:234
推荐一个在线观看 浏览:471
单片机16进制编程图 浏览:490
金刚2迅雷下载 浏览:275
聚优电影卡使用范围 浏览:760
浙江网络卫星授时服务器云空间 浏览:497
宝塔加密方式 浏览:217
linux环境变量的路径 浏览:749
粉笔缓存的视频在手机哪个文件夹 浏览:680
港片尺度大 浏览:373