Обнаружение взломанного устройства iOS с помощью запуска неподписанного исполняемого файла - PullRequest
5 голосов
/ 05 октября 2011

В настоящее время я пытаюсь создать повторно используемую библиотеку безопасности objC для разработчиков в моей компании. В этой библиотеке я хотел бы иметь API, который обнаруживает, если их устройство iOS взломано. Я заметил умный ответ GregH , который похож на то, что делает iBooks ; вы запускаете неподписанную версию исполняемого файла (iOS запускается при запуске приложения через вызов execve sys), если он возвращает, вы знаете, что устройство взломано.

Вопрос: возможно ли упаковать исполняемый файл в библиотеку iOS и вызвать его через какую-то функцию? Если так, что может быть лучшим способом для этого?

Спасибо за вашу помощь, кс

Ответы [ 2 ]

1 голос
/ 05 октября 2011

В последний раз я проверял, приложения для песочницы не могут даже fork(). Я не уверен, что они могут позвонить execve(). Если они не могут этого сделать, просто позвоните execve(), и это сработает.

Я не уверен, насколько джейлбрейк мешает этому. Возможен джейлбрейк, который позволяет запускать неподписанные приложения из неподписанных приложений, но ведет себя нормально, если подписчик подписан.

Вполне возможно "упаковать" исполняемый файл в библиотеку: просто наберите static unsigned char const data [] = { ... };, запишите его в файл chmod() и попробуйте выполнить его.

Однако, в конце концов, это может оказать плохую услугу вашим пользователям. Взломанный телефон не означает, что ваше приложение было пиратским. Если вы не знаете кого-то с джейлбрейкнутым телефоном, который готов провести некоторое тестирование (и тестирование с различными джейлбрейками), вы можете настроить себя на "Это просто сбой!" отзывы.

(И если это произойдет сбой, то кто-то придет и взломать ваше приложение. Лучше быть осторожным и отслеживать «проблему», прежде чем решить, нужно ли это исправить.)

Побег из тюрьмы случается чаще, чем вы думаете. Я добавил проверки для MobileSubstrate в наш автоматический скрипт, символизирующий отчет о сбоях, потому что мы видели его в значительной части сбоев. OTOH, доля сбоев, когда приложение установлено в / Applications (который раньше был традиционным для взломанных приложений; возможно, это уже не так), незначительна.

0 голосов
/ 29 августа 2012

Я попытался упаковать исполняемый файл в приложение IOS, добавив исполняемый файл из проекта, функция main () которого просто возвращает целое число в мой проект. Этот файл копируется на телефон при развертывании, но копируется без разрешения на выполнение. Попытка chmod файла, чтобы дать ему выполнить приводит к ошибке «Операция не разрешена», несмотря на то, что владелец файла такой же, как текущий пользователь (мобильный).

...