Java的反编译工具很多,但今天笔者只介绍下cfr和procyon
首先放上cfr的官方网站:
http://www.benf.org/other/cfr/
还有procyon的官方网站
https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler
那么是如何使用的呢?
我们现在要将一个里面全是class文件的example.jar进行反编译,通过DOS进入到cfr_0_79.jar所在的目录,然后运行命令,示例如下:
cfr:
- D:\软件>java -jar cfr_0_79.jar D:\lib\example.jar -–outputdir D:\data\example
procyn:
- D:\软件>java -jar procyn.jar D:\lib\example.jar -o out
有点麻烦对不对?别急,现在新版的apktool就可cd到任何目录下使用apktool命令,那我们可不可以也这样呢?
新建一个文本文件,用记事本打开,复制一下代码:
- @echo off
- if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
- set PATH=%CD%;%PATH_BASE%;
- java -jar -Duser.language=en "%~dp0\cfr.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
然后保存为cfr.bat文件,再把这个cfr.java和cfr.bat复制到C:\Windows目录下,这样我们就可以在任何目录下使用了。procyon只需要把以上代码中的cfr.jar改为procyon.jar即可。
现在想编译哪个文件就cd到哪个文件的目录下,然后直接使用
- cfr example.jar
- procyon example.jar
或
- cfr example.class
- procyon example.clas
要想输出文件呢就可以这样
- cfr example.jar --outputdir D:\example\example
- cfr example.class --outputdir D:\example\example
procyon是这样
- procyon example.jar -o out
- procyon example.class -o out
是不是方便很多了呢?另外个人推荐使用procyon
参考资料:
http://blog.csdn.net/aunixtoyou/article/details/51052155