모바일/Android
[Android] 메모리 덤프 ? 4가지 알아볼게요
JJANG-JOON
2023. 8. 28. 11:32
반응형
메모리 덤프❓
메모리 덤프(Memory Dump)는 컴퓨터 시스템의 현재 메모리 상태를 파일로 저장하는 프로세스나 결과물을 가리키는 용어이다.
- 디버깅(Debugging): 프로그램이 충돌하거나 예상치 못한 오류가 발생할 때, 메모리 덤프를 생성하여 오류 발생 시점의 메모리 상태를 분석할 수 있다. 이를 통해 오류 원인을 식별하고 수정할 수 있다.
- 보안 분석(Security Analysis): 해킹 공격이나 악성 코드 분석을 위해 시스템의 메모리 덤프를 생성한다. 이를 통해 공격자의 활동을 추적하거나 악성 코드의 작동 방식을 이해할 수 있다.
- 성능 분석(Performance Analysis): 프로그램이나 시스템의 성능 문제를 해결하기 위해 메모리 덤프를 생성하여 메모리 누수나 자원 소비에 대한 정보를 얻을 수 있다.
- 복구 및 복원(Recovery and Restoration): 시스템 장애 시 메모리 덤프를 사용하여 시스템 상태를 복원하거나 중요한 데이터를 복구하는 데 활용할 수 있다.
메모리 덤프 방법 adb
안드로이드 디바이스의 adb 셸을 사용하여 명령어를 실행하여 메모리 덤프를 생성할 수 있다
1. adb -e shell am dumpheap 7777 /sdcard/sg.hprof
2. adb pull /sdcard/sg.hprof
3. strings.exe sg.hprof > memory.txt
- 7777 : 실행되고 있는 앱의 PID
- /sdcard/sg.hprof : 덤프 파일을 저장할 경로
메모리 덤프 방법 frida
Fridump는 Frida를 기반으로 하는 메모리 덤프 도구입니다. 이를 사용하여 간편하게 메모리 덤프를 생성할 수 있다.
1. adb shell
2. /data/local/tmp/frida-server & (frida-server 실행)
3. frida-ps -U (실행되고 있는 앱의 패키지명 확인)
4. python fridump.py -U -s 패키지명 (메모리 덤프)
메모리 덤프방법 ddms
DDMS는 안드로이드 스튜디오와 함께 제공되는 도구로, 안드로이드 디바이스와 통신하여 메모리 덤프를 생성할 수 있다.
1. ddms.bat 실행
2. 분석할 앱 선택 후 hprof 파일로 저장
메모리 덤프방법 안드로이드 Studio의 Profiler
- 안드로이드 스튜디오에서 프로젝트를 연다.
- "View" 메뉴에서 "Tool Windows"로 이동한 다음 "Profiler"를 선택한다.
- Profiler를 시작하고 원하는 디바이스 및 앱을 선택한다.
- "Memory" 탭으로 이동한 다음 "Dump Java Heap" 또는 "Dump Native Heap" 버튼을 클릭하여 메모리 덤프를 생성한다.

반응형