모바일 모의해킹 프로젝트 수행 중 안드로이드 메모리에 민감한 정보 평문 저장여부를 확인하기 위해 필요한 어플리케이션을 제작하였습니다. 점검 시 유용하게 사용하시길 바라며 아래와 같이 공유합니다.


버전: beta

빌드날짜: 2013. 9. 11

파일크기: 258KB

MD5: d0736e78ec7affb0ab5d89aca233fcd8


Memory_Dump.apk



사용법

 

해당 어플리케이션을 사용하기 위해서는 우선적으로 루팅되어 있는 스마트폰에서 실행해야 합니다. 


제작 당시 jni로 구성하지 않고 binary execute로 제작하여 어플리케이션 실행시 지속적으로 권한을 요청하는 단점이 있습니다.

superuser 어플리케이션에서 설정 > 보안 > 자동응답 > 허가 로 변경하여 사용하면 자동으로 권한을 부여 받아 사용할 수 있습니다.


    

<그림1> 루트권한 요청 변경




   

<그림2> 자동응답 설정 변경



위와 같이 루트권한을 설정 후 첨부된 어플리케이션을 설치 후 실행합니다.


   

<그림3> 어플리케이션 실행





Attach 버튼을 눌러 실행중인 프로세스에 Attach 합니다.


   

<그림4> 프로세스 Attach




Maps 버튼을 누른 후 덤프할 메모리 영역을 선택합니다.


    

<그림5> 덤프할 메모리 영역 선택



덤프 전 선택된 메모리 영역을 메모리 뷰 버튼을 통해 볼 수 있습니다.


<그림6> 선택된 영역 메모리 뷰



메모리 덤프된 파일이 저장될 위치를 선택합니다. 현재 에러로 새폴더가 생성되지 않습니다. 추후에 수정예정입니다.


   

<그림7> 덤프 후 저장될 디렉터리 경로 설정



디렉터리 선택 후 Memory Dump 버튼을 눌러 덤프를 실행 합니다.


   

<그림8> 선택된 디렉터리에 덤프파일 저장




저장된 파일은 선택된 폴더에 PID_시작주소-끝주소 형식으로 저장됩니다.

해당 파일을 PC에서 다운로드로 핵사에디터로 확인합니다.


<그림9> 덤프파일 확인




메모리 영역에 문자열 검색을 위해 테스트 어플리케이션을 생성하여 살펴보겠습니다.


   

<그림10> 테스트 어플리케이션 실행




Attach 버튼을 눌러 PID를 선택 후 Maps 버튼을 눌러 덤프 주소값을 설정합니다.

이때, RW Select  버튼을 눌러 쓰기권한이 존재하는 부분만 선택하여 해당 주소의 메모리 값을 덤프합니다.


    

<그림11> PID, 주소값 선택




저장될 폴더를 선택후 Memory Dump 버튼을 눌러 메모리 덤프를 합니다.

해당 테스트 어플은 75메가 정도의 크기 덤프파일이 생성되었으며 2~3분 정도 시간이 경과된 후 완료 되었습니다.




    

<그림12> 메모리 덤프파일 생성



저장된 파일을 PC에 옮겨 살펴봅니다.


<그림13> 덤프파일 생성 확인





grep 명령어를 이용하여 파일들의 문자열을 검색합니다.


<그림14> 문자열 검색


7744_0000b000-00252000 파일에 검색된 문자열이 존재하는 것을 확인 할 수 있습니다.

핵사 에디터로 메모리 영역에 저장되어 있는 문자열을 확인 할 수 있습니다.

<그림15> 문자열 확인



메모리 덤프 시 새로운 어플리케이션 메모리 덤프할 경우 어플리케이션을 종료후 다시 실행해야 에러나지 않습니다.

주소 받아오는 부분에서 새로운 PID 선택시 배열을 초기화하지 않해서 그런듯 싶습니다. 추가적으로 시간이 주어진다면 개선하여 블로그에 올리도록 하겠습니다.


어플이 허접하다며 아이콘 만들어준 하모군에게 감사하며(흰화면에 기본아이콘이였음) 포스팅을 마치겠습니다.

감사합니다.