가젯 삽입방법
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 |