탈옥 관련 파일 존재 여부 확인

 

1. 탈옥 관련 파일 존재 여부 확인

 
샌드박스된 앱도 샌드박스 외부에 존재하는 파일의 상태정도는 조회할 수 있다.
  • 대표적인 서드파티 앱
  • 탈옥 시 설치되는 다양한 파일
위의 파일 존재 여부를 확인하여 탈옥 상태를 판단한다.
 
로우레벨의 C함수 사용
  • fopen()
  • stat() : 파일 존재 시 0, 없다면 -1 반환
  • access()
ex) stat() 함수를 이용한 파일존재여부 판단 예시
//Cydia 설치여부를 확인하여 탈옥 감지 struct stat s; int is_jailbroken = stat("/Applications/Cydia.app", &s) == 0;
 
NSFileManager 클래스의 메소드들
  • fileExistsAtPath:
  • changeCurrentDirectoryPath:
ex) fileExistsAtPath 함수 예시
+(BOOL)doCydia{ if([[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"]) return YES; return NO; }
 
목록
/jb /usr/sbin/sshd /usr/libexec/ssh-keysign /usr/libexec/sftp-server /bin/bash /bin/sh /bin/sw /etc/apt /etc/fstab /etc/ssh/sshd_config /Applications/blackra1n.app /Applications/Cydia.app /Applications/Cydia.app/Info.plist /Applications/Cycorder.app /Applications/Loader.app /Applications/FakeCarrier.app /Applications/Icy.app /Applications/IntelliScreen.app /Applications/MxTube.app /Applications/RockApp.app /Applications/SBSettings.app /Applications/WinterBoard.app /Applications/Cydia.app /Library/MobileSubstrate/MobileSubstrate.dylib /Library/LaunchDaemons/com.openssh.sshd.plist /Library/Frameworks/CydiaSubstrate.framework /Library/MobileSubstrate /Library/MobileSubstrate/ /Library/MobileSubstrate/DynamicLibraries/ /Library/MobileSubstrate/DynamicLibraries/LiveClock.plist /Library/MobileSubstrate/DynamicLibraries/Veency.plist /Library/MobileSubstrate/DynamicLibraries/xCon.plist /private//var/cache/apt /private/var/lib/apt /private/var/lib/apt/ /private/var/lib/cydia /private/var/log/syslog /private/var/mobile/Library /private/var/mobile/Library/SBSettings/Themes /private/var/stash /private/var/tmp/cydia.log /System/Library/LaunchDaemons/ /System/Library/LaunchDaemons/com.ikey.bbot.plist /System/Library/LaunchDaemons/com.saurik.Cydia.Startup.plist
... (그 외 알아서)