Frida란?
앱이 실행되는 도중에 코드를 분석하거나 수정할 수 있는 동적 분석 도구


📦 설치

pip install frida-tools

🗂️ Frida 도구 종류

도구 역할
frida 메인 도구 (스크립트 주입, REPL)
frida-ps 실행 중인 프로세스/앱 목록 확인
frida-trace 함수 호출 추적
frida-ls-devices 연결된 디바이스 목록 확인
frida-kill 프로세스 강제 종료

🔌 공통 연결 옵션

모든 도구에서 공통으로 사용하는 옵션입니다.

옵션 의미
-U USB로 연결된 디바이스 사용
-R 원격 frida-server에 접속
-H 192.168.x.x 특정 IP의 frida-server에 접속
-D 디바이스ID 특정 디바이스 ID로 접속

1️⃣ frida-ls-devices — 디바이스 확인

frida-ls-devices

가장 먼저 실행해서 디바이스가 잘 연결됐는지 확인.

 


2️⃣ frida-ps — 프로세스 목록

# USB 연결 디바이스의 전체 프로세스 목록
frida-ps -U

# 실행 중인 앱만 보기
frida-ps -Ua

# 설치된 모든 앱 보기 (앱 이름 + 패키지명 포함)
frida-ps -Uai

-Uai 옵션으로 패키지명(com.example.app)을 먼저 확인.


3️⃣ frida — 메인 도구 (스크립트 주입)

연결 방식

옵션 의미 예시
-n 이름 프로세스 이름으로 연결 -n Twitter
-N 패키지명 앱 패키지명으로 연결 -N com.example.app
-p PID PID 번호로 연결 -p 1234
-f 패키지명 앱을 실행하면서 연결 (spawn) -f com.example.app

스크립트 옵션

옵션 의미
-l 파일명.js JS 스크립트 파일 로드
-e "JS코드" 인라인으로 JS 코드 직접 실행
--no-pause spawn 시 앱 자동 시작
--runtime=v8 V8 엔진 사용 (에러 메시지 더 상세)
--runtime=qjs QuickJS 엔진 사용 (기본값)

사용 예시

# 실행 중인 앱에 스크립트 주입
frida -U -N com.example.app -l hook.js

# 앱을 실행하면서 스크립트 주입 (spawn 방식)
frida -U -f com.example.app -l hook.js --no-pause

# 간단한 코드 한 줄 실행
frida -U -N com.example.app -e "console.log('연결 성공!')"

# PID로 연결
frida -U -p 1234 -l hook.js

4️⃣ frida-trace — 함수 호출 추적

특정 함수가 언제 호출되는지 자동으로 추적.

주요 옵션

옵션 의미 예시
-i 함수명 네이티브 함수 추적 (* 와일드카드 가능) -i "recv*"
-x 함수명 특정 함수 제외 -x "recvfrom"
-I 모듈명 모듈 전체 함수 포함 -I libc.so
-X 모듈명 모듈 전체 제외 -X libc.so
-j 클래스!메서드 Java 메서드 추적 (Android) -j "*!*login*"
-T 프로그램의 모든 import 함수 추적  
-t 모듈명 특정 모듈의 import 함수 추적 -t libssl.so

사용 예시

# recv로 시작하는 모든 함수 추적
frida-trace -U -n Twitter -i "recv*"

# 로그인 관련 Java 메서드 추적 (Android)
frida-trace -U -N com.example.app -j "*!*login*"

# submit 관련 Java 메서드 추적
frida-trace -U -N com.example.app -j "*!*submit*"

# SSL 관련 함수 모두 추적
frida-trace -U -N com.example.app -i "*SSL*"

5️⃣ frida-kill — 프로세스 종료

# PID로 프로세스 종료
frida-kill -U 1234

# 특정 디바이스의 프로세스 종료
frida-kill -D 디바이스ID PID

추천 실행 순서

1단계: frida-ls-devices
       → 디바이스가 잘 연결됐는지 확인

2단계: frida-ps -Uai
       → 앱 패키지명(com.xxx.xxx) 확인

3단계: frida -U -N 패키지명 -l hook.js --no-pause
       → 스크립트 주입

4단계: frida-trace -U -N 패키지명 -j "*!*원하는함수*"
       → 함수 호출 추적

💡 자주 쓰는 명령어 모음

# 디바이스 확인
frida-ls-devices

# 설치된 앱 + 패키지명 목록
frida-ps -Uai

# 앱에 훅 스크립트 적용
frida -U -f com.example.app -l bypass.js --no-pause

# Java 메서드 추적
frida-trace -U -N com.example.app -j "*!*check*"

# 프로세스 종료
frida-kill -U 1234

 주의사항

  • frida-server 버전과 frida-tools 버전이 반드시 일치해야함
  • Android는 루팅(rooting) 된 기기 또는 에뮬레이터가 필요함
  • iOS는 탈옥(jailbreak) 된 기기가 필요함
  • -f (spawn) 방식 → 앱 시작부터 후킹 가능
  • -n / -N 방식 → 이미 실행 중인 앱에 연결

'🥕 공격 기술 (Red Team) > 모바일 해킹 (Mobile Hacking)' 카테고리의 다른 글

ㄹㄹ  (0) 2026.03.03

+ Recent posts