-
[DBI Tool] FridaMobile/Frida 2019. 6. 24. 19:43
모바일 환경에서 DBI(Dynamic Binary Instrumentation) Tool로 유명한 Frida에 대해서 알아보자
DBI란 말 그대로 동적으로 바이너리를 분석하는 행위인데,
대표적으로 리눅스에서는 Angr가 있고, 윈도우에서는 Pin이 있다.
(예시로 제시된 툴들이 각 플랫폼에 국한된다는 뜻은 아니다.)
Frida 또한 모바일 환경뿐만 아니라 PC환경에서도 사용이 가능하다.
Frida스크립트는 Python, C 등 다양하게 언어로 작성할 수 있으며,
실질적인 후킹 스크립트는 JavaScript로 작성한다.
나는 평소에 사용하던 언어인 Python으로 스크립트를 작성하였다.
루트권한이 없으면 사용할 수 있는 리소스범위가 극도로 좁아진다.
안드로이드의 권한체계는 샌드박스 개념과 같아서 각 UID가 접근할 수 있는 리소스가 한정적이다.
만약 루트권한을 얻지 못하는 환경이라면 App Native에 Frida를 로드시키는 방법도 있다.
Ref1. https://lief.quarkslab.com/doc/latest/tutorials/09_frida_lief.html
Ref2. https://www.hahwul.com/2018/11/frida-on-not-jailbreak-not-rooting.html
[ How to Install ]
Frida는 Module / CLI 두 가지 형식으로 사용가능하다.
모듈을 Import해서 스크립트를 작성하려면 아래와 같이 설치하면 된다.
pip install frida
CLI형식으로 Frida를 이용하려면 아래와 같이 설치하면 된다.
pip install frida-tools
Frida를 설치했으면 이제 분석할 기기에 Frida-Server를 올린 뒤, 실행시켜줘야 한다.
https://github.com/frida/frida/releases
안드로이드 CPU Bit 명령어 : getprop ro.product.cpu.abi
위에서 분석 기기환경에 맞는 Frida-Server를 다운받아서 "/data/local/tmp" 경로에 올려주면 된다.
adb push "Frida-Server경로" /data/local/tmp
그리고 Frida-Server에 실행권한을 부여해준 뒤, 실행해주면 준비완료다.
chmod 777 /data/local/tmp/Frida-Server
/data/local/tmp/Frida-Server &
제대로 실행되고 있는지 확인하고 싶다면 ps명령어로 확인가능하다.
ps -ef | grep Frida-Server
[ Reference ]
Frida의 장점 중에 하나는 유저들끼리의 스크립트 공유가 활발하다는 것이다.
대표적인 후킹목적 중 하나인 SSL-Pinning Script도 바로 받아서 조금만 수정하면 바로 사용할 수 있을 정도다.
아래는 Frida공식 스크립트 공유 포럼이다.
https://codeshare.frida.re/browse
아래는 Frida공식 홈페이지다.
'Mobile > Frida' 카테고리의 다른 글
[FRIDA] App 변수 후킹하는 법 (2) 2019.10.07 [FRIDA] Android HashMap 오브젝트 출력하는 법 (0) 2019.10.04 Frida zgote에러 발생할 때 (SystemApp Hooking) (0) 2019.07.08 Frida를 이용한 App DB복호화Key 알아내기(with.TigerText) (20) 2019.07.05 FRIDA Hooking (OWASP-UnCrackable1) (0) 2019.06.24 댓글