play/box

frida-dexdump 메모리 덤프 사용법 및 오류

카고형 2023. 1. 10. 02:50
728x90

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. 아나콘다 설치 

- https://www.anaconda.com/

2. 녹스 (NOX) 설치

- https://kr.bignox.com/

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 사용 시 발생할 수 있는 주요 오류와 해결 방법에 대해 설명드렸습니다.

 

728x90

'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