Как определить, что приложение iOS работает на взломанном телефоне? - PullRequest
155 голосов
/ 05 января 2009

Если я хочу, чтобы мое приложение по-разному работало на взломанном iPhone, как бы я определил это?

Ответы [ 17 ]

4 голосов
/ 22 января 2015

Некоторые общие файлы для проверки: /Library/MobileSubstrate/MobileSubstrate.dylib

/Applications/Cydia.app

/var/cache/apt

/var/lib/apt

/var/lib/cydia

/var/log/syslog

/var/tmp/cydia.log

/bin/bash

/bin/sh

/usr/sbin/sshd

/usr/libexec/ssh-keysign

/etc/ssh/sshd_config

/etc/apt

Большинство проверяют файлы, связанные с Cydia.

3 голосов
/ 13 сентября 2012

То, что мы сделали, у нас уже есть канал RSS для общения с нашими пользователями ( Stocks Live ), мы добавили новость, которая гласит что-то вроде этого:

Некоторые взломанные устройства имеют проблемы, бла-бла, мы взломали, чтобы решить эти проблемы, но нам нужно знать, является ли это взломанным устройством или нет, нажмите здесь, чтобы приложение исправило проблему. Если вы когда-нибудь вернетесь в нормальное состояние, то есть удалили джейлбрейк, нажмите здесь.

Затем вы обрабатываете взаимодействие с пользователем и делаете то, что нужно, например, ведете себя по-другому и т. Д. *

3 голосов
/ 14 мая 2013

Попробуйте найти файл, созданный cydia или взломанным устройством. Или попробуйте записать файл вне черного ящика приложения. Если вам это удастся, устройство взломано / взломано:)

- (BOOL)jailbroken
{
    NSFileManager * fileManager = [NSFileManager defaultManager];
    return [fileManager fileExistsAtPath:@"/private/var/lib/apt/"];
}
3 голосов
/ 05 января 2009

Я бы посоветовал искать файлы, которых нет на «ванильном» iPhone. Все комплекты для джейлбрейка, которые я видел, устанавливают ssh. Это может быть хорошим индикатором взломанного телефона.

1 голос
/ 22 апреля 2016

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

0 голосов
/ 01 июня 2018

Вот мои решения:

extension UIDevice {
    func isJailBroken() -> Bool {
        var jailBroken = false
        let cydiaPath = "/Applications/Cydia.app"
        let aptPath = "/private/var/lib/apt/"
        if FileManager.default.fileExists(atPath: cydiaPath) {
            jailBroken = true
        }
        if FileManager.default.fileExists(atPath: aptPath) {
            jailBroken = true
        }
        return jailBroken
    }
}

и вызовите его внутри viewDidLoad() внутри контроллера вида экрана запуска (или любого другого виртуального канала, которому вы звоните впервые):

    if UIDevice.current.isJailBroken() {
       // show a blank screen or some other view controller
       let jailbreakVC = JailBrokenViewController()
       self.navigationController?.present(jailbreakVC, animated: true, completion:nil)
    } else {
     // continue executing your next View controller
     let nextVC = NextViewController()
     self.navigationController?.present(nextVC, animated: true, completion:nil)
    }
0 голосов
/ 09 июня 2012

Попробуйте получить доступ к /Application/Preferences.app/General.plist Вы должны быть в состоянии сделать это на взломанном iPhone На телефоне не Jb вы не сможете получить к нему доступ

...