gpt4 book ai didi

java - jar 反编译器在某些 jar 上卡住(尝试过 Procyon、JD-cmd 和 CFR)

转载 作者:行者123 更新时间:2023-12-02 11:58:42 24 4
gpt4 key购买 nike

我正在尝试反编译一些jar 文件。到目前为止我尝试过 Procyon、JD-cmd 和 CFR。

大多数 jar 都表现良好,但它们会卡住并且对某些 jar 没有任何作用。对于 Procyon、JD 和 CFR,这些 jar 是不同的。 (Procyon 在 2 号卡住,但 JD 在 4 号卡住,依此类推)

有趣的是,当我终止进程时,它们停止卡住并完成工作?

我在一个小型 java 程序中使用它们,如下所示:

ExecuteCommand cmd = new ExecuteCommand();

cmd.executeCommand("java -jar " + cfrPath + " " + jarPath + " --outputdir " + unzip);
cmd.executeCommand("java -jar " + jdPath + " -od " + unzip + " " + jarPath);
cmd.executeCommand("java -jar " + procyonPath + " -jar " + jarPath + " -o " + unzip);

ExecuteCommand.java 类是:

public class ExecuteCommand {

public void executeCommand(String command) {
String s = null;

try {

Process p = Runtime.getRuntime().exec(command);

BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));

BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));

while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}

while ((s = stdError.readLine()) != null) {
System.out.println(s);
}

}
catch (IOException e) {
e.printStackTrace();
}
}
}

我做错了什么吗?提前致谢!

最佳答案

我收到了你寄来的 jar 。我能够成功反编译其中两个;第三个 jar (最小的一个)似乎是空的。

您使用的 Procyon 版本是什么?在我的工作站上,最新版本(v0.5.30)和当前的开发分支都可以反编译前两个 jar 而不会挂起,尽管某些类确实无法正确反编译。但请注意,两者都需要一段时间才能完全反编译:一个大约需要 48 秒,另一个在我的 2013 年 Core i7 上花了 2 分 30 秒。

我确实注意到,当存在与二元运算符相关的失控复杂性错误时,一些类可能需要很长时间才能使用版本的 Procyon 进行反编译。检查您的版本号,如果已过期,请获取最新版本。

顺便说一句,Procyon 对于通过 dex2jar 等工具运行的类表现不佳。即使在最好的情况下,您也应该对反编译器生成的任何代码保持适当的怀疑态度。对于已被 dex2jar 转换的代码,您应该对输出感到彻底怀疑。

关于java - jar 反编译器在某些 jar 上卡住(尝试过 Procyon、JD-cmd 和 CFR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47416970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com