Редактирование заголовков файла .dex перед подписанием apk - PullRequest
0 голосов
/ 02 сентября 2018

Я особенно новичок в Android Security Realm и пытаюсь понять, как Android во время установки (и выполнения) apk-файла проверяет его целостность. Просто чтобы попробовать свои силы, я попытался перекомпилировать apk с тремя файлами .dex и изменить один байт содержимого в разделе заголовка только одного из классов .dex, используя Hex Editor, прежде чем подписать его. Приложение установлено на устройстве практически без нареканий, но гораздо быстрее, чем обычно. При попытке запустить приложение, как и ожидалось, оно зависло, сообщив, что не может найти класс приложения, а требуемый файл .dex отсутствует в пути / system / ....

Я хочу понять, почему приложение успешно установлено в первую очередь, и Android не жаловался на повреждение во время установки. Кроме того, каковы проверки, которые фактически выполняет Android во время установки, которая обнаруживает это повреждение.

P.S .: Я изменил один байт в заголовке SHA-1 одного из файлов .dex (в частности, classes.dex)

1 Ответ

0 голосов
/ 02 сентября 2018

Как вы обнаружили, неверный dex-файл не приведет к сбою установки. Как правило, как часть процесса установки, art оптимизирует и компилирует файл dex, результатом которого является oat-файл. Именно во время этого процесса проверяется целостность файла dex.

Вы можете взглянуть на источник искусства, чтобы увидеть, какие виды проверки он выполняет в файле dex. Смотрите, например здесь , но и в других местах.

...