Microsoft사의 Seeing AI 앱은 시각장애인을 위한 앱으로, 17개가 넘는 통화를 대상으로 통화 탐지를 하는 기능을 AI를 통해 제공한다.
통화 탐지를 하는 모델 추출을 진행한다.
https://apkpure.com/ 에서 APK 파일을 다운로드한다.
apktool 도구를 이용하여 APK 파일을 디컴파일 및 압축 해제한다.
이를 통해 앱에 필요한 바이너리나 리소스를 확인할 수 있다.
일단, MacOS에서 apktool을 설치하기 위해 다음 과정을 진행한다.
brew install apktool
바이너리와 스크립트를 다운로드해서 /usr/local/bin에 위치시키는 방법도 있는데, 이거는 Java SDK가 설치되어 있어야 해서 brew가 관련 dependency도 모두 다운로드해줘서 더 편하다.

apktool를 입력해서 정상적으로 실행되는지 확인한다.
XAPK 파일의 경우, 안드로이드 APK 패키지 파일을 위한 완전히 새로운 파일 형식 표준으로, 앱에 필요한 모든 APK 파일 및 obb 파일을 포함한다. 실제 APK 파일의 경우 압축 형태인 XAPK 파일의 root에 위치한다고 한다.

file 명령어로 확인해볼 수 있듯이, XAPK 파일은 ZIP 압축 파일이다. 따라서 unzip을 통해 압축 해제를 진행한다.

이제 com.microsoft.seeingai.apk를 apktool을 통해 unpack한다.
apktool d com.microsoft.seeingai.apk

unpack된 apk 경로 내부의 smali 코드를 봐본다.
smali 코드는 DEX 파일을 사람이 이해할 수 있게 한 저수준 언어이다. DEX 파일은 Java/Kotlin 언어가 컴파일되면 생성되는 파일이다.
smali 코드는 DEX 파일을 disassemble한 어셈블리 언어라고도 할 수 있다.
Tensorflow Lite가 경량 디바이스에 적합하여 안드로이드 앱의 추론 엔진으로 많이 사용된다고 한다.

분석 포스팅 글과 구조는 조금 달라졌지만, 검색 기능을 통해 org.tensorflow.lite 위치를 찾을 수 있었고, 해당 경로에 동일하게 NativeInterpreterWrapper.smali 코드를 확인할 수 있었다.
모바일 앱 연구에서는 Frida 위에서 동작하며, Frida 스크립트 번들을 포함하는 Android / iOS 런타임 동적 분석 프레임워크인 Objection 도구가 사용된다고 한다.
다음 명령어를 통해 설치한다.
python3 -m pip install -U objection
이제 앱이 설치된 Android 에뮬레이터 또는 실제 Android 기기를 준비하고, PC에서 프로세스가 인식되도록 한다.
objection --gadget "com.microsoft.seeingai" explore
Objection의 explore 기능은 Frida Gadget이 내장된 앱을 대상으로 objection 의 인터렉티브 분석 세션을 시작하라는 의미이다.
다음 글에서는 adb를 통해 안드로이드 앱 프로세스를 인식하고 objection 및 frida 도구를 통해 모델 추출을 진행한다.
https://altayakkus.substack.com/p/you-wouldnt-download-an-ai
| CVE-2024-38459 취약점 분석 및 재연 (LangChain Experimental 취약점) (1) | 2025.12.23 |
|---|---|
| CVE-2024-3568: Transformers Deserialization of Untrusted Data vulnerability 분석 및 재연 (0) | 2025.11.07 |
| [1day Analysis] CVE-2022-37958 취약점 분석 (0) | 2023.07.25 |
| CVE-2021-3156 : Privilege Escalation by Sudo Vulnerability (0) | 2021.09.11 |
| CVE-2020-15257 : Docker host escape vulnerability using host networking (1) | 2021.06.30 |