安卓逆向学习笔记(7)- 破解Java层的签名校验

        做为Android开发者,我们应该知道没有签名的Apk是无法在真机(模拟器)上安装运行的。为了防止自己开发的Apk被别人二次打包,有些开发者会在App运行时获取当前Apk的签名信息并与正版Apk的签名信息进行比对,一旦发现不相同,就会弹出对话框提示用户当前应用是盗版或者终止App的运行,这就是Apk签名校验。开发者可以在Java层或者NDK层实现签名校验,而破解NDK层的签名校验要比破解Java层的签名校验难度更大一些。因为黑客一般会修改smali代码,然后再进行二次打包,而二次打包生成的classes.dex与正版Apk中的classes.dex肯定不同,所以有些开发者会采用classes.dex的 MD5校验来保护自己的Apk。本文要介绍的是破解Java层的签名校验,我当时是参考这篇文章:(爱加密系列教程七)程序员应该学习的签名破解学习签名破解的。下面就以某厂的电池管家为例,介绍一下破解Java层签名校验的流程。本文使用的电池管家版本为2.0.2,我们的目标是破解签名校验并进行二次打包(如果不绕过签名校验,运行二次打包生成的电池管家会出现闪退现象,有兴趣的童靴可以试试)。下面是具体步骤:

0x00 反编译电池管家Apk

      将电池管家Apk放入某个文件夹中,在该文件夹中打开命令提示符,
      输入命令:apktool d dianchiguanjia_10.apk
      如图1所示:

你可能感兴趣的:(安卓逆向学习笔记)