2013-11-12 2 views
0

Я немного поиграл с подписью APK в андроиде, и я хотел бы задать несколько дополнительных вопросов.Подписание приложения - изменения в APK

Я знаю, что MANIFEST.MF содержит SHA-1 хэши всех файлов в APK. Я знаю, что CERT.SF содержит хэш манифеста и хэши всех манифеста. И затем есть CERT.RSA, который содержит сертификат RSA из хранилища ключей, используемого для подписания APK.

Я смог воспроизвести содержимое MANIFEST.MF и CERT.SF, но я не могу найти, как CERT.RSA «подключен» к этим файлам.

Что я имею в виду: если я изменяю содержимое APK (например, заменяю значок приложения), то, конечно, во время установки я получаю исключение, говоря, что хэш в MANIFEST и реальный хэш разные. Но когда я обновляю хэши в MANIFEST и CERT, так что они верны, я по-прежнему получаю Invalid Certificate Exception во время установки. Но на этот раз в самом первом файле ресурсов в apk.

Итак, как Android знает, что я что-то изменил в apk, даже когда обновил хэши? Я вижу, что это как-то связано с CERT.RSA, но я изо всех сил пытаюсь выяснить, как это работает.

EDIT, если говорить более четко: все, кроме упомянутых выше, должно соответствовать, чтобы Android считал, что APK действителен?

ответ

0

Итак, я сделал еще несколько исследований и наткнулся на этот большой разговор с BlackHat конференции: http://youtu.be/ExX9_BN9XL8

Это о Andorid Master Key Exploit, который тесно связан с подписанием APK. Хотя я все равно буду ценить более глубокое объяснение некоторых криптографических процессов под капотом всего этого, этот разговор - отличное начало. Я определенно рекомендую его всем, кто интересуется этой темой. (Если вы знаете связанные ПЕРЕГОВОРОВ/тексты, пожалуйста, поделитесь им в качестве комментария или ответа)

Если я найду что-нибудь более основательное, я добавлю это здесь позже для будущих поколений :) До тех пор, реальный ответ есть: читать исходный код ...

Смежные вопросы