본문 바로가기

Security/Mobile

[Android / iOS] Frida Hooking Code Sample


import frida, sys
def on_message(message, data): #메시지 매개변수를 콘솔에 출력
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)

try:
    PACKAGE_NAME = sys.argv[1]
except Exception as e:
    print("[*] Please Insert Package Name Path:/data/data/[Package_Name] ")

jscode="""
Payload
"""

try:
    print('[*] START Frida')
    print('')
    device = frida.get_usb_device(timeout=10) #Frida를 시작하고 USB 장치에 연결
    pid = device.spawn([PACKAGE_NAME]) #연결된 USB 장치에서 PACKAGE_NAME에 저장된 프로세스 생성
    print("[*]App is Starting ... pid: {}".format(pid))
    process = device.attach(pid) #PACKAGE_NAME PID를 Frida 프로세스에 연결 
    device.resume(pid) #PACKAGE_NAME 프로세스 메인 스레드 실행
    script = process.create_script(jscode)#jscode 스크립트 코드를 Frida에 사용할 수 있도록 생성
    script.on('message',on_message) #Frida Script에서 전송한 메시지를 처리할 Callback 함수 설정
    print("[*] Running Hook")
    script.load() #생성한 스크립트 로드
    sys.stdin.read() #스크립트 실행 전 종료 예방
except Exception as e:
    print(e)

 


출처: https://frida.re/docs/home/

 

Welcome

Inject JavaScript to explore native apps on Windows, macOS, GNU/Linux, iOS, Android, and QNX

frida.re

      https://go0g.tistory.com/24?category=1020090 

 

Frida Hooking Code Sample

import frida, sys def on_message(message, data): #메시지 매개변수를 콘솔에 출력 if message['type'] == 'send': print("[*] {0}".format(message['payload'])) else: print(message) try: PACKAGE_NAME = sys..

go0g.tistory.com