使用cfr和procyon反编译Java

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:

[java] view plain copy
  1. D:\软件>java -jar cfr_0_79.jar D:\lib\example.jar -–outputdir D:\data\example  


procyn:

[java] view plain copy
  1. D:\软件>java -jar procyn.jar D:\lib\example.jar -o out  




有点麻烦对不对?别急,现在新版的apktool就可cd到任何目录下使用apktool命令,那我们可不可以也这样呢?


新建一个文本文件,用记事本打开,复制一下代码:

[java] view plain copy
  1. @echo off  
  2. if "%PATH_BASE%" == "" set PATH_BASE=%PATH%  
  3. set PATH=%CD%;%PATH_BASE%;  
  4. 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到哪个文件的目录下,然后直接使用

[java] view plain copy
  1. cfr example.jar  
[java] view plain copy
  1. procyon example.jar  


[java] view plain copy
  1. cfr example.class  
[java] view plain copy
  1. procyon example.clas  


要想输出文件呢就可以这样

[java] view plain copy
  1. cfr example.jar --outputdir D:\example\example  
[java] view plain copy
  1. cfr example.class --outputdir D:\example\example  


procyon是这样

[java] view plain copy
  1. procyon example.jar -o out  
[java] view plain copy
  1. procyon example.class -o out  




是不是方便很多了呢?另外个人推荐使用procyon


参考资料:

http://blog.csdn.net/aunixtoyou/article/details/51052155

展开阅读全文

没有更多推荐了,返回首页