社区
Java
帖子详情
如何防止Java程序被反编译
GoldTiger
2005-08-05 07:59:40
如何防止Java 的Class类程序被反编译
...全文
1329
34
打赏
收藏
如何防止Java程序被反编译
如何防止Java 的Class类程序被反编译
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
34 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pshpan
2006-07-04
打赏
举报
回复
混淆器,再参杂点杂七杂八的代码
china2001ok
2006-06-24
打赏
举报
回复
干嘛要这样呢 不是提倡开源么
UnAgain
2006-06-03
打赏
举报
回复
到IBM developer搜索java源代码加密,有几篇好文章
Tony_OY
2006-05-26
打赏
举报
回复
频繁用exception机制很对运行效率可是大打折扣.
元气满满的码农
2006-05-15
打赏
举报
回复
哪位有jade给我发一个,qianjingfan@163.com谢谢
boxzang
2006-04-25
打赏
举报
回复
给个混淆器的例子呢
Preamble
2006-04-23
打赏
举报
回复
shine333(enihs) ( ) 信誉:125
还有就是在关键代码处改变写作风格
比如,
if ("a".equals(x)) {
y++;
} else if ("b".equals(x)) {
y--;
} else {
y+=10;
}
可以改为下面代码,看了反编译的代码之后一定惨不忍睹
try {
if ("a".equals(x)) {
Object o = null;
o.toString();
} else if ("b".equals(x)) {
char c = x.charAt(2);
} else {
throw new Exception(); // 需要显示throw来破坏try-catch为break-label操作
}
} catch (NullPointerException ex) {
y++
} catch (IndexOutOfBoundsException ex) {
y--;
} catch (Exception ex) {
y+=10;
}
看来zuihao些垃圾代码·!不用混都没人看
强人!
xueyi0108
2006-04-05
打赏
举报
回复
mark
boydream
2006-04-04
打赏
举报
回复
关注~~~
gzshenlong
2006-03-30
打赏
举报
回复
java开发的程序的保护
众所周知,java开发语言提供了很方便的开发平台,而且开发出来的程序很容易在不同的平台上面进行移植,现在越来越多的人使用它开发软件。
Java有了它方便的一个方面,但是他同时也带给了开发者一个烦恼,这就是保护的办法不多,而且大多数不是很好用,这样自己辛苦开发出来的程序很容易被人复制而据为己有,一般情况下,大多数的人都是用混编器(java obfuscator)来把开发出来的程序进行打乱以达到没有办法来反编译观看源代码,但是这种办法在网上很容易找到相关的软件来重新整理,那么这个混编只能控制一些本来也没有办法动您的软件的人,而对于一些掌握工具的人几乎是透明的,还有就是利用硬件加密锁,但大多数公司提供的硬件加密锁只是提供了一些dll的连接或简单的api调用,只要反编译他们,就很容易把一些api调用去掉,这样硬件加密锁也就不起作用了,但是现在到底有没有好的办法呢?
以色列阿拉丁公司提供的HASP HL加密锁提供的外壳加密工具中有一个叫做数据加密的功能,这个功能能更好的防止去除api的调用,各位都知道:硬件加密锁的保护原理就是要您被加密过的软件和加密锁的硬件要紧紧地结合在一起,而且不容易被轻易的剔出原来的调用,这样才能更好的保证您的软件不被盗版,同时这种方式也很容易被程序员掌握,要对一个软件实现保护,只需要几分钟的时间就可以了,下面简单介绍一下他的原理:
运用阿拉丁公司提供的外壳工具先把调用您的java解释器来进行加密,那么就是说如果要运用这个解释器就需要有一把特定的加密锁存在,然后我们再运用它提供的外壳加密工具中的数据加密功能,把您写好的java程序代码class文件进行数据加密产生新的文件来代替(加密过后的class文件是乱码,这时采用任何反编译工具都编译不出),然后再用加密过后的java解释器来调用,这个加密是采用的AES128位的算法的,这样这个加密过的数据文件——您的软件就只能被您保护过的java解释器来进行解释,但是在没有加密锁的情况下就不能够运行您的软件,或者是在有锁的情况下也看不到软件代码从而达到真正保护您的软件的目的。
我们作为以色列aladdin加密锁的代理商,很愿意和您分享这样的保护方式,如果您对我们的产品感兴趣,我们公司将提供产品测试!
联系人 龙令军 13538771708
邮件 :long@hzbhasp.com.cn
英文网址:http://www.ealaddin.com
中文网址:http://www.ealaddin.com.cn
QQ 501623419
iwlk
2006-03-09
打赏
举报
回复
还有就是在关键代码处改变写作风格
比如,
if ("a".equals(x)) {
y++;
} else if ("b".equals(x)) {
y--;
} else {
y+=10;
}
可以改为下面代码,看了反编译的代码之后一定惨不忍睹
try {
if ("a".equals(x)) {
Object o = null;
o.toString();
} else if ("b".equals(x)) {
char c = x.charAt(2);
} else {
throw new Exception(); // 需要显示throw来破坏try-catch为break-label操作
}
} catch (NullPointerException ex) {
y++
} catch (IndexOutOfBoundsException ex) {
y--;
} catch (Exception ex) {
y+=10;
}
强人, 但是有个问题, 速度应该会下降吧,
Student02370236
2006-03-08
打赏
举报
回复
连自己都不知道在写什么是“最高境界”
Saro
2006-03-05
打赏
举报
回复
shine333真强。
笑得在地上打滚。
楼主明白了吧,把程序写得谁也看不懂就是最好的方式了哩。
prentice1001
2006-02-28
打赏
举报
回复
强人shine333(enihs) ( )
panzi667
2006-02-28
打赏
举报
回复
楼上是强人
creating_myth
2006-02-28
打赏
举报
回复
不行的呀,我试过了,用jad反编译出来很完整的。
shine333
2006-02-17
打赏
举报
回复
还有就是在关键代码处改变写作风格
比如,
if ("a".equals(x)) {
y++;
} else if ("b".equals(x)) {
y--;
} else {
y+=10;
}
可以改为下面代码,看了反编译的代码之后一定惨不忍睹
try {
if ("a".equals(x)) {
Object o = null;
o.toString();
} else if ("b".equals(x)) {
char c = x.charAt(2);
} else {
throw new Exception(); // 需要显示throw来破坏try-catch为break-label操作
}
} catch (NullPointerException ex) {
y++
} catch (IndexOutOfBoundsException ex) {
y--;
} catch (Exception ex) {
y+=10;
}
gushansanren
2006-02-15
打赏
举报
回复
可以自己把类文件加密或做什么运算。在调用的时候,自己写一个加载类的继承类,重载classload()方法,自己再变会来就行了。绝对比混淆器好用。
hcmsxy
2006-02-02
打赏
举报
回复
自己使用任何一种方法将class加密,使用运行时解密加载。
提供一个思路。
jxdn_yang
2006-01-23
打赏
举报
回复
还是不要混淆的好,不然好代码可以研究下了
加载更多回复(12)
android
反编译
工具(dex2jar,apk2
java
)
Android APK
反编译
得到
Java
源代码和资源文件的工具
反编译
apk生成
程序
的源代码和图片、XML配置、语言资源等文件的工具
一些
防止
Java
代码被
反编译
的方法
通常,这些方法不能够绝对
防止
程序
被
反编译
,而是加大
反编译
的难度而已,因为这些方法都有自己的使用环境和弱点。 隔离
Java
程序
最简单的方法就是让用户不能够访问到
Java
Class
程序
,这种方法是最根本的方法,具体...
反编译
Android应用
学习技术的渠道多种多样,而通过
反编译
一些经典应用来学习是一种比较好的途径,在Android领域,有比较好的
反编译
工具,本课程将会教大家如何
反编译
Android应用。
java
如何
防止
反编译
java
如何
防止
反编译
java
如何不被
反编译
_
防止
JAVA
代码被
反编译
的方法
防止
JAVA
代码被
反编译
的方法我们都知道
JAVA
是一种解析型语言,这就决定
JAVA
文件编译后不是机器码,而是一个字节码文件,也就是CLASS文件。而这样的文件是存在规律的,经过
反编译
工具是可以还原回来的。例如Decafe、...
Java
50,523
社区成员
85,601
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章