编辑点评:多功能去签工具
用户自己制作的一款apk签名分析工具,Apk分析 Pro+是一个支持中文的免费工具,软件中用户可以一键去除一些低中稍高的签名校验,还可以支持多种方式一键去签,对于喜欢研究apk文件的朋友来说非常实用。
Apk分析 Pro+使用注意
1、因为某加固问题导致首次启动较慢。
2、第二次启动或多次启动几次即可解决。
软件特色
可一键去除一些低中稍高的签名校验
支持多种方式一键去签
很专业的apk分析工具
支持文件标签时间转换,十六进制转换
APK签名校验分析
找到PackageParser类,该类在文件“frameworks/base/core/java/android/content/pm/PackageParser.java”中。PackageParser类的collectCertificates方法会对APK进行签名校验,在该方法会遍历APK中的所有文件,并对每个文件进行校验。
APK是一个ZIP格式的文件所以使用ZIP相关的类进行读写。上面代码中调用了loadCertificates方法,这个方法返回一个二维数组,如果APK中的文件签名校验失败那么loadCertificates方法会返回一个空数组(可能是null,可能是数组长度为0),按照上面代码的逻辑如果数组为空则会抛出异常。
verifiedEntries是一个键值对,键是APK中经过了签名的文件名,如:classes.dex文件,值是证书数组。如果向已经签过名的APK中新添加一个文件然后安装这个APK,当程序逻辑执行到JarVerifier.getCertificateChains方法中时,在verifiedEntries变量中无法找到新添加的文件名(因为这个新文件是在APK签名之后添加),那么JarVerifier.getCertificateChains方法将返回null。
扩展阅读
安卓系统本身在安装app时会对app验证签名。
测试步骤: 在本机上有一个低版本的app,然后安装一个高版本的app(分发时用不同的证书签名),
安装提示:安装失败“更新包与已安装应用的签名不一致”
建议卸载,卸载当前版本后,可以安装成功!(这个没法控制用户,,所以可以考虑在app启动时验证签名)
App启动时检测签名是否正确
对比apk签名证书的SHA1值是否自己用的签名证书的值,而不是被别人篡改过的证书的值(防止自己的应用被反编译后重新打包)
1、获取自己对app分发时签名证书的SHA1值
首先进入CMD,然后输入:
keytool -exportcert -list -v -alias huyNew -keystore "C:\Users\huy\AppData\Local\Xamarin\Mono for Android\Keystore\huyNew\huyNew.keystore"
回车
在提示下输入密钥口令(是自己设置的密码) (注:此时输入字符cmd是不显示的,请输入完整后直接回车。如果失败说明你输错了)
热门评论
最新评论