일부 jar 파일을 디 컴파일하려고합니다. 지금까지 Procyon, JD-cmd 및 CFR을 시도했습니다.jar 디 컴파일러가 일부 jar 파일에서 멈 춥니 다 (Tried Procyon, JD-cmd 및 CFR)
그들은 모두 항아리의 대부분을 잘하고 있지만 일부 항아리에서는 얼기도하고 아무것도하지 않습니다. 그리고이 항아리들은 Procyon, JD 및 CFR과 다릅니다. (Procyon은 2 위에서 멈추지 만 JD는 4 위에서 멈 춥니 다.)
재미있는 부분은, 내가 프로세스를 죽일 때, 그들은 얼어 붙지 않고 일을 끝낸다는 것이다.
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();
}
}
}
내가 뭔가 잘못하고 있는가 다음과 같이
나는 작은 자바 프로그램 내에서 그들을 사용하고? 미리 감사드립니다!
실제로 냉동되었거나 오랜 시간이 걸릴 것이라고 확신합니까? – Antimony
나는 프로시온 저자 여기에 – Zapdos
확신합니다. 커맨드 라인에서 디 컴파일을하면, 어떤 클래스가 걸려 있는지 볼 수 있습니다. 가장 유력한 설명은 (1) 재귀 유형 매개 변수와 관련된 일종의 심층 또는 무한 루프에서 일반 유형 유추가 발견되고 있습니다. 또는 (2) 클래스 중 하나가 복잡한 제어 흐름을 가진 매우 큰 메소드를 가지고 있으며, 아마도 디 컴파일러를 트립하도록 특별히 설계된 것일 수도 있습니다. 저에게 직접 연락을 취하고 항아리 사본을 얻을 수있는 방법을 마련해 주시면 직접 볼 수 있습니다. 내 연락처 정보는 Procyon BitBucket 사이트에 있습니다. –