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