

보안 취약점 탐지, 소스코드 분석 등 수행 가능
| Name | Descriptioin |
|---|---|
| Nox | 가상 에뮬레이터 |
| Android Debug Bridge (ADB) | Device와 통신할 수 있는 CLI 기반 도구 |
| Frida | 동적분석 도구, Software 개발 및 연구에사용 |
| JADX | Dex, Java 소스코드Decompile 도구(CLI, GUI) |
| Scrcpy | Device 미러링 도구 |
| Logcat | Device 실시간 로깅 |
| MobSF | 정적및 동적 분석자동화도구 |
가상 안드로이드 에뮬레이터
안드로이드 디바이스와 통신할 수 있도록 지원해주는 명령줄(CLI) 도구
| 함수 | 설명 |
|---|---|
$adb devices | 연결된 장비 목록확인 |
$adb connect [HOST]:[PORT] | 장비 연결 |
$adb push {local_file} {remote_path} | 연결된 장비에 파일 복사 |
$adb pull {remote_path_file} {local_path} | 연결된 장비에서 파일 가져오기 |
$adb shell pm list packages | 장비에 설치된 앱 패지키명 리스트 |
$adb shell | 연결된 장비에 Shell로 연결 |

• 실행 중인 애플리케이션에 연결하여 그 행동을 실시간으로 조작하고 관찰할 수 있는 동적 분석 도구
• JavaScript 사용으로, Code Injection 및 Hooking
| 함수 | 설명 |
|---|---|
$frida –U {app_package_name} | 연결된 장비에 파일 복사 |
$frida –U –l {script_file} | 연결된 장비에서 파일 가져오기 |
$frida –U –l {script_file} –f {app.package_name} | 장비에 설치된 앱 패지키명 리스트 |
$frida-ps –U (실행중인 프로세스 목록) | 연결된 장비에 Shell로 연결 |
#-U : USB Connect
#-l : Script
#-D : 연결할 디바이스 ID, [IP ADDR]:[PORT]
#-R : Remote frida server connect
#-H : Remote frida server Host connect
#-P : Hooking PID
FRIDA vs. ADB 구분
- ADB
안드로이드 디바이스와 컴퓨터 간의 통신을 위한 도구
파일 관리, 디버깅 및 셸 액세스와 같은 기능을 제공- FRIDA
애플리케이션의 동적 분석 및 조작에 사용되는 프레임워크
코드의 실행 중에 변경을 가능하게 함
• 동적분석 도구
• Dex, Java 소스코드 Decompile 도구
(Dex 파일 Decompile => Java 소스코드 예측 생성)

FRIDA vs. JADX 구분
JADX는 분석 목적으로 사용
: Dex 파일 Decompile하여 Java 소스코드 예측해 생성해냄FRIDA는 실행 중인 애플리케이션의 메모리에 직접 코드를 주입하거나 수정하여 앱의 동작을 실시간으로 변경


멀티 설정 이후 신규 생성

≡ → 시스템 정보 → CPU VT "켜기" 상태인지 확인

윈도우 기능 → Hyper-V / 가상 머신 플랫폼 체크해제


[pip -> python 환경 변수도 설정해주기]
https://blog.naver.com/jaeyoon_95/222228697034
pip install frida

pip install frida-tools

설치 확인 및 버전 확인

안드로이드 버전 확인


https://github.com/skylot/jadx


JRE 설치
https://www.oracle.com/java/technologies/downloads/#jdk22-windows

ubuntu에 docker 설치
apt-get install docker.io

sudo apt-get install git

doker -v
git -v

[Could not get lock /var/lib/dpkg/lock-frontend 에러 참고]
https://kgu0724.tistory.com/71


에뮬레이터(Nox)에 adb를 통해 연결
nox_adb.exe connect 127.0.0.1:62025
에뮬레이터(Nox)의 셸을 열고 Frida 서버를 실행
adb shell
/ # su
/ # cd /data/local/tmp
/ # chmod 777 frida-server-16.2.1-android-x86_64
[./ 누른다음 Tab 하면 파일 이름 자동완성]
[뒤에 & 붙여서 백그라운드 실행]
/frida-server-16.2.1-android-x86_64 &
/ # ps -ef | grep frida

frida -U -l test1.js -f com.stl.stllab특정 Android 애플리케이션(com.stl.stllab)에서 실행될 JavaScript 파일을 Frida를 사용하여 로드하도록 지시하는 명령어.
-U: USB를 통해 연결된 장치를 대상으로 작업한다는 것을 나타냄
-l test1.js: 로드할 JavaScript 파일을 지정. 즉, 대상 애플리케이션에 삽입될 코드를 정의
-f com.stl.stllab: Frida가 대상으로 하는 애플리케이션의 패키지 이름을 지정. 여기서는 com.stl.stllab로 지정되었으므로 이 애플리케이션을 대상으로 Frida 스크립트가 적용.
리소스 > AndroidManifest.xml 파일에 package 참고

!오류 -> adb 다시 연결