我丢失了去年建立的所有应用程序中的代码(雷击我的硬盘,没有备份任何应用程序)。由于它们是相当简单的应用程序,我将它们置于逆向工程过程中。我已经在过去几十次这样做了,每次我都没有任何问题(如果我们不计算工作时间将所有文件整合到一个项目中)。我已经完成了在硬盘耗尽期间丢失的3个应用程序。他们几乎完美地逆转了,但我被困在了这个。
让我们详细了解一下。逆向工程进展顺利。我能够从APK中提取的编码XML文件中获取XML代码。我还能够成功地从classes.dex
反编译Java代码。我得到所有文件可读,然后我可以通过文本编辑器打开/查看。
但我有一个奇怪的文件结构和奇怪的文件名。项目文件位于通常路径src/com/mycompanyname/appname
内。在RI处理之后,一些文件仍保留在主路径(R.java
,第三方广告文件和其他一些文件中),而所有其他文件都被重新显示进入这样的文件结构:
a.java
b.java
c.java
...
z.java
我写的所有文件都被重命名并获得了这些奇怪的名字,而所有第三方文件都保持不变。
问:有谁可以告诉我这可能是什么原因?
问: Eclipse在将代码编译成APK之前是否以某种方式对代码进行了模糊处理?这是混淆的APK在通过IR流程后的样子吗?
我真的希望有人能够帮助我,因为我仍然需要重建超过10个其他应用程序。它
答案 0 :(得分:7)
Android SDK包含Proguard以模糊您的代码。使用ADT在Eclipse中创建Android项目时,默认情况下会启用Proguard。但是你可以把它关掉。在此处了解更多相关信息http://developer.android.com/guide/developing/tools/proguard.html
因此...
问:有谁可以告诉我这可能是什么原因?
这是Proguard的工作。
问:在编译之前,Eclipse是否以某种方式模糊了代码 APK?这是混淆的APK在接通后的样子 IR流程?
它本身不是Eclipse,它是在构建过程中调用的Proguard。是的,这就是它的样子。
答案 1 :(得分:-3)
只需使用JAD。正确反编译。