title: Android how to read obfuscated Java code after getting through reverse engineering
body: <p>I got the Java classes from an APK after using some tools like dex2jar and JD-GUI. As everybody knows Java byte code can be converted to Java classes back so mostly it is optimized and obfuscated through some tools (like ProGuard is used in the case of Android) to make it secure from others. So what I got is obfuscated code and I want to make it error-free, readable, understandable so that I can further modify it for my own purpose (for my personal use only, I don't mean to violate any copyrights). So any help i.e advices, tools, helping material to make this obfuscated code much closer to what was written by a developer or to make it error-free and understandable will help me a lot. Currently my focus is about to reversing obfuscating techniques used by ProGuard like when I tried reverse engineering on my own projects and found that:</p>
  
  <ul>
  <li><code>int</code> resource values can be altered with ids by matching through the <code>R</code> file which is generated with reverse engineering.</li>
  <li>The <code>if</code>/<code>else</code> conditions mostly converted to <code>while(true)</code> and some <code>continue</code>s and <code>break</code>s.</li>
  <li>Inner classes mostly broke up to separate files</li>
  </ul>
  
  <p>So, any other techniques and helping material for the above mentioned ways which can describe how to properly reverse them will be very helpful.</p>