반응형
탈옥탐지3 - system(0)
system(0); 함수 호출 시 반환값을 보고 탈옥여부를 판단한다.
/bin/sh가 있는지 여부에 따라서 return 값이 달라지므로 이걸 보고 판단하는 것.
- return 0 : 비탈옥장치 (정상장치)
- return 1 : 탈옥장치
예시코드(앱에 적용)
+(BOOL)doShell{
if(system(0)) //system(0) 호출결과를 보고 탈옥판단
return YES;
return NO;
}
우회코드(MobileSubstrate로 후킹)
static int (*old_system)(char *) = NULL;
int st_system(char* cmd){
if(!cmd)
return nil;
return old_system(cmd);
}
__attribute__((constructor)) static void initialize()
{
MSHookFunction(system, st_system, &old_system); //system()함수 구현부 후킹
}
하지만
ios11부터 system()함수 사용 불가.
==> /bin/sh 존재여부 확인으로 대체하자.
반응형
'iOS 앱 점검(ObjC) > JB탐지&우회' 카테고리의 다른 글
ios 탈옥탐지6 - cydia scheme detection (0) | 2020.07.27 |
---|---|
ios 탈옥탐지5 - 동적라이브러리 탐지 (0) | 2020.07.27 |
ios 탈옥탐지4 - 루프백 테스트 (서비스 탐지) (0) | 2020.07.21 |
ios 탈옥탐지2 - 파일시스템 검사 (2) | 2020.07.20 |
ios 탈옥탐지1 - 샌드박스 무결성 검사 (잘못 알려진 내용) (0) | 2020.07.20 |