본문 바로가기
개발 이야기/Generals

[Android] Profiler & BinEd Plugin을 활용하여 메모리 덤프하기

by _ppuing 2021. 3. 19.
반응형

안드로이드 프로젝트에서 현재 메모리에 있는 String 정보들을 봐야 할 경우가 생겨서 메모리 덤프 후, 메모리 내에 어떠한 String 정보들이 보여지고 있는지 BinEd 플러그인을 활용했다. 목표는 어떠한 값이 암호화 되어야 하며, 메모리 내에 평문으로 보이지 않도록 하는 것이므로, 메모리 덤프 후 평문으로 검색했을 때 아무런 값도 매치되지 않아야 정상이다. 

 

우선 Android Studio -> Preference -> Plugins 에 가서 BinEd를 검색한다.

이 플러그인이다.

해당 플러그인 설치를 하고, 안드로이드 프로젝트를 시뮬레이터에서 Run 한다. 시뮬레이터에서 앱이 돌고 있을 때, 하단의 Profiler 탭을 클릭하여 SESSIONS 옆에 있는 + 버튼을 눌러서, 확인하고자 하는 앱을 선택한다.

 

초록색 동그라미로 표시된 부분의 영역을 누르면, 해당 프로세스의 CPU, 메모리, 네트워크 현황을 볼 수 있다. 오른쪽 사진에서 메모리 영역을 클릭하면 아래처럼 나온다.

시간대에 따른 메모리 현황

여기서 메모리 덤프를 뜨려면 Record 버튼 왼쪽의 아래 방향 화살표를 누른다. 그러면 시간에 따라 메모리 그래프가 이동하다가 어느 순간 멈추게 되고, 메모리 힙을 볼 수 있게 된다. 이걸 파일로 export 하려면, 왼쪽 탭의 Heap Dump 의 영역에 마우스를 갖다댈 때 디스켓 모양 버튼이 나오는데, 이 버튼을 누르면 된다.

Heap Dump 버튼

 

파일이 원하는 위치에 저장된 후, Android Studio -> File -> Open As Binary 를 클릭하여 해당 파일을 오픈한다.

메모리 덤프 파일을 연 상태

여기에서 Command + F (혹은 Ctrl + F) 로 원하는 문자열을 검색하면 된다. 나 같은 경우 검색해도 값이 나오지 않아야 정상이므로, No Match 를 확인할 수 있었다. 

반응형

댓글