能力值:
( LV5,RANK:60 )
|
-
-
2 楼
refer:https://www.jianshu.com/p/cc7d8c3b104e APK要想安装成功,在校验的过程中要满足如下三个条件: MF文件中的SHA-1值与对应文件的真实SHA-1值要相等(不计META-INF目录) SF文件中的SHA-1值与MF文件本身与文件中的各子项作SHA-1和Base64编码后相等 SF文件的签名信息与RSA文件的内容要一致
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
那篇文章有误,需要先hook签名:http://blog.sina.com.cn/s/blog_92b6d74d0102uzgc.html
|
能力值:
( LV5,RANK:60 )
|
-
-
4 楼
soga 感谢
|
能力值:
( LV5,RANK:60 )
|
-
-
5 楼
根据报错信息 java.lang.SecurityException: Incorrect signature 12-19 00:49:24.420: W/PackageParser(913): java.lang.SecurityException: Incorrect signature 12-19 00:49:24.420: W/PackageParser(913): at org.apache.harmony.security.utils.JarUtils.verifySignature(JarUtils.java:223) 去JarUtils.java:看源码得知是这里 if(!sig.verify(sigInfo.getEncryptedDigest())) {
throw new SecurityException("Incorrect signature");
}
这里是验证CERT.RSA里的签名信息正确与否,所以这里应该直接跳过就OK了。
绕过的检验函数的两种
方式
: 1:pull 出手机里检验签名的odex (framework/core.odex) 修改 再push回去
2:hook这个校验函数 public void initZygote(StartupParam startupParam) throws Throwable {
XposedHelpers.findAndHookMethod("java.security.Signature",null,"verify", byte[].class,new XC_MethodHook(){
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedBridge.log("disabled verifysignature......");
param.setResult(Boolean.TRUE);
}
});
所以结论就是那个文章里没有提到手机已经装了xposed插件hook过签名了。感谢上面那位兄弟的解答 完整的在这里 http://blog.sina.com.cn/s/blog_92b6d74d0102uzgc.html
参考这篇... https://bbs.pediy.com/thread-190876-1.htm
最后于 2018-8-29 16:57
被endlif编辑
,原因: 文字错误
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
framework/base/core/java/android/content/pm/PackageParser.java
|
|
|