Вопрос или проблема
У меня есть сомнение относительно тестирования на проникновение iOS-приложений.
Я провожу тестирование одного iOS-приложения. Приложение защищено программным обеспечением MDM.
Процесс установки – После установки MDM на устройство iPhone и предоставления учетных данных VPN-сервера, компания устанавливает приложение с сервера (это значит, что мне не нужно загружать приложение из магазина приложений). Таким образом, приложение устанавливается на iOS-устройство конечного пользователя.
Когда я исследовал структуру файлов/папок, я нашел основной исполняемый файл приложения и его поддерживающие DLL-файлы вместе с традиционными файлами iOS-приложения в одной папке.
Мой вопрос – Это неправильная конфигурация или, возможно, существует какая-то связь между iOS и исполняемыми/DLL-файлами? Зачем они там? Есть ли какое-либо применение EXE и DLL на устройствах iOS? На основании моего понимания, на устройствах iPhone нет применения EXE и DLL файлов. Я прав?
Предположение – Я не проверял их Android-приложение. Если бы я нашел то же самое там, то я бы предположил, что у них есть универсальный пакет, который они устанавливают на все типы конечных устройств, такие как Android, Windows Desktop, iPhone и т. д.
Может ли это быть причиной? Поиск в Google показал, что приложение могло быть создано с использованием технологии Xamarin – https://www.visualstudio.com/xamarin/
Как вы уже заметили, приложения на Mono/.NET компилируются в .exe и .dll файлы даже для систем, отличных от Windows. Обратите внимание, что эти файлы на самом деле не содержат нативного кода вашего приложения, они по сути являются оберткой для архива кодов .NET IL. Если мне не изменяет память, причина, по которой .NET приложение обернуто в .exe, заключается в том, что если вы попытаетесь запустить приложение на старом Windows, на котором не установлен .NET Framework, приложение выведет сообщение об ошибке с просьбой установить .NET Framework. На других платформах запуск этих .NET .exe файлов требует наличия нативной обертки для распаковки IL-кода из .exe/.dll файлов.
Приложение было создано с использованием Xamarin Forms (разработка гибридных приложений), которая может поддерживать импорт DLL (библиотек динамической компоновки) в устройстве iOS.
Нет применения EXE и DLL файлов на устройствах iPhone. Я прав?
Нет. Они могли создать нативную библиотеку, которая требует DLL-файла и обертки кода для взаимодействия между кодом iOS и нативной библиотекой. Таким образом, DLL является распространенным в iOS-приложении, если оно содержит нативную библиотеку.
Посмотрите эту ссылку
Ответ или решение
На iOS-устройствах EXE и DLL файлы не имеют традиционного применения, как на Windows, поскольку операционная система iOS не поддерживает выполнение исполняемых файлов в формате EXE, а также не использует DLL (Dynamic Link Library) в их привычном восприятии. Однако, в контексте мобильной разработки, особенно с использованием кросс-платформенных технологий, таких как Xamarin, ситуацию можно объяснить более подробно.
Использование EXE и DLL файлов на iOS
-
Кросс-платформенная разработка: Когда приложение разрабатывается с помощью Xamarin или других аналогичных технологий, создаются сборки, которые могут содержать выходные данные в виде EXE и DLL файлов. Эти файлы по своей сути не являются нативными для iOS, но они могут включать средний код (IL – Intermediate Language) .NET, который затем интерпретируется и выполняется на iOS устройствах с помощью Mono runtime или других подобных механизмов.
-
EXE и DLL как обертки: EXE файлы в данном контексте чаще всего не содержат нативного кода, а служат оболочками для IL-кода, который будет выполняться на устройствах. DLL файлы могут содержать общий код, который может быть вызван из кода iOS, обеспечивая использование общего функционала.
-
Нативные библиотеки: В случае, если приложение требует использования кода, написанного на других языках (например, C или C++), разработчик может создать нативные библиотеки, которые потом могут быть интегрированы с помощью DLL. Это взаимодействие необходимо для обеспечения работы кода, использующего специфические функции нативной платформы.
-
Проблемы с конфигурацией: Если вы нашли EXE и DLL файлы в структуре файла приложения, это может указывать на то, что приложение действительно создавалось с использованием кросс-платформенных инструментов, таких как Xamarin, а не является ошибкой конфигурации. Важно понимать, что это нормально для таких технологий, которые адаптируют приложения для разных платформ.
-
Поддержка других платформ: Как вы правильно предположили, разработчик может использовать универсальные пакеты, которые поддерживают разные платформы, включая Android и Windows. В этом случае одинаковый набор файлов будет использоваться для всех платформ, но может не быть функционально активным и нужным на каждой из них.
Заключение
Таким образом, ваше предположение о том, что на устройствах iOS нет использования EXE и DLL файлов в традиционном понимании, в целом верно. Тем не менее, эти файлы могут присутствовать в результате использования кросс-платформенных технологий, которые направлены на создание единого кода для разных операционных систем. Это нормальное поведение для приложения, созданного с использованием Xamarin или аналогичных инструментов.
Если у вас есть дальнейшие вопросы по теме или требуется более детальное объяснение, пожалуйста, дайте знать!