我从互联网上下载了一个apk并使用dex2jarf工具对其进行了解压,因此它提供了编译的.classes文件,我通过反编译器将其转换为.java文件,但是它给了我一些正确的方法,就像它给出了a.java,b .java c.java这对我来说很难读。可以通过apk文件获得正确的类名,就像在project.plz帮助中使用的一样 谢谢
答案 0 :(得分:1)
您要实现的目标称为反混淆。
希望保护其知识产权的程序员会混淆他们的代码,使那些可能想要窃取/复制/抄袭他们辛勤工作的人更难以阅读。
混淆器用机器生成的短替代品替换这些名称。攻击者不会看到对dontAllow()的调用,而是会看到对a()的调用。这使得在不访问原始源代码的情况下更难以直观了解这些功能的目的。
Src:http://android-developers.blogspot.ie/2010/09/securing-android-lvl-applications.html
答案 1 :(得分:0)
如果已删除标识符,则无方法可以恢复标识符。编译是一个有损过程,就像将RAW
图像转换为低质量JPEG
一样。无法从JPEG
返回RAW
。
但是,有jeb
和ida
等工具可以让您自己重命名这些类。重命名时,对该类的所有引用也会重命名。此功能有时称为“重构”。这是最好的方法,但需要更多时间。
此外,还有jeb
的插件,通过生成比“a”,“b”等更新的,更具描述性的名称来帮助自动化重构。以下是jcase的示例,您可以修改它以适合您的需要:https://github.com/CunningLogic/myJEBPlugins/blob/master/DeCluster.java