[英]Analyzing the code of the class files in a jar file
我正在尝试分析 android 应用程序的内容。 如果它是人类可读的文件格式,如 .java 或 .txt,我已经制作了我需要分析它的代码。 我知道如何更改反编译 apk 以获取 dex 文件以及如何将 dex 文件更改为 jar 文件,但是现在,我需要能够分析 jar 文件以分析其 .class 文件以将它们转换为 . java文件。 我试图使用 jd-core,因为 jd-gui 非常适合反编译 jar 文件,但它似乎对我不起作用。
我有这个代码片段从这个 StackOverflow 答案解压 jar 文件:
java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile);
java.util.Enumeration enumEntries = jar.entries();
while (enumEntries.hasMoreElements()) {
java.util.jar.JarEntry file = (java.util.jar.JarEntry) enumEntries.nextElement();
java.io.File f = new java.io.File(destDir + java.io.File.separator + file.getName());
if (file.isDirectory()) { // if its a directory, create it
f.mkdir();
continue;
}
java.io.InputStream is = jar.getInputStream(file); // get the input stream
java.io.FileOutputStream fos = new java.io.FileOutputStream(f);
while (is.available() > 0) { // write contents of 'is' to 'fos'
fos.write(is.read());
}
fos.close();
is.close();
}
但是我找不到任何方法将类文件转换为 .java 文件。 此外,这会非常非常缓慢地解压缩。 我觉得我可能完全错了。 你能给我什么帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.