如何使用Proguard生成的mapping.txt对jar文件进行反混淆处理?

use*_*776 5 java android proguard deobfuscation

这可能听起来很可疑,但我需要对我自己的应用进行反混淆处理.前段时间我发布了我的应用程序,我与Proguard混淆了.不幸的是我没有保存该应用程序的版本并且更改了代码.

现在我需要旧版本的代码.我仍然有 Proguard生成的mapping.txt文件.

我已将classes.dex文件转换为jar(使用dex2jar工具),现在我需要根据mapping.txt对其进行反混淆处理.有什么工具可以帮助我吗?也许Proguard本身?

UPD.我需要一个可以自动重命名所有类,函数等的工具,所以我不必手动完成.谢谢

Dis*_*ame 8

如果您有映射,则可以返回每个类,字段和方法名称.您可以使用java-asm(字节码修改库)重新映射类和成员名称.大部分工作将更新成员描述符.

我为自己制作了一个,花了大约一天时间让它可靠地工作.

编辑:这不是完美的,但它非常接近.链接. GUI的屏幕截图给它一个proguarded jar文件,映射,它将重命名它可以找到的所有内容.有一些问题,但只是看看它应该做的工作.只需将它制作的jar(FileName +" - Re.jar")转储到Luyten/JD-GUI等反编译器中.此外,文件输入仅通过按钮更改.文本框仅用于视觉反馈/确认.

编辑2:修复了当给定jar中不存在映射中的类条目时发生的NPE.

编辑3:修复了导致方法未重命名的许多问题.

编辑4:将已编译的jar上传到github (发布,在zip文件中,它位于映射工具中),添加了对多种映射类型的支持.

  • 在这里你去:https://github.com/LPK-Matt/SkidSuite2我正在尝试重现NPE,但我似乎无法弄清楚你的映射现在如何触发它. (2认同)