플라이트 - iOS 앱의 루트 권한



테스트 플라이트 앱 설치 (1)

탈옥 때조차도 보안 대책이 올라감에 따라 iOS에서 루트 액세스를 얻는 것이 점점 더 어려워지고 있습니다. 루트 계정은 각 릴리스에 대한 권한이 줄어들지 만이 계정을 사용할 수 있습니다. 당신의 app 바이너리가 root : wheel에 의해 소유되었는지 확인한 다음 SETUID 비트를 설정하면됩니다.

chown root:wheel app_binary
chmod +s app_binary

그런 다음 앱에 다음을 추가하여 활용하십시오

@autoreleasepool
{
    // Set uid and gid
    if (!(setuid(0) == 0 && setgid(0) == 0))
    {
        NSLog(@"Failed to gain root privileges, aborting...");
        exit(EXIT_FAILURE);
    }

    // Launch app
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([MyAppDelegate class]));
    /* you'll need to modify this return line to match your app */
}

버전 6 이상 iOS에서이 기능을 사용하려면 시작 스크립트가 필요합니다.

#!/bin/bash
myAppPath=$(dirname "$0")
exec "$myAppPath"/myApp_ "[email protected]"

jailbroken iOS 기기를 대상으로하는 앱을 개발 중입니다. 일부 작업을 자동화하는 데 도움이됩니다. / private / var / mobile / Library에 간단한 텍스트 파일 (실제로 .lua 파일)을 만들어야합니다. 분명히 디버거는 액세스 거부 예외를 throw합니다. 이 응용 프로그램은 테스트 목적으로 'CreateFile'이라는 이름으로되어 있습니다.

루트 액세스를 얻기 위해 다음 단계를 시도했습니다.

  1. 앱을 정상적으로 빌드하십시오.
  2. 앱 번들에 실행 파일의 복사본을 만듭니다.
  3. 원래 실행 파일을 열고 내용을이 스크립트로 바꿉니다.

    #!/bin/bash
    dir=$(dirname "$0")
    exec "${dir}"/CreateFile "[email protected]"

    iOS에서는 루트 앱을 직접 실행하지 못합니다. 따라서 우리는 앱의 기본 실행 파일을 루트 실행 파일을 시작하는 스크립트로 대체합니다.

  4. 터미널에서 앱 번들로 이동합니다.

  5. chmod 0775 원래 실행 파일 및 chmod 6775 복사 된 실행 파일.
  6. 앱 번들을 / Applications로 기기에 복사합니다. SpringBoard를 다시 시작하면 좋을 것입니다. 앱이 실행되지 않으면 기기에서 5 단계와 6 단계를 반복합니다.

이 방법을 사용하면 성공적으로 응용 프로그램을 / Applications 폴더에 설치하고 실행할 수 있습니다. 그러나 응용 프로그램이 쓰기 작업을 시도하자마자 충돌이 발생하기 때문에 여전히 루트 권한이 없기를 기대합니다.

이 상황에서 누군가가 어떤 빛을 비출 수 있다면 나는 매우 감사 할 것입니다!

편집하다:

@creker의 조언에 몇 가지 추가 테스트를 했습니까? 응용 프로그램의 문서와 같이 허용 된 디렉토리에 파일을 만들려고해도 아무런 문제없이 잘 작성됩니다. 이 때문에 파일 생성이 충돌을 일으키지 않고 액세스 할 수없는 폴더 경로라는 것을 확신합니다.

또한 @creker의 충고에서 실행 스크립트없이 / Applications에 앱을 설치하려고 시도했습니다. 이 방법으로 앱을 열면 충돌이 발생합니다. 설치 후 응용 프로그램 실행 파일을 775로 chmod하면 응용 프로그램이 열리지 만 파일을 만들 때 여전히 충돌합니다.

나는 크래시 리포터로부터 syslog를 들여다 보았다. 다음은 충돌 선입니다.

System.UnauthorizedAccessException: Access to the path "/private/var/mobile/Library/test.txt" is denied

여전히 문제를 해결하기를 희망하는 어떤 아이디어라도 환영합니다!





jailbreak