This may sound suspicious, but I need to deobfuscate my own app. Some time ago I published my app that I obfuscated with Proguard. Unfortunately I did not save that version of the app and changed the code a lot.
Now I need the code of that older version. I still have mapping.txt file generated by Proguard.
I have converted the classes.dex file to jar (using dex2jar tool), now I need to deobfuscate it according to mapping.txt. Are there any tools that can help me? Maybe Proguard itself?
UPD. I need a tool that can automatically rename all the classes, functions etc, so I dont have to do it manually. Thank you
If you have the mappings then you can get every class, field, and method name back.You can use java-asm (A bytecode modification library) to remap the class and member names. Most of the work will be updating member descriptors.
I made one for myself and it took about a day to get it working reliably.
Edit: It's not perfect, but it's pretty darn close. Link. Give it a proguarded jar file, the mappings and it'll rename all it can find. There's a few issues but for just looking at the source it should do the job. Just dump the jar it makes (FileName + "-Re.jar") into a decompiler such as Luyten/JD-GUI. Also the file inputs are only changed via the buttons. The textboxes are just for visual-feedback/confirmation.
Edit 2: Fixed NPE occurring when class entry in mappings doesn't exist in the given jar.
Edit 3: Fixed a lot of issues resulting in methods not being renamed.
Edit 4: Uploaded compiled jar to github (releases, in the zip file it's in the mapping util), added support for multiple mapping types.