Android APP应用完整性检查

1. 前言

APK应用完整性即移动客户端程序安装后,在每次启动时都会对自身文件进行完整性进行校验。防止攻击者通过反编译的方法在客户端程序中植入自己的木马,客户端程序如果没有自校验机制的话,攻击者可能会通过篡改客户端程序窃取手机用户的隐私信息。

2. APK应用完整性检查

1. 使用Apktools反编译APK文件

进入apktool文件夹下,输入以下命令,反编译apk文件

apktool d xxxxx.apk

apktool d xxxxx.apk

反编译结果,生成同名文件夹
生成同名文件夹

2. 修改编译后的文件

这里可以选择修改smali文件或者修改图片内容,这里选择修改smail文件

修改图片:可以替换图片、修改图片内容,但是要保持后缀名相同
修改Smail文件:添加Smail代码,例如静态变量、函数等等,或者修改原有的smail代码,但是要注意修改的内容

这里我们打开res/values/strings.xml文件,修改app的名字

修改app名字

3. 重新打包

如果出现下面这种情况,则说明打包失败,该app存在完整性校验,如果打包完成则需要跟进一步的测试来确定是否真的存在完整性问题。
打包失败

4. 签名

如果打包成功了,接下来我们就对apk文件进行签名

打包成功

keytool -genkeypair -keystore 密钥库名 -alias 密钥别名 -validity 天数 -keyalg RSA

创建签名

查看签名

对apk进行签名

5. 完整性验证

在Android模拟器或者安卓手机上面安装打包后的APP,看是否可以成功安装,如果可以成功安装则说明存在“完整性校验问题”,如果不能安装成功,则说明不存在“完整性问题”。

猜你喜欢

转载自blog.csdn.net/ssjjtt1997/article/details/98947034