这听起来可能有点可疑,但我需要来消除我自己的应用程序。一段时间前,我发布了我的应用程序,我混淆了Proguard。不幸的是,我没有保存那个版本的应用程序,并且修改了很多代码。
现在我需要那个旧版本的代码。我仍然有mapping.txt文件生成。
我已经将classes.dex文件转换为jar (使用dex2jar工具),现在我需要根据mapping.txt来清理它。有什么工具可以帮我吗?也许是保安本身?
UPD。我需要一个工具,可以自动重命名所有的类,函数等,所以我不需要做手动。谢谢
发布于 2016-03-28 22:21:39
如果您有映射,那么您可以得到每个类、字段和方法名称,back.You可以使用java (字节码修改库)重新映射类名和成员名。大部分工作将是更新成员描述符。
我为自己做了一个,花了大约一天的时间让它可靠地工作。
编辑:这并不完美,但非常接近。链接。

给它一个预保护的jar文件,映射,它将重命名它能找到的所有东西。有几个问题,但只要看一看,它应该做的工作。只需将它生成的jar (FileName + "-Re.jar")转储到一个反编译器中,比如Luyten/JD。此外,文件输入仅通过按钮进行更改。文本框只用于视觉反馈/确认。
编辑2:当映射中的类条目不存在于给定的jar中时,就会发生固定的NPE。
编辑3:修正了许多导致方法不被重命名的问题。
编辑4:将编译好的jar上传到github (版本,在zip文件中它在映射util中),增加了对多种映射类型的支持。
发布于 2016-03-31 09:58:37
我建议使用在以上答案和谜团中建议使用的前保护工具。您的问题的解决方案不能很简单,您需要使用一些可用的工具来解决它。
https://stackoverflow.com/questions/36245737
复制相似问题