[목차]
2. 실습
- Check For Jailbreak
- Show Alert
- Kill Application
3. 대응 방안
2. 실습
2-2) Check For Jailbreak
목표: 디바이스가 Jailbreak 되지 않았음을 항상 반환하도록
Jailbreak 된 디바이스 검사 로직 패치
ㄱ. 힌트 확인
Check For jailbreak를 누르면
탈옥 탐지가 되는데
해당 문구를 힌트 삼아 해결책을 찾아본다.
ㄴ. 분석
키워드로 분기점 확인
w0 레지스터 값이 0x0인 경우
1001cc17c로 분기를 하는데
현재 값이 0이 아니기 때문에
우측, 탈옥 탐지됨! 블럭으로
넘어가고 있다.
프리다로 w0 값을 확인해 본다.
ㄷ. 레지스터 값 확인
먼저 분기점 주소 확인 후
코드 작성
var realBase = Module.findBaseAddress('DVIA-v2')
console.log("[+] 실제 앱 주소 : " + realBase)
var Patching_point = realBase.add('0x1cbdd0')
console.log("[+] 분기점 주소 : " + Patching_point)
Interceptor.attach(Patching_point,{
onEnter:function(args){
console.log("[+] w0 레지스터 값 확인 : ")
console.log(JSON.stringify(this.context))
}
})
돌려보면
w0 값이 1이다.
w0 값이 0인 경우
탈옥 아님!으로 빠지게 되는데
해당 값이 1이니
w0을 1로 바꾼다.
ㄹ. w0 레지스터 값 패칭
변조 전
변조 후
ㅁ. 패칭 여부 확인
패칭된 바이너리 추출 후 replace,
앱을 실행하면
패치가 정상적으로 이루어져
Device is Not Jailbroken이 뜬다!
탈옥 탐지 우회
바이너리 패치 성공!
2-3) Show Alert
목표 : I love Google 대신
I Love Apple 메시지가 항상 표시되도록
메소드 패치
실습 툴 : Hxd Editor
https://mh-nexus.de/en/downloads.php?product=HxD20
바이너리 Import 후
I love Google 검색,
해당 부분을 Apple로 변조,
글자가 하나 남는데
남는 e 글자 바이너리 값인 65를
00으로 바꿔주고
패칭된 바이너리를 export,
replace 후 돌려보면
바이너리 패칭 성공!
2-4) Kill Application
목표: DVIA-v2 앱의
Application Patching > Kill Application 항목을 누르면
앱이 강제 종료되는데 종료되지 않도록 메소드 패치
ㄱ. 힌트 찾기
기드라에서 키워드 검색 (Kill, exit 등)
_exit 부분이 의심스럽고
더블클릭 후 들어가 보면
앱 종료 코드 및
참조하고 있는 곳 확인이 가능하고
패칭이 필요한 곳은 마지막의
ApplicationPatching 부분일 것이다.
더블클릭 후 들어가면
bl이라는 어셈블리 코드 확인이 가능한데
(bl : 지정된 곳으로 분기시키는 명령어)
해당 어셈블리 및 관련 기능을 사용하는
부분들을 모두 NOP으로 변조해 주면
아무런 동작을 하지 않게 될 것이다.
마지막 ret는 남겨두고
모두 nop 처리 후
해당 바이너리로 replace 후
실행해 보면
kill을 마구 눌러도 종료되지 않는다!
바이너리 패칭 성공!
3. 대응 방안
위변조 탐지 : 애플리케이션 바이너리 해시 값 검증 (코드 무결성 검증)
• 악성코드 삽입 및 실행, 보안 솔루션 우회, 인증 절차 우회 등
[도움 출처]
: 보안프로젝트 김태영 팀장 iOS 모바일 앱 모의해킹(기초) 강의
'APP 진단 > iOS' 카테고리의 다른 글
[+] 프로젝트 - 프리다 탈옥 탐지 우회 PoC (0) | 2023.03.21 |
---|---|
23. Touch/Face ID Bypass (0) | 2022.11.27 |
21. Application Patching 1 (0) | 2022.11.26 |
20. Network Layer Security (feat. 버프 프록시 설정) (1) | 2022.11.25 |
19. WebView Issues (0) | 2022.11.24 |