jar包反编译工具:
1. jd-gui
2. XJad2.2
以上两个都能反编译jar包
jd-gui的好处是界面友好,能够直接查看jar包中的源代码,目录结构等等;
通过选择
弊端是,万一转换过程中碰到包中的某个文件无法转换时,会导致整个抓换过程失败,又因为jd-gui是将jar包转换成一个zip包,所以,期间的任何一个失败,将导致整个转换出来的zip包都无法打开;
而XJad2.2最大的好处,就是即使转换过程中失败了,失败前已经成功转换的java文件,都能看到,从而你能发现是哪几个文件,或哪几个文件夹没转换成功,从而能够猜得是哪几个文件或文件夹导致了转换失败;
例如,我们要反编译的jar包叫做a.jar, 而a中有一个文件夹,叫b,通过以上方法无法成功反编译,通过XJad2.2发现,停在a.jar中b文件夹中了,从而猜测是文件夹b下的某几个源文件导致的无法反编译,可以通过以下方法解决:
先通过windows系统里的WinRAR,将整个a.jar解压缩,此时里面的所有源文件都是.class格式的,没有关系,把文件夹b删除,然后进入命令行方式下,用jar命令把文件夹重新打包成jar格式的压缩包
例如:
然后再用jd-gui,将修改过的jar包,通过 File -> Save All Source,反编译,保存为a' ,并在下面相应的位置,建一个文件夹,叫作b
然后手动反编译,具体过程入下:
用jd-gui打开原始的a.jar,找到文件夹b,选择File -> Save Source, 然后选择路劲,让其保存到a'下的文件夹b中,从而实现是对a.jar的反编译!