크래시 방식 탈옥 탐지 로직 분석 방법 문의 드립니다.
holiam
7
1391
2023.08.16 17:39
개인 버그바운티 공부 차 타사 금융 앱을 대상으로 탐지 우회를 공부하고 있습니다.
안드로이드 / iOS 분석 중인데 안드로이드의 경우
자체 탐지 크래시 로직 / 솔루션 탈옥 탐지 로직 별도로 구성되어 둘다 우회 완료하였고
iOS의 경우도 동일하게 자체 탐지 및 크래시 로직이 존재하며 정적으로 앱 바이너리 복호화는 완료 하였으나 이후 진전이 되지 않습니다.
lldb-10으로 앱 타겟으로 잡고 시작 할 경우 Bus error : 10이 확인되며 정상적으로 디버깅이 정상적으로 되지 않습니다.
해당 탐지 로직에 대해 분석 접근 방법을 알 수 있을까요?
frida로 실행하였을 경우 크래시 로그는 아래와 같습니다.
최초 실행 바이너리 로드되느 주소값은 0x100000000 입니다.
***
Incident Identifier: A62AFE55-5D36-425B-80CE-1AD6ABEF0E9D
CrashReporter Key: d28ce08974bbfa99d975016d0663beacd0487ae8
Hardware Model: iPhone13,2
Process: ~~
Path: /private/var/containers/Bundle/Application/~~
Identifier: ~~
Version: 9 (1.27.00)
AppStoreTools: 14E221
AppVariant: 1:iPhone13,2:14
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: ~~
Date/Time: 2023-08-16 16:47:42.8631 +0900
Launch Time: 2023-08-16 16:47:42.4507 +0900
OS Version: iPhone OS 14.2 (18B92)
Release Type: User
Baseband Version: 1.14.05
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_PROTECTION_FAILURE at 0x00000002053a6a98
VM Region Info: 0x2053a6a98 is in 0x2053a3c08-0x2053a91b0; bytes after start: 11920 bytes before end: 10007
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
__DATA 2053992e8-2053a3c08 [ 42K] rw-/rw- SM=COW .../WebKitLegacy
---> unused shlib __DATA 2053a3c08-2053a91b0 [ 21K] rw-/rw- SM=COW ... this process
__DATA 2053a91b0-2053ad154 [ 16K] rw-/rw- SM=COW ...work/ClassKit
Termination Signal: Bus error: 10
Termination Reason: Namespace SIGNAL, Code 0xa
Terminating Process: exc handler [6490]
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 ??? 0x00000002053a6a98 0 + 8677649048
1 libdyld.dylib 0x00000001ae9556c0 start + 4
안드로이드 / iOS 분석 중인데 안드로이드의 경우
자체 탐지 크래시 로직 / 솔루션 탈옥 탐지 로직 별도로 구성되어 둘다 우회 완료하였고
iOS의 경우도 동일하게 자체 탐지 및 크래시 로직이 존재하며 정적으로 앱 바이너리 복호화는 완료 하였으나 이후 진전이 되지 않습니다.
lldb-10으로 앱 타겟으로 잡고 시작 할 경우 Bus error : 10이 확인되며 정상적으로 디버깅이 정상적으로 되지 않습니다.
해당 탐지 로직에 대해 분석 접근 방법을 알 수 있을까요?
frida로 실행하였을 경우 크래시 로그는 아래와 같습니다.
최초 실행 바이너리 로드되느 주소값은 0x100000000 입니다.
***
Incident Identifier: A62AFE55-5D36-425B-80CE-1AD6ABEF0E9D
CrashReporter Key: d28ce08974bbfa99d975016d0663beacd0487ae8
Hardware Model: iPhone13,2
Process: ~~
Path: /private/var/containers/Bundle/Application/~~
Identifier: ~~
Version: 9 (1.27.00)
AppStoreTools: 14E221
AppVariant: 1:iPhone13,2:14
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: ~~
Date/Time: 2023-08-16 16:47:42.8631 +0900
Launch Time: 2023-08-16 16:47:42.4507 +0900
OS Version: iPhone OS 14.2 (18B92)
Release Type: User
Baseband Version: 1.14.05
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_PROTECTION_FAILURE at 0x00000002053a6a98
VM Region Info: 0x2053a6a98 is in 0x2053a3c08-0x2053a91b0; bytes after start: 11920 bytes before end: 10007
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
__DATA 2053992e8-2053a3c08 [ 42K] rw-/rw- SM=COW .../WebKitLegacy
---> unused shlib __DATA 2053a3c08-2053a91b0 [ 21K] rw-/rw- SM=COW ... this process
__DATA 2053a91b0-2053ad154 [ 16K] rw-/rw- SM=COW ...work/ClassKit
Termination Signal: Bus error: 10
Termination Reason: Namespace SIGNAL, Code 0xa
Terminating Process: exc handler [6490]
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 ??? 0x00000002053a6a98 0 + 8677649048
1 libdyld.dylib 0x00000001ae9556c0 start + 4