frida-dexdump란?
안드로이드 애플리케이션의 메모리 덤프를 추출해 주는 도구입니다. 이를 통해 애플리케이션 내부의 dex 파일을 추출하여 분석할 수 있습니다. 이를 활용하면 악성 코드 탐지 및 디버깅 등의 용도로 사용할 수 있습니다. frida-dexdump를 사용하기 위해서는 frida-server가 먼저 실행되어 있어야 하며, 대상 애플리케이션의 PID를 확인한 후 해당 PID를 이용하여 메모리 덤프를 추출합니다.
필요한 거 준비하기
애뮬레이터(NOX) , anaconda, fria-server, frida-tool, frida-dexdump
요약
1. 필요한거 다 설치했는지 확인
2. 아나콘다 가상 환경에서 python 패키지 설치 확인
- pip install frida-tools
- pip install frida-dexdump
3. frida server 있는지 확인 - 있으면 실행
ㄴ 없으면 다운받아서 /data/local/tmp 넣어주고 권한 주기
- adb push frida-server-15.1.12-android-x86 /data/local/tmp
- adb shell chmod 777 /data/local/tmp/frida-server-15.1.12-android-x86
4. adb로 애뮬레이터 연결 되어있는지 확인
- adb devices
5 타켓 앱 실행시키고
6 프로세스확인 : frida-ps -U or adb shell ps
7 덤프 (안되면 -U 추가)
- frida-dexdump -n 프로세스이름(패키지명)
- frida-dexdump -p (PID)
1. 아나콘다 설치
2. 녹스 (NOX) 설치
3. frida-server 다운
- https://github.com/frida/frida/releases
4. 녹스 설치 폴더 안에 bin 폴더를 찾는다.
cd C:\Program Files (x86)\Nox\bin
5. 녹스를 키고 cmd창으로 해당 폴더로 들어가 연결되는지 확인한다.
adb devices
6. 다운 받은 서버를 녹스 공유 폴더(PC폴더)로 옮긴다.
7.adb shell로 애뮬레이터 접속 후 frida-server를 data/local/tmp로 옮긴 후 파일 권한 주고 실행시킨다.
mv /storage/emulated/0/Pictures/frida-server-16.0.8-android-x86 /data/local/tmp
chmod 777 /data/local/tmp/frida-server-16.0.8-android-x86
/data/local/tmp/frida-server-16.0.8-android-x86
8. Anaconda Powershell Prompt 열고 필요한 패키지 설치
pip install frida-tools
pip install frida-dexdump
- 버전 확인
- frida-dexdump --version
- 버전 맞추기 (frida-dexdump 16.0.8 설치)
- pip install --upgrade frida-dexdump==2.0.1
9. 타겟 앱 실행 후 프로세스 확인
frida-ps -U
./adb shell ps
- adb 있는 폴더로 가서 해야 됨
10. frida-dex dump를 사용하여 덤프
frida-dexdump -U -p 3394
frida-dexdump -U -n com.tencent.shopcj
frida-dexdump 사용 시 발생할 수 있는 오류와 해결 방법
1. frida-server 연결 오류
- 증상: frida-server가 실행되어 있지 않은 경우, frida-dexdump를 실행할 때 연결 오류가 발생할 수 있습니다.
- 해결 방법: frida-server를 실행하고 다시 시도해 보세요.
2. 대상 애플리케이션 오류
- 증상: frida-dexdump가 대상 애플리케이션을 인식하지 못할 경우, 오류가 발생합니다.
- 해결 방법: 대상 애플리케이션이 정상적으로 실행되고 있는지, 대상 애플리케이션의 PID를 확인해 보세요.
3. 대상 애플리케이션 권한 오류
- 증상: frida-dexdump가 대상 애플리케이션에 대한 권한을 가지고 있지 않을 경우, 오류가 발생합니다.
- 해결 방법: 대상 어플리케이션에 대한 권한을 확인하고, frida-dexdump 실행 시 sudo 권한으로 실행해 보세요.
4. frida-server 버전 및 기능 호환성 오류
- 증상: 다음과 같은 오류 메시지가 출력될 수 있습니다. "Failed to enumerate processes: unable to communicate with remote frida-server; please ensure that major versions match and that the remote Frida has the feature you are trying to use"
- 해결 방법: frida-server와 frida-dexdump의 버전 호환성을 확인하고, frida-server가 해당 기능을 지원하는지 확인해 보세요. 또한, frida-server와 frida-dexdump의 버전을 최신 버전으로 업데이트하는 것도 도움이 됩니다.
이렇게 frida-dexdump 사용 시 발생할 수 있는 주요 오류와 해결 방법에 대해 설명드렸습니다.
'play > box' 카테고리의 다른 글
프리다(Frida) CLI 명령어 정리 (0) | 2023.03.05 |
---|---|
ProGuard 와 복호화 (0) | 2023.03.04 |
프리다(Frida) 알아보기 (0) | 2022.12.06 |
android permission 정리 (1) | 2022.10.05 |
Android 분석 관련 툴 (0) | 2022.06.13 |