iOS 앱 점검(ObjC)/JB탐지&우회

ios 탈옥탐지3 - system(0) (ios 11이후 사용불가)

nightohl 2020. 7. 21. 13:46
반응형

탈옥탐지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()함수 구현부 후킹
}

하지만

system() 함수 사용불가

ios11부터 system()함수 사용 불가.

==> /bin/sh 존재여부 확인으로 대체하자.

 

반응형