我正在使用 SDK 来开发作为 AAR 分发的应用程序,并且已经使用 ProGuard 进行了混淆。我只是想扭转它所做的一些事情。类、方法和变量已被混淆,我很确定 ProGuard。我一直在寻找一种工具链,它可以为我提供比当前更好的工作流程,但找不到我需要的东西。
这是我现在正在做的事情:
- 在Android Studio中创建了一个示例应用,调用SDK中我关心的东西
- 设置断点并进入我感兴趣的代码
- 使用 Android Studio 反编译(我没想到它会这样,太棒了!),开始计算不同的变量、方法和类的用途,并为它们命名。
- 将这些名称写在 ASCII 注释文件中以供参考
- 在我的笔记和代码之间来回切换,当我的大脑失去对我试图保留在脑海中的所有映射的控制时尖叫
这是我想要做的:
- 在 Android Studio 中运行我的示例应用程序,像以前一样进入混淆的字节码
- 当我找出一个方法时,在代码浏览器中重新标记它,让重新标记传播到该方法的所有调用,类似于许多 IDE 中的“重构”操作
- 恢复理智,看看我的家人,取得进步
我认为某种 baksmali / smali 解析器 / smali 汇编器过程应该可以实现这一点,但我还找不到任何可以做到的东西。 Virtuous Ten可能能够做到,但它以不清楚的方式试图在我的 SDK jar 上生成 smali。当我在我的 jar 上运行它时,我得到零 smali 或 java。
有任何想法吗?