I have used jad for many years, most of them with the Jadclipse plugin for eclipse, which makes it quite usable. Especially with "Align Debugging Code", which allows you to see decompiled code for any line in the stack trace. Very nice.
Unfortunately, I have seen more and more that the <- MISALIGNED โ compiler โ is idle, which is most likely because jad expects the class file to be in order, which clearly does not correspond to the Java 6 runtime library. Therefore, when writing the file, and the instruction says "this is line 100", then 99 empty lines are written, and if then the next instruction says "this is for line 10", then jad cannot rewind to put this output there, but simply prints from the comment that itโs not in that place.
Here is an example HttpURLConnection:
protected HttpURLConnection(URL url, Proxy proxy, Handler handler1) { /* <-MISALIGNED-> */ /* 603*/ super(url); /* <-MISALIGNED-> */ /* 192*/ ps = null; /* <-MISALIGNED-> */ /* 196*/ errorStream = null; /* <-MISALIGNED-> */ /* 199*/ setUserCookies = true; /* <-MISALIGNED-> */ /* 200*/ userCookies = null; /* <-MISALIGNED-> */ /* 220*/ currentProxyCredentials = null; /* <-MISALIGNED-> */ /* 221*/ currentServerCredentials = null; /* <-MISALIGNED-> */ /* 222*/ needToCheck = true; /* <-MISALIGNED-> */ /* 223*/ doingNTLM2ndStage = false; /* <-MISALIGNED-> */ /* 224*/ doingNTLMp2ndStage = false; /* <-MISALIGNED-> */ /* 226*/ tryTransparentNTLMServer = NTLMAuthentication.supportsTransparentAuth(); /* <-MISALIGNED-> */ /* 227*/ tryTransparentNTLMProxy = NTLMAuthentication.supportsTransparentAuth(); /
The question now is if there is another decompiler that generates more accurate line output. The actual decompilation does not have to be extremely large or anything else, but I really like it to look like Java Stack Trace. If this works well with Jadclipse, it is even better.
source share