有些时候我们面对一个class文件jar包或者war包,很想知道里面有什么参数,有什么方法,但是又没有文档,又没有源代码,那怎么办呢。
没关系,我们可以反编译这些class文件或jar包或war包。
java的class文件存储的是字节码,这些基本知识在此就不必啰嗦了。反正就是其存储的信息足够可以反编译出来。
我们下载TTools中dist文件夹下的TdeCompile.jar可执行jar包,然后就可以开始反编译工作了。使用方法很简单,在命令行输入命令即可,如下
[plain] view plain
java -jar TdeCompile.jar xxx.class
注意如果你不在TdeCompile的同目录下,需要写上TdeCompile.jar的路径,其次跟一个参数xxx.class,xxx代表你所要反编译的文件的文件名。输出即是xxx.class.txt,它是反编译过后的文件,txt文本格式,所在目录通xxx.class。请确保你在xxx.class目录下有写权限。
我们也可以直接操作一个jar包或war包。如:
[plain] view plain
java -jar TdeCompile.jar xxx.jar
程序可以自动识别是class文件还是jar或war包,如果是jar包或war包,则首先自动解压缩,解压缩的目录为xxx.jar的同一个目录,然后逐个反编译class文件,在每个class文件的旁边输出一个xxx.class.txt文件。请确保你在jar包所在目录有写权限。
TdeCompile的原理是利用了ASM去读取每一个class文件的信息。
B. 被混淆的jar包如何反编译
暂时想到的只有将jar文件解压,用反编译工具反编译相关类,修改,编译成类替换原文件,再打包成。
C. 如何将jar包反编译成项目
第一步 用反编译工具将jar 反编译
第二步 将反编译后的项目,保存成zip包
第三步 解压zip包,并将项目导入到项目中
用解压软件,这个很方便就不详细说了
第四步 将文件导入到项目中(注意因为是文件,不是完整的项目,所以先创建一个空的项目,用这种方式去导入文件)
第五步选择自己路径下的文件点击Resource Filters 即可
D. 安卓4.0如何反编译resources.arsc
resources是APK中的资源文件,例如图片布局等等,android 反编译的方法,需要用到几个工具,网络一下都能找到下载地址
dex2jar JD-GUI apktool
反编译步骤:
1.反编译Apk得到Java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。
具体步骤:
1.首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
2.解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar
2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
还是下载工具,这次用到的是apktool
具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar 文件到解压后的\apktool-install-windows-r04-brut1文件夹里)
2.特别注意:你要反编译的文件一定要放在C盘的根目录里
E. 怎样jar包直接反编译成java文件
使用现有的反编译工具或者自己写一个,jar包实际上是class文件打包的,class文件是二进制文件,使用流将class文件读入,然后转为字符再写入到文件中就完成反编译了。不过经过混淆过的jar包好像不能反编译。
F. jar包如何反编译
使用jd-gui工具打开原始的Jar包,选择File-->Save All Sources,会生成一个zip压缩包。解压这个压缩包,就可以得到java源码文件
G. 利用idea反编译jar成java
要利用IntelliJ IDEA反编译.jar文件为Java源代码,首先,找到idea中已安装的java-decompiler.jar文件路径,通常位于:
D:\app\JetBrains\IntelliJ IDEA 2020.2.2\plugins\java-decompiler\lib\java-decompiler.jar
然后,将待反编译的.jar文件放置在指定目录,例如 D:\tmp\class_to_java,并在该目录下创建一个新子目录,例如命名为"XXX"。
接下来,切换到新目录 D:\tmp\class_to_java,执行以下命令以反编译jar文件:
java -cp "D:\app\JetBrains\IntelliJ IDEA 2020.2.2\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true XXX.jar XXX
运行该命令后,新的Java源代码文件将以jar包形式在同目录中生成。