能力值:
( LV5,RANK:60 )
|
-
-
2 楼
refer:095K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2B7K9h3q4F1M7$3S2#2i4K6u0W2j5$3!0E0i4K6u0r3M7q4)9J5c8X3y4U0y4$3b7^5j5K6y4T1x3e0l9@1k6b7`.`. APK要想安装成功,在校验的过程中要满足如下三个条件: MF文件中的SHA-1值与对应文件的真实SHA-1值要相等(不计META-INF目录) SF文件中的SHA-1值与MF文件本身与文件中的各子项作SHA-1和Base64编码后相等 SF文件的签名信息与RSA文件的内容要一致
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
那篇文章有误,需要先hook签名:c77K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2K6K9h3&6S2i4K6u0W2j5$3!0E0i4K6u0W2j5$3&6Q4x3V1k6K6i4K6u0r3j5X3I4G2k6#2)9#2k6U0V1J5j5U0k6V1y4K6c8V1x3o6p5H3x3Y4g2*7k6$3y4Q4x3X3g2Z5N6r3#2D9
|
能力值:
( 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过签名了。感谢上面那位兄弟的解答 完整的在这里 65eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2K6K9h3&6S2i4K6u0W2j5$3!0E0i4K6u0W2j5$3&6Q4x3V1k6K6i4K6u0r3j5X3I4G2k6#2)9#2k6U0V1J5j5U0k6V1y4K6c8V1x3o6p5H3x3Y4g2*7k6$3y4Q4x3X3g2Z5N6r3#2D9
参考这篇... 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
|
|
|