机器学习和生物信息学实验室联盟

标题: Java的反编译技术 [打印本页]

作者: zouquan    时间: 2011-9-20 10:45
标题: Java的反编译技术
你是否下载到一个jar,发现他的输入和输出不和你心愿,你没法调用呢?

这时候你想,如果有他的.java文件多好啊,改一点就可以,可惜没有,用winrar解压后全是.class文件,郁闷。

别着急,如果不是专业公司做的,一般人是不会防反编译的,[attach]811[/attach]


然后用它打开你的jar,就会看到源代码了!

所以我们如果做什么软件,不想让人看到源代码,也要琢磨一下,怎么防反编译!
作者: chenwq    时间: 2011-9-20 11:17
      据了解逆向工程的最大弊端是对应用程序进行完全逆向工程所耗费的时间往往太长。虽然有少数出色程序员可以阅读源代码,不过耗时往往太长。再者,我们往往缺乏对正在分析的代码的整体认识。如果在进行逆向工程时发现新错误,我们仍需找出会导致产生该破坏代码的途径。
      在某些情况下,在某些地理位置,逆向工程可能是非法的。进行逆向工程之前一定要三思,确保它在您所在的地区是合法的。如果您在工作时做不好这种控制,很容易就会触
及受法律保护的库。

      所以从成本角度上,我想在做反编译的人事先会权衡逆向工程与自己生产代码的成本.如果逆向工程的难度和风险大于自己生产,那么是该放弃反编译~ ~


作者: xmubingo    时间: 2011-9-20 11:58
我记得eclipse里面装个好像叫jad的插件就可以查看class代码了。

怎么防止反编译没什么了解。加密,混淆代码让别人读不懂。把变量和函数包括系统调用全部用编号代替,抹掉注释,打乱顺序,他看懂也要花一定时间。
作者: xmubingo    时间: 2011-9-20 13:06
chenwq 发表于 2011-9-20 11:17
据了解逆向工程的最大弊端是对应用程序进行完全逆向工程所耗费的时间往往太长。虽然有少数出色程序员 ...

你说的应该是反汇编来逆向。java不用那么复杂。
作者: chenwq    时间: 2012-7-20 17:12
本帖最后由 chenwq 于 2012-7-20 17:12 编辑

Eclipse添加Jad插件方法:
Preferences->Java->JadClipse
Path to decompiler:C:\Program Files\Java\jre6\jad.exe
Directory for temporary files:C:\Users\Administrator\.net.sf.jadclipse

作者: tangzk    时间: 2012-7-21 21:50
推荐一款神器jbe,可以用于java bytecode的修改。
Java Bytecode Editor: http://www.cs.ioc.ee/~ando/jbe/
[attach]846[/attach]
作者: hsc    时间: 2012-7-22 10:10
这个软件我以前用过,只能说,他能反编译出大部分正确的,不能全用,还是会有错误,可能语法上也会有问题,用来做恢复还是可以的~
作者: tangzk    时间: 2012-7-25 14:08
hsc 发表于 2012-7-22 10:10
这个软件我以前用过,只能说,他能反编译出大部分正确的,不能全用,还是会有错误,可能语法上也会有问题, ...

类似这样的软件我觉得用法是,用它反编译过来的文件阅读阅读一下,但一般无法用这些反编译的源文件的,真正要修改,还是要直接上bytecode层面去。
作者: 小疯纸一枚    时间: 2012-7-25 18:12
http://webservices.ctocio.com.cn/java/54/9372554.shtml
作者: xmubingo    时间: 2012-8-7 19:42
本帖最后由 xmubingo 于 2012-8-7 19:42 编辑

突然,让我想起CUDA和.ptx,类似java的.class。




欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) Powered by Discuz! X3.2