破解apk的流程
简述安卓apk的产生过程:
- java源代码
java编辑器
编译
- class文件
dx
工具转换和打包压缩- 加上 第三方的,其他的库文件
- dex文件
- apkbuilder打包
- 加上 其他资源文件resources.arsc,其他库等
- apkbuilder打包
- (未签名的)apk文件
- jarsigner去签名 + zipalign去处理
- (已签名的)apk文件
- 可以用于发布和上架各种安卓应用市场
- 供普通用户下载安装试用
- 可以用于发布和上架各种安卓应用市场
-》想要破解安卓apk,也就是反向操作了:
- 从apk(安装后的运行期间的app)反向(用hook机制去dump)导出dex文件
- 如果是普通加固
- 用FDex2等工具是可以成功导出dex的
- 如果是各家收费的高级的加固方案
- 估计就比较困难了
- 如果是普通加固
- 从dex文件反编译出jar包(内部就是各种class了)
- 有的dex反编译会出现各种错误
- 估计是加固的方案比较高级导致的
- 有的dex反编译没有出错
- 如果又是我们希望的包含了app业务逻辑的代码
- 那后续就可以完美的破解得到程序的java源代码了
- 如果又是我们希望的包含了app业务逻辑的代码
- 有的dex反编译会出现各种错误
- 从jar包反编译出java源代码
- 即可查看和导出全部的java源代码了
- 注意:
- 当前如果之前混淆了代码
- 最后此处得到的也是混淆后的代码
- 不容易看出原始代码的业务逻辑
- 最后此处得到的也是混淆后的代码
- 当前如果之前混淆了代码
- 说明
- 此过程和之前的编译对应,所以严格的叫法就是所谓的:
- 反编译=decompile
- 对应工具才叫做:decompiler
- 反编译器=解码器=逆编译程序
- 对应工具才叫做:decompiler
- 反编译=decompile
- 此过程和之前的编译对应,所以严格的叫法就是所谓的: