안드로이드 프로젝트에서 현재 메모리에 있는 String 정보들을 봐야 할 경우가 생겨서 메모리 덤프 후, 메모리 내에 어떠한 String 정보들이 보여지고 있는지 BinEd 플러그인을 활용했다. 목표는 어떠한 값이 암호화 되어야 하며, 메모리 내에 평문으로 보이지 않도록 하는 것이므로, 메모리 덤프 후 평문으로 검색했을 때 아무런 값도 매치되지 않아야 정상이다.
우선 Android Studio -> Preference -> Plugins 에 가서 BinEd를 검색한다.
해당 플러그인 설치를 하고, 안드로이드 프로젝트를 시뮬레이터에서 Run 한다. 시뮬레이터에서 앱이 돌고 있을 때, 하단의 Profiler 탭을 클릭하여 SESSIONS 옆에 있는 + 버튼을 눌러서, 확인하고자 하는 앱을 선택한다.
초록색 동그라미로 표시된 부분의 영역을 누르면, 해당 프로세스의 CPU, 메모리, 네트워크 현황을 볼 수 있다. 오른쪽 사진에서 메모리 영역을 클릭하면 아래처럼 나온다.
여기서 메모리 덤프를 뜨려면 Record 버튼 왼쪽의 아래 방향 화살표를 누른다. 그러면 시간에 따라 메모리 그래프가 이동하다가 어느 순간 멈추게 되고, 메모리 힙을 볼 수 있게 된다. 이걸 파일로 export 하려면, 왼쪽 탭의 Heap Dump 의 영역에 마우스를 갖다댈 때 디스켓 모양 버튼이 나오는데, 이 버튼을 누르면 된다.
파일이 원하는 위치에 저장된 후, Android Studio -> File -> Open As Binary 를 클릭하여 해당 파일을 오픈한다.
여기에서 Command + F (혹은 Ctrl + F) 로 원하는 문자열을 검색하면 된다. 나 같은 경우 검색해도 값이 나오지 않아야 정상이므로, No Match 를 확인할 수 있었다.
'개발 이야기 > Generals' 카테고리의 다른 글
Jenkins 설치 및 원격 배포 설정 (0) | 2022.02.18 |
---|---|
[iOS] AltStore & unc0ver를 활용하여 탈옥폰 만들기 (2) | 2021.03.19 |
MySQL 똑같이 생긴 테이블 A, B에 대해 테이블 A 에서 테이블 B 로 ROW 옮기기 (0) | 2021.03.10 |
CSS/Sass 긴 문자열 끝을 ...로 만들기 (0) | 2021.02.18 |
AngularJS ng-src 가 이미지 없는 경우 이미지가 동적으로 바뀌지 않는 문제 해결 (0) | 2021.02.17 |
댓글