상세 컨텐츠

본문 제목

[mobile] frida 파이썬 바인딩

기술보안/Mobile:Android

by about_SC 2019. 12. 27. 20:38

본문

[mobile] frida 파이썬 바인딩

파이썬 바인딩을 사용하면, 파이썬 코드 실행으로 

1. 프로세스 식별하고 연결

2. 연결된 디바이스에서 구현하려는 프로세스 세션 연결

3. 자바 스크립트로 작성된 페이로드 자동 삽입

이 가능해진다.

 

(기본 뼈대) - 프로세스를 실행한 상태에서 자바스크립트 후킹을 실행하는 코드

# frida, sys 모듈 가져오기
import frida, sys

# 삽입할 자바스크립트 코드 넣기
jscode = """ payload_code """

# frida를 시작하고 USB 장치에서 com.your.package.name 프로세스 연결
session = frida.get_usb_device().attach("com.your.package.name")

# jscode에 있는 스크립트 코드를 frida에서 사용할 수 있도록 생성
script = session.create_script(jscode)

# 생성한 script를 로드
script.load()

# script가 동작하기 전에 종료되는 문제 예방
sys.stdin.read()

 

(기본 뼈대) - 메인 쓰레드가 시작되기 전에 자바스크립트 코드 후킹을 실행하는 코드

# frida, sys 모듈 가져오기
import frida, sys

# 삽입할 자바스크립트 코드 넣기
jscode = """ payload_code """

# frida를 시작하고 USB 장치에 연결
device = frida.get_usb_device()

# 연결된 USB 장치에서 com.your.package.name 프로세스 생성
pid = device.spawn(['com.your.package.name'])

# com.your.package.name 프로세스 연결
session = frida.get_usb_device().attach(pid)

# jscode에 있는 스크립트 코드를 frida에서 사용할 수 있도록 생성
script = session.create_script(jscode)

# 생성한 script를 로드
script.load()

# com.your.package.name 프로세스 메인 스레드 실행
device.resume(pid)

# script가 동작하기 전에 종료되는 문제 예방
sys.stdin.read()

 

 

관련글 더보기