Различать apk и jar файлы

Есть ли способ отличить эти два файла? Они оба определены как zip-файлы с помощью команды fileТак есть ли способ отличить их? (Вне зависимости от продления конечно).

ПРИМЕЧАНИЕ: пытаясь выполнить анализ файлов, оба этих файла проходят разный анализ, поэтому я должен иметь возможность различать их.

5 ответов

Решение

Не с официальными инструментами, вероятно, не совсем.

DEX-файлы - это файлы, преобразованные на языке, который машина Dalvik может понимать и выполнять, не обязательно java, DEX - это просто промежуточные файлы, предназначенные для виртуальной машины Dalvik, так что с технической точки зрения нет гарантии, что эти DEX-файлы взяты из jar-файла. или с языка Java.

Во время сборки, когда создается apk, весь код, который не является нативной библиотекой, помещается в файлы DEX. "Идея фляги" просто не существует и не живет в файле apk.

APK-файл - это просто JAR-файл с включенными в него дополнительными файлами, специфичными для платформы Android, такими как AndroidManifest.xml и classes.dex.

JAR-файл - это просто сжатый ZIP-файл с дополнительными метаданными (MANIFEST.MF и т. Д.) В папке (META-INF).

ZIP-файл представляет собой сжатое однофайловое представление папки.

Итак, в скорлупе орехов все 3 формата - это, по сути, просто ZIP-папка с дополнительными форматно-зависимыми файлами метаданных.

Используйте утилиту dx для Android SDK, чтобы сгенерировать все 3 формата из одного и того же файла helloWorld.java, затем hexDump 3 файла, а затем отразить их по 2 одновременно, чтобы подтвердить, что они почти идентичны, причем 4 специфичных для формата байта различны. Все остальные байты идентичны в 3 сгенерированных файлах.

APK (пакет приложений Android) - это формат файла, используемый для распространения и установки прикладного программного обеспечения для операционной системы Android. Он может использоваться только с ОС Android.

JAR (Java Archive) - это формат файла архива, обычно используемый для распространения набора классов Java. Эти файлы создаются в формате ZIP и имеют расширение.jar. Их можно использовать на нескольких устройствах, включая те, которые имеют ОС Android.

Вы можете конвертировать apk в jar и наоборот.

APK файлы сохраняются в сжатом формате.ZIP и могут быть открыты любым инструментом распаковки Zip. Вы можете переименовать расширение файла в ".zip" и открыть файл

Jar-файл сжимается и содержит другие файлы. Файлы Jar очень легко открываются. Есть много программ, которые будут открывать файлы JAR. Фактически, любая программа, которая может открывать zip-файлы, может открывать jar-файлы. Формат фляги идентичен формату файла почтового индекса. Среда выполнения Java необходима для открытия файлов Jar.

Чтобы открыть APK файлы на вашем компьютере, требуется дополнительное программное обеспечение.

Лучше всего было бы проверить содержимое zip-файла. Все .apk файлы должны содержать AndroidManifest.xml файл, поэтому наличие этого файла в индексе ZIP должно быть довольно хорошим показателем того, что у вас есть файл такого типа.

За .jar файлы, проверка на META-INF/MANIFEST.MF в индекс ZIP, вероятно, лучший вариант. Обратите внимание, что пакеты Android также включают этот манифест, поэтому проверьте, является ли файл .apk файл первым.

Вы можете использовать аналогичные приемы для других форматов на основе ZIP. Например, файлы Open Document Format включают файл mimetype чье содержимое должно указывать вам конкретный тип файла.

Apk -файлы используются только Android (установщиками программ), а jar-файлы используются в общем случае на платформе Java. Вы можете увидеть это по их значению:

  • apk: Android PacKage
  • jar: Java АРХИВ
Другие вопросы по тегам