본문 바로가기

ios 탈옥탐지5 - 동적라이브러리 탐지 ios 탈옥탐지5 - 동적라이브러리 탐지 (추천) dyld 관련 함수들로 이상 동적라이브러리를 탐지한다. _dyld_image_count() _dyld_get_image_name() 위 같은 함수들로 현재 로드된 dylibs 개수와 이름 등을 조사하여 후킹 여부를 판단한다. 앱 자체 바이너리를 패치하지 않고는 일반적으로 후킹을 통해 탈옥탐지 로직을 우회하므로 효과적인 방법이 된다. 패치 자체가 dylib 삽입으로 진행되므로 공격자 입장에선 상당히 귀찮아진다.
ios 탈옥탐지2 - 파일시스템 검사 ios 탈옥탐지2 - 파일시스템 검사 1. 탈옥 관련 파일 존재 여부 확인 샌드박스된 앱도 샌드박스 외부에 존재하는 파일의 상태정도는 조회할 수 있다. ==> 대표적인 서드파티 앱과 탈옥 시 설치되는 다양한 파일들의 존재 여부를 확인하여 탈옥 상태를 판단한다. * 로우레벨의 C함수 사용 fopen(), stat(), access() * NSFileManager 클래스 fileExistsAtPath:, changeCurrentDirectoryPath: 메소드 등 ex) stat() 함수를 이용한 파일존재여부 판단 예시 //Cydia 설치여부를 확인하여 탈옥 감지 struct stat s; int is_jailbroken = stat("/Applications/Cydia.app", &s) == 0; ex) ..
ios 탈옥탐지1 - 샌드박스 무결성 검사 (잘못 알려진 내용) ios 탈옥탐지1 - 샌드박스 무결성 검사 (sandbox check) ios 앱 경로는 크게 두가지다. 1. 앱 샌드박스 내에 설치 기본적으로 서드파티 앱들은 신뢰할 수 없다고 가정하고 다양한 기능을 제한함. 2. 루트 파티션의 애플리케이션 폴더에 설치 ( /Applications ) 기본 탑재 앱은 샌드박스 없이 루트 경로 아래인 /Applications 에 설치된다. (샌드박스의 제한을 받지 않는다.) 물론 Cydia 등에서 받은 앱들도 웬만하면 굳이 샌드박스에 설치되지 않고 /Applications에 설치한다. 샌드박스 무결성 검사 ( "X" - 잘못 알려진 내용 ) 알려진 내용 : 샌드박스에선 fork()가 금지되므로, 제대로 동작했다면 샌드박스 제한을 받지 않는 상태다! --> 샌드박스 밖에 ..