反代码混淆

背景:使用反编译工具只能看到混淆之后的代码结构,看不到混淆之前的原始的代码

而如何反混淆:

  • 如果有:mapping.txt文件
    • 有机会反混淆,恢复和还原出原始代码
    • 背景:
      • 有安卓项目源码的开发者,在折腾ProGuard时,才有(生成)的mapping.txt文件
    • 实际上:作为要破解的人,往往没有
  • 如果有:源文件和行号文件
    • 有机会反混淆,恢复和还原出原始代码
    • 背景:
      • 许多APK开发者为了在崩溃时保存源文件类名、行号等信息会在APK混淆时添加以下规则保留源文件信息
        • -keepattributes SourceFile,LineNumberTable
    • 实际上:作为要破解的人,往往没有

一些反混淆工具

举例

JEB反混淆效果

如果有了源文件和行号(只可惜逆向人员往往没有),则可以反混淆:

deobfuse_source_java

deobfuscation_before_after

Jadx反混淆效果

比如:

jadx_deobfuscation_renamed_from

详见:反混淆 · 安卓反编译利器:jadx

results matching ""

    No results matching ""