本文主要是介绍炒的沸沸扬扬的android 大漏洞poc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://gist.github.com/poliva/36b0795ab79ad6f14fd8
问题:
The appearance of two files with identical names in a JAR/ZIP/APK archive will provide application scanners with a simple signature for detecting modified archives and, presumably,
说白了,就是一个zip里面部署了2个同名的dex。一个签名一致的,一个篡改了的也就是签名不一致的。
安装时校验签名的时候是用的framework的ZipFile实现,用的是没修改的class.dex,认证通过。而安装完毕dexopt的时候,使用修改过class.dex。 这其实没问题。
关键的问题就是同名entry的问题,就是一个zip里面同名dex的问题。
下面的代码修复就是检测同名的:
原代码:
for (int i = 0; i < numEntries; ++i) {
ZipEntry newEntry = new ZipEntry(hdrBuf, bin);
mEntries.put(newEntry.getName(), newEntry);
}
修补后:
for (int i = 0; i < numEntries; ++i) {
ZipEntry newEntry = new ZipEntry(hdrBuf, bin);
String entryName = newEntry.getName();
if (mEntries.put(entryName, newEntry) != null) {
throw new ZipException("Duplicate entry name: " + entryName);
}
}
POC:
这篇关于炒的沸沸扬扬的android 大漏洞poc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!