觉得有帮助请点赞关注收藏~~~
一、反编译
编译是把代码编译为程序,反编译是把程序破解为代码。 下面介绍反编译的完整过程
首先准备反编译的三个工具,分别是apktool,dex2jar,jd-gui 注意下载它们的最新版本
apktool 对APK文件解包 主要用来解析res资源和AndrodiManifest.xml
dex2jar 将APK文件中的class.dex转化为jar包
jd-gui 将jar包反编译为Java源码
APK解压后的内部目录结构
转换工具dex2jar的运行截图
反编译后的java源码目录结构
由此可见 这样App很容易被破解 因此必须要采取一些保护措施
二、代码混淆
代码混淆就是保护代码安全的措施之一,Android已经自带了代码混淆器ProGuard它的用于主要如下
1:压缩APK包的大小 删除无用代码 并简化部分方法名和类名
2:加大破解源码的难度 部分类名和方法名被重命名使得程序逻辑变得难以理解
由下图可见 代码混淆之后类名混乱 黑客看了也束手无策
三、第三方加固及重签名
App经过代码混淆后初步结束了裸奔的状态,但是还有其他的安全风险,我们可以把APK文件交给专业网站进行加固处理,如360加固网站等等360加固网站
不过加固后的APK破坏了原来的签名,也就无法在手机上安装,此时要对该文件进行重签名,才能成为合法的APK安装包,重签名可使用专门的签名软件,比如爱加密的APKSign等等,选择文件的路径,密码,别名,别名密码等等之后即可开始重签名,签名完后即可在手机上直接安装了
创作不易 觉得有帮助请点赞关注收藏~~~