목차
1. 프리다(Frida)란?
2. 프리다의 주요 기능
3. 프리다 환경 구축
- 녹스(Nox) 앱플레이어 설치
-
프리다(Frida) 주요 기능 이해
프리다 환경 구축
프리다 기능 살펴보기
프리다 기본 문법
프리다 CLI 활용
자바스크립트 파일 사용
파이썬 바인딩 이해
프리다 챌린지로 연습해보기
프리다 실무 활용
1. 프리다(Frida)란?
- Ole가 개발한 DBI* 프레임워크
- 프로세스를 모니터/디버깅하는 데 사용할 수 있는 툴킷
- 다양한 플랫폼에서 프로세스에 대한 인젝션이 가능, 확장성이 큼
- 자바스크립트를 Native App에 삽입 가능
* DBI: Dynamic Binary Instrumentation, 앱이 실행 중인 상태에서 코드 명령어를 삽입해 동적으로 바이너리 프로세스를 추적·분석·디버깅하는 도구
2. 프리다의 주요 기능
- 프리다를 기반으로 사용하는 도구: AppMon*, Needle**
- 함수 후킹(특정 함수에 연결하여 반환 값 변경 및 함수 재작성 가능)
- 실행 중인 애플리케이션의 디버깅 수행 가능(실행 중인 함수를 추적하여 함수 재작성 가능 - 로그 출력, 내부 로직 변경 등)
- 힙 메모리 내 객체 인스턴스 검색 및 사용 가능(프리다 기본 문법인 java.choose라는 함수를 사용하여 손쉽게 힙을 스캔)
- 실시간 트래픽 스니핑 또는 암호 해독(암호화되기 전의 값을 변조)
- 탈옥 또는 루팅되지 않은 단말기에서도 사용 가능(제한적이므로 추천하지 않음)
* AppMon: 앱의 시스템 API 호출을 모니터링하고 변경하는 자동화된 프레임워크(macOS, iOS, Android OS) - system 및 API 호출을 모니터링할 수 있음
* Needle: iOS 보안 테스팅 프레임워크(안드로이드의 드로저와 유사)
3. 프리다 환경 구축
필요 도구: 녹스 앱플레이어(Nox), 아나콘다(파이썬), 프리다, 프리다 서버(Android)
녹스(Nox) 앱플레이어 설치
무료 안드로이드 에뮬레이터, 실제 디바이스와 유사한 환경에서 진단이 가능하며, 멀티 앱 플레이어 기능으로 다수 앱 동시 진단 가능
안드로이드 애플리케이션 취약점 분석 및 악성코드 분석에 주로 사용됨
우측 상단의 시스템 설정
성능 > 해상도 설정: (기본) 1600x900 설정되어 있음, (변경) 960x540
성능 > 그래픽 모드: (기본) 호환+모드, (변경) 기본모드(DirectX)
일반 > 시작항목: ROOT켜기 체크 (안드로이드 실제 단말기에서 루팅한 것과 동일한 환경을 만들어주는 것)
인터페이스 > 선택적으로 설정
모든 설치가 완료되면 Nox ADB를 환경변수 설정함
ADB(Android Debug Bridge): 안드로이드를 위한 디버깅 툴, 안드로이드 애뮬레이터와 통신 가능
설정 위치: C:\Program Files (x86)\Nox\bin\nox_adb.exe
윈도우 '시스템 환경 변수 편집' 내 시스템 속성 - 고급 - 환경 변수 > 시스템 변수(Path) 설정 클릭 후 편집
> 새로 만들기(N) 후 위의 설정 위치(bin 까지) 추가 후 설정
명령 프롬프트(cmd)에서 nox_adb 입력 시 해당 정보 출력되는 정보 확인(환경변수 설정이 잘 이루어짐)
연결된 nox_adb 쉘 접속
-s <specific device> - directs command to the device or emulator with the given serial number or qualifier. Overrides ANDROID_SERIAL environment variable.
nox_adb -s 127.0.0.1:62001 shell
'Security & Analysis > Frida' 카테고리의 다른 글
[Frida] 안드로이드 앱 모의해킹 - chap05. 프리다 문법 (0) | 2023.05.04 |
---|---|
[Frida] 안드로이드 앱 모의해킹 - chap04. 프리다 기능(2) (0) | 2023.04.18 |
[Frida] 안드로이드 앱 모의해킹 - chap03. 프리다 기능(1) (0) | 2023.04.11 |
[Frida] 안드로이드 앱 모의해킹 - chap02. 프리다 이해 및 환경 구축(2) (0) | 2023.03.31 |