보안 공부/모바일 보안

안드로이드 모바일 앱 메모리 덤프 뜨기-Frida 사용(2)

H.J.World 2022. 4. 12. 15:42
728x90
반응형

https://itinformation.tistory.com/568

 

안드로이드 모바일 앱 메모리 덤프 뜨기-Frida 사용(1)

이번 포스팅은 안드로이드 모바일 앱 메모리 덤프하는 방법입니다. 모바일 앱에 대한 메모리 덤프 방법(ex : adb사용, frida 사용, 덤프 tool 사용 등)은 다양하게 있지만 이번에는 f

itinformation.tistory.com

1편(세팅)에서 이어서 진행합니다. 

 

이번 포스팅은 안드로이드 모바일 앱 메모리 덤프하는 방법입니다.

모바일 앱에 대한 메모리 덤프 방법(ex : adb사용, frida 사용, 덤프 tool 사용 등)은 다양하게 있지만 이번에는 frida를 이용한 모바일 앱 메모리 덤프를 해보도록 하겠습니다.

전자금융기반시설에서도 "메모리 내 중요정보 노출 여부" 진단 항목 진단을 위한 부분도 있습니다.

 * 다작성하고 한번 날려서 다시 쓰는중인데.. 멘탈잡고 쓰지만 놓친부분이 있을수도..
 
일단 모바일 앱 메모리 덤프를 하기 위해서는 기본세팅이 필요합니다.
 테스트 환경 -> Nox 에뮬레이터를 사용한 진단

로컬 PC - Nox 설치, python 설치, frida 설치, hxd, 바이너리 파일 분석 툴
Nox(모바일) - Frida-server 설치, 진단앱 준비

 * frida와 python 버전이 맞아야 사용이 가능합니다... 이거때문에 꽤나 고생..

 - 이번진단은 최신버전을 이용해서 테스트합니다.

 

- Frida server 실행

1. 다운받아 이동한 /data/local/tmp 폴더로 이동 후 frida-server 실행

 - "./frida-server &

2. 실행 후 프로세스에서 실행 확인

 - "ps | grep frida"

 

3. frida server 실행 후 로컬 cmd에서 녹스 및 모바일에서 실행 중인 패키지 확인

 - "frida-ps -U"

 

- frida dump 다운로드 및 실행

https://github.com/rootbsd/fridump3

 

GitHub - rootbsd/fridump3: A universal memory dumper using Frida for Python 3

A universal memory dumper using Frida for Python 3 - GitHub - rootbsd/fridump3: A universal memory dumper using Frida for Python 3

github.com

 

1.  다운로드 후 다운로드 폴더 이동

 

2. 이동 후 덤프 실행

 - "python fridump3.py -u -r 2598 -s

  -> 2598 : 원하는 앱 PID 입력

  -> -s : string 값을 따로 저장 해줌

 

3. fridump 폴더 내 dump 폴더 생성된 것을 확인

 - strings 텍스트 파일은 그냥 읽을 수 있고

- 나머지 파일들은 바이너리 파일로 특정 툴이 필요 (ex. Hxd)

 

4. 해당 파일을 한번에 검색 하기 위해서 특정 툴을 사용 (지금은 "ultraEdit"를 사용)

 

 

============================================================================

 

위와같이 잘~~ 흘러가면 좋겠지만 여러 트러블들이 발생했었는데 발생한 트러블들에 대해서 정리해보겠습니다.

 

1. fridump 실행 시 "device not found" 발생

 - fridump 파이썬 파일내 frida.get_usb_device() -> frida.get_usb_device(1)로 변경

 

2. device(1)로 변경했는데 "unable to connect to remote frida-server: Connection closed" 오류 발생

 - 해당 오류는 frida와 python 버전이 안맞아서 발생하더라구요. 해당 오류는 python과 frida 설치를 최신 버전으로 다시 설치하니까 해결됐습니다.

 

3.  "unable to inject library into process without libc" 에러 발생

 - frida server 설치 시 모바일 기기에 대한 버전 비트를 맞춰서 설치를 하지 않아서 발생, 64비트-32비트 확인 후 재설치

728x90
반응형