이 글을 참고하여 악용하시면 안되요. 정보통신망법, 정보통신기반보호법에 의거 처벌 받을 수 있습니다.



ddms을 이용하여 실행 중인 안드로이드 앱 메모리를 덤프하여 비밀번호를 추출해 볼것이다.


따라서 ddms가 설치가 되어 있는지 확인을 해야한다.

설치 경로 : C:\android\sdk\tools\lib


이런 창이 실행 된다면 사용 할 수 있다. 필자는 환경 변수로 지정해놨기 때문에 어디서든 실행 시킬 수 있다.



먼저 알아보고자 하는 앱을 실행시키고 ddms을 실행시킨다. 그 후 앱에서 로그인을 해본다.




문둥문둥한 사각형에 해당되는 앱을 클릭하고 직사각형 부분을 클릭하면 hprof파일을 떨궈준다.

이 파일을 폴더 하나 만들어서 거기에 저장한다.



하지만 여기서 hprof파일이 표준이 아니어서 표준 형식으로 바꿔 줄 것이다.

hprof 표준 형식 프로그램 위치 : C:\android\sdk\platform-tools



hprof-conv [방금 떨군 파일] [표준형식으로 바꿀 이름]




위와 같이 하면 새로운 파일이 만들어 진 것을 볼 수 있다.

그럼 이제 이 파일을 가지고 메모리 분석을 해볼 것이다.

메모리 분석할 떈 MemoryAnalyzer64를 쓸것이다.

MemoryAnalyzer64.z01 MemoryAnalyzer64.z02 MemoryAnalyzer64.z03 MemoryAnalyzer64.z04 MemoryAnalyzer64.z05 MemoryAnalyzer64.z06 MemoryAnalyzer64.zip


MemoryAnalyzer 실행 모습



왼쪽 상단의 File -> Open Heap Dump -> 아까 형식 바꾼 파일



위와 같이 열린 것을 알 수 있다.




이제 분석하기 쉽게

상단 중앙에 있는 트리 형태를 클릭해주고

상단 오른쪽에 사각형 3개에서 Group by class loader를 누르면 위와 같이 나오는 것을 알 수 있다.

여기서 왼쪽 Attributes에서 Go to 하면 md5로 된 비밀번호를 확인 할 수 있었다.




아주 손쉽게 메모리 덤프를 뜨고 메모리에 있는 비밀번호를 추출 할 수 있었다. 그러므로 모바일 앱을 만들 땐

메모리 보안에도 신경써야 함을 알 수 있다. 

중요 정보는 꼭 AES-256 등 안전성이 검증된 암호화 방법을 써야 하며

루팅 탐지하여 루팅 되었을 때 앱 실행을 막는다거나 다른 보안적 조치가 필요하다.





  1. 해바라기 2017.07.28 05:40

    감사합니다!

+ Recent posts