Security/Mobile

[Frida] Hooking Code Sample(Python)

Go0G 2021. 10. 17. 14:24
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)

 

Reference