破解apk的流程

简述安卓apk的产生过程:

  • java源代码
    • java编辑器 编译
  • class文件
    • dx工具转换和打包压缩
      • 加上 第三方的,其他的库文件
  • dex文件
    • apkbuilder打包
      • 加上 其他资源文件resources.arsc,其他库等
  • (未签名的)apk文件
    • jarsigner去签名 + zipalign去处理
  • (已签名的)apk文件
    • 可以用于发布和上架各种安卓应用市场
      • 供普通用户下载安装试用

-》想要破解安卓apk,也就是反向操作了:

  • 从apk(安装后的运行期间的app)反向(用hook机制去dump)导出dex文件
    • 如果是普通加固
      • 用FDex2等工具是可以成功导出dex的
    • 如果是各家收费的高级的加固方案
      • 估计就比较困难了
  • 从dex文件反编译出jar包(内部就是各种class了)
    • 有的dex反编译会出现各种错误
      • 估计是加固的方案比较高级导致的
    • 有的dex反编译没有出错
      • 如果又是我们希望的包含了app业务逻辑的代码
        • 那后续就可以完美的破解得到程序的java源代码了
  • 从jar包反编译出java源代码
    • 即可查看和导出全部的java源代码了
    • 注意:
      • 当前如果之前混淆了代码
        • 最后此处得到的也是混淆后的代码
          • 不容易看出原始代码的业务逻辑
    • 说明
      • 此过程和之前的编译对应,所以严格的叫法就是所谓的:
        • 反编译=decompile
          • 对应工具才叫做:decompiler
            • 反编译器=解码器=逆编译程序

results matching ""

    No results matching ""