[iOS 앱 진단] DVIA-v2 Jailbreak Test2
Jailbreak Test1에 이어 Test2 문제를 풀어보았다.
먼저 탈옥 탐지를 담당하는 DVIA-v2 내의 Class를 추출하기 위해 스크립트를 짰다.

그리고 frida를 실행시켰다.
frida -U -l classes.js DVIA-v2 | grep Jailbreak

아래와 같이 Method를 추출하기 위해 스크립트를 짰다.

그리고 frida를 실행시켰다.

Class와 Method를 추출했다.
그리고 return 값을 확인하는 스크립트를 짰다.

frida를 실행시켜 return 값을 추출했다.
frida -U -l returnvalue.js DVIA-v2

Jailbreak test2 응용 프로그램을 탭 할 때, 1의 부울 값이 Method로 return 되는 것을 알았다.
이제 return 값을 변조하기 위해 스크립트를 짰다.

이 코드를 사용하면 클래스, 메서드 및 반환 할 새 값을 정의해야 한다. 앞에서 0x1을 봤기 때문에, 부울의 반대는 0x0일 것이다. 따라서 반환 값(newretval)은 0x0 으로 지정될 것이다.
이제 frida를 실행시켰다.
frida -U -l overwrite.js DVIA-v2

아이폰에서 Jailbreak test2를 다시 탭 하면 ‘Device is Not Jilbroken’ 이라는 팝업 창을 볼 수 있었다.

[참고 사이트]
https://philkeeble.com/ios/reverse-engineering/iOS-Bypass-Jailbreak/
Bypassing JailBreak Detection - DVIAv2 Part 2
A guide on how to bypass jailbreak detection on the DVIAv2 app for iPhones.
philkeeble.com