앱 진단 시 소스 코드를 분석함에 있어서 어디에서 어떤 클래스와 메소드가 실행되어 동작하는지
프리다 트레이스(Frida-Trace)를 이용하여 파악할 수 있는 방법이 있다.
루팅 탐지를 하는 앱에서 루팅우회할 때 유용하게 사용한다.
준비물
1. 프리다 트레이싱 .exe
동작 조건
1. 프리다 트레이서를 동작할 때 경로에 어떤 한글도 포함되면 안됨 (영어만)
2. 추적할 클래스 또는 메소드가 포함된 Smali 파일을 함께 위치해야함
3. 너무 많은 Smali파일이나 메소드를 넣으면 제대로 동작 안됨
사용 방법
먼저 진단할 앱을 디컴파일 후 경로를 복사해줌
이 때 첫번째 조건인 경로에 한글이 포함되면 안된다.
프리다 트레이싱 프로그램 실행
Frida_Tracing_v1.0.exe [Smali 파일이 있는 경로]
프로그램이 실행되며 메소드와 클래스들을 모두 수집한다.
끝나게되면
Let's hook!!! 이란 문구와함께 폴더에 js 파일이 하나 생성됨
이 js 파일을 이용해서 트레이싱을 하는건데
이 때 3번째 조건인 너무 많은 클래스와 메소드가 있으면 에러가 발생한다.
그래서 디컴파일된 전체 스말리코드를 넣기 보다는
미리 jadx와 같은 소스코드 분석 툴로 소스코드를 분석 한 뒤 의심되는 스말리 파일만 경로에 넣어 js를 만들어준다.
임시 폴더를 하나 생성해주고
그 경로안에 분석하고 싶은 스말리 파일만 따로 복사해서 넣어준다
임시로 몇개 넣어봄
이제 이 분석하고 싶은 Smali 파일만 따로 빼둔 경로에 프리다 트레이싱을 실행한다.
그럼 아까보다 훨씬 크기가 작은 js 파일이 생성된다
이제 이 js파일을 Frida로 js를 사용할 때 명령어와 옵션을 사용해서 똑같이 활용한다.
(두개 중에 선택)
frida -U -f "패키지명" -l hooking.js --no-pause
frida -U --no-pause -f 패키지명 -l hooking.js
명령어를 실행하게되면
프리다에서 앱을 스폰하는 과정이 있고 앱이 실행되면 실행되는 클래스 및 메소드를 차례대로 확인할 수 있다.
Class_Class_Class.Method
방식으로 출력
실제로 안드로이드 루팅 우회를 할 때 많이 이용되며
좋은 Frida 코드가 많고 헬조선 Magisk등 편리하게 우회할 수 있는 것은 자동으로 우회하지만
불가한 경우에는 이렇게 정적 분석을 통하여 코드를 하나하나 분석하고 찾을 수 밖에 없다.
'모바일 > Android' 카테고리의 다른 글
[Android] 안드로이드 10 이상 , OneUi 3 이상 최신 단말기 Magisk 루팅 (26) | 2022.04.20 |
---|---|
[Android] Magisk(매지스크) 업그레이드 헬조선 Magisk (feat. TWRP) (1) | 2022.04.15 |
[Android] Jadx 메모리 부족 이슈 해결법 (1) | 2022.04.12 |
[Android] Msfvenom과 MetaSploit을 이용한 악성앱 (5) | 2022.03.17 |