Android/Frida

[Frida] non-root device에서 Gadget 사용해보기

우와해커 2020. 8. 3. 23:25

가젯 삽입방법

 

A. 리패키징

- apktool

1. 디컴파일

2. 디컴파일된 폴더의 lib 내부 폴더를 확인 후 앱이 지원하는 가젯 비트(32 또는 64) 확인

3. 프리다 가젯을 다운받고 파일명을 libfrida-gadget.so 로 변경

4. AndroidManifest.xml 열기

- users-permission에 android.permission.INTERNET 권한이 존재해야됨

시작시 로드되는 메인 activity 확인

5. smalli 코드를 열어서 초기화 매소드 등 적절한 구간에 가젯 코드 삽입 

 

const-string v0, "frida-gadget" invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

 

6. 리패키징 후 설치 진행, 제대로 설치되면 앱은 실행됨, 코드가 잘못되면 바로 꺼지므로 로그캣으로 확인.

7. 앱 실행 후 소캣에 연결할 때까지 앱진행이 안됨, 정상임.

 

가젯 연결 후 스크립트 로딩시 크래쉬 발생..

(검색해본 결과, 모든 앱에서 성공한다는 보장이 없다고 한다. ㅡㅜ)

 

 

B. JDWP

-쉘 코드로 라이브러리를 삽입하기 때문에 리눅스에서 진행해야 됨

-앱 설정이 debuggable=true 상태여야만 됨

 

 

테스트 이슈 정리

- 테스트 기기는 V30 arm64

- arm64.so 라이브러리 가젯을 앱에 삽입하여 리패키징하니까 에러 발생하며 프로세스 종료됨

- arm.so 라이브러리로 변경하여 리패키징하니까 정상 동작함

 



https://koz.io/using-frida-on-android-without-root/

https://lief.quarkslab.com/doc/latest/tutorials/09_frida_lief.html

http://www.ninoishere.com/frida-learn-by-example/

http://www.ninoishere.com/frida-on-non-rooted-device/

 

'Android > Frida' 카테고리의 다른 글

[Frida] RMS (Runtime Mobile Security)  (0) 2020.08.03
[Frida] Appmon  (0) 2020.08.02