Mobile

Android 메모리 덤프(fridump)

5_jinseok12 2022. 2. 7. 23:52
728x90

Android의 메모리 덤프를 하기 위한 기본 환경으로 우선 frida가 설치되어 있어야 합니다.

 

간략하게 frida 설치 및 실행과정까지 설명드리겠습니다. 

 

1. 우선 Python3.7.5 버전과 frida-server-12.6.23 버전을 다운받습니다.

Python 다운로드 후  frida를 설치하기 전에

환경설정 -> path 경로에서 C:\Python3\Scripts / C:\Python3를 추가합니다.

 

여기서 주의할 점은 python 2 버전대가 설치되어 있다면 환경변수에서 아래로 이동시켜주시고

C:\Python3\Scripts  / C:\Python3  설정이 제일 위에 오도록 셋팅해야 합니다.

환경 변수 설정

 

2. frida-server-12.6.23 버전을 다 다운받고 상황에 따라(에뮬레이터or단말기) 바꿔가며 사용하시면 됩니다.

* nox_adb shell getprop ro.product.cpu.abi  녹스의 경우 명령어를 통해 에뮬레이터 버전(32/64bit)을 확인해야합니다. *

  • ro.product.cpu.abi = armeabi-v7a => ARM 32비트
  • ro.product.cpu.abi = arm64-v8a => ARM 64비트
  • ro.product.cpu.abi = x86 => Intel 32비트
  • ro.product.cpu.abi = x86_64 => Intel 64비트

하지만, ARM 64 비트의 경우 ARM32도 함께 지원하는 경우도 있습니다.

이럴 때는 ro.product.cpu.abilist 프로퍼티를 확인하면 지원하는 모든 아키텍쳐를 알 수 있습니다.

삼성 갤럭시 S10에서는 32/64비트 앱 모두 동작할 수 있습니다.

 

다운로드 경로 : https://github.com/frida/frida/releases/tag/12.6.23

 

Release Frida 12.6.23 · frida/frida

See http://www.frida.re/news/ for details.

github.com

frida-server 다운로드

 

3.  frida-server를 Python3 폴더의 경로로 다운받습니다.

frida 서버 경로

 

 

 

4. 로컬에서 다운받은 frida-server를 push 명령어를 통해 디바이스 내의 /data/local/tmp 경로로 전송시켜줍니다.

frida server 전송

 

5. 새로운 cmd창을 띄워서 nox_adb에 shell로 연결한 후 /data/local/tmp 경로로 접근합니다.

그리고 이동시킨 frida-server를 chmod 명령을 통해 755 권한을 준 후 실행시킵니다.

frida-server 755 권한 설정 및 실행

 

6. 755 권한을 줬다면 ./frida-server &명령을 통해 frida를 실행시킵니다. 

 

7. adb와 연결된 cmd창 외에 새롭게 cmd 창을 새로 열고 Frida-ps –U 명령어를 통해

덤프할 앱의 프로세스 이름을 확인합니다.

8.

Fridump3 파일을 로컬디스크 C의 최상위 경로에 다운로드 받고 그 후, 그 경로로 이동하여 파일을

실행시켜주어야 합니다.

사용될 명령어들은 -u / -r / -s 명령어들 입니다.

분석하고자 하는 앱의 디바이스는 USB로 연결되어 있기에 -u를 사용하고

-r [pid] 명령을 통해 dump 하려는 앱 숫자를 입력해주시면 됩니다.

-s 명령은 암호화 되지 않은 문자열을 .txt 파일로 추가 생성해줍니다

Python fridump3.py -u -r [PID] -s
Python fridump3.py -u -s [packagename]

10. dump 폴더가 생성된 것을 통해 정상적으로 dump 된 것을 확인할 수 있습니다.

dump 파일 확인

11. AstroGrep 프로그램을 통해 덤프 된 메모리에서 저장된 패스워드 값(admin$#1510)을 검색했을 때

중요정보가 암호화되지 않고 텍스트로 저장되어 있는 것을 확인할 수 있습니다.

AstroGrep 을 통한 텍스트 검색

 

12. 검색해서 나온 파일을 통해 아래와 같이 “admin$#1510”의 값을 저장한 파일을 찾을 수 있으며

우클릭/ 디렉터리 오픈을 통해 파일을 열어볼 수 있습니다.

 

13. 노트패드로 열면 글자가 암호화되어 있지만 패스워드를 가지고 있는 파일을 HxD 툴을 통해 실행시키면 파일의 내용을 볼 수 있습니다.

HxD 을 통한 텍스트확인

반응형

'Mobile' 카테고리의 다른 글

ios checkra1n 탈옥  (0) 2022.02.28
iOS Fly JB 설치  (0) 2022.02.22
IOS 메모리 덤프  (0) 2021.08.20
ADB Logcat에서 특정 app 로그 확인  (0) 2021.06.21
SSL Pinning 우회도구  (0) 2021.06.15