Computer Science%/Mobile App

안드로이드 연결하기 및 메모리 덤프하기 - 2 (feat. adb & frida & fridump)

ch4rli3kop 2018. 1. 25. 17:24
반응형

어제는 frida 설치까지 다 했으니, 오늘은 fridump를 사용해서 메모리 덤프를 해보도록 합시다! adb 데몬이 꺼져있을 수 있으니 다시 켜주고! 

어제 배운 frida-ps -U 명령어로 디바이스 내에 frida-server가 잘 돌아가고 있는지 확인합니다~! frida-server가 꺼져 있으면 다시 켜주어야 해요! 그럴 경우, adb shell을 이용해서 다시 백그라운드로 실행시켜 줍니다> (스마트 폰을 껏다키면 frida-server는 고대로 종료됩니당.) 


frida-server가 제대로 실행되고 있는 거를 확인하면 이제 본 라운드로 돌아갑시다!


일단 fridump를 설치해야 합니다! 

fridump 란?

fridump는 frida framwork를 사용하는 오픈 소스 메모리 덤핑 도구입니다. Windows, Linux, Mac OS X 에서 Android, iOS, Windows 응용 프로그램의 접근 가능한 메모리를 덤프할 수 있는 기능을 가지고 있습니다. 개꿀!

다음 링크로 들어가서 받아줍니다! 줍줍! https://github.com/Nightbringer21/fridump


다운로드가 완료되서 압축을 해제하면 다음과 같은 파일들을 볼 수 있는데요.



죠오~기 보이는 fridump.py 스크립트를 실행해주시면 되겠습니다. 잘 되는지 확인해봅시다. fridump.py 파일이 있는 폴더로 콘솔 창을 이동한 뒤, 다음과 같은 명령어를 입력해주시면 되겠습니다.

>> python fridump.py -h

요런 화면이 나오면 그뤠에잇~!


잘 실행되는 것을 확인했으니, 메모리 덤프를 한 번 해보겠습니다. 사용 방법은

>> python fridump.py -u -s [app package name]

입니다. "frida-ps -U" 로 보이는 이름들이 app package name 입니다. 적당히 하나 골라 테스트를 진행해보도록 하겠습니다.


~으헝헝 뭘 골랐는지 모르겠쥬? 저는 소시민이라 혹시 모르니까 가립니다! t가 보이는 거는 기분 탓일 거예요 ㅎㅎ헣


암튼 대상 어플리케이션을 골랐으니 사용해줍시다.

>> python fridump.py -u -s  net.da어쩌구~~

이렇게 쫘라락하게 쭉쭉 내려오면 성공한겁니다! 보통 20% 언저리 쯤에서 좀 오래 머뭇거리는데, 두 손 모아서 우주의 기운을 받으면 될 거예요! ㅎ 

팁이라면, 스마트 폰에서 어플이 실행 중인 상태에서, PC에서 fridump를 실행하고 20% 언저리에서 멈추면, 어플이 실행 중인 스마트 폰에서 홈 버튼을 눌러서 그냥 메인 화면으로 나가고 눈 꼭 감으면 잘 되는 것 같습니다. 뭐, 그냥 그렇다구요. ㅎ


메모리 덤프가 쫘라ㅏ락! 되고 string을 모아놓은 파일까지 생성이 완료되면 fridump 수행이 완료됩니다! 결과는 

요 폴더에서 확인하실 수 있어요. 뭔가 아까랑 많이 달라졌죠? fridump를 실행하고 나면 저렇게 되니까 정상입니다!



요로코롬 메모리에 남아있던 데이터들을 확인하실 수 있겠습니다~. 아, fridump한 메모리 덤프 파일들은 모두 dump 폴더에 저장되니, 메모리 덤프 후 다른 폴더로 옮기시는 거를 추천합니당.


짜잔~ 이렇게 fridump를 사용해서 안드로이드 디바이스 메모리 내에 잔존해있던 데이터들을 확인할 수 있었습니다! 앱 진단에서는 사용자의 중요 정보들이 메모리 내에서 평문으로 저장되는 지 여부를 따져 볼 수 있겠습니다. 패스워드 같은 사용자의 중요 계정 정보는 메모리 내에 암호화되어 저장되는 것이 안전하겠죠?



아무튼 이렇게 안드로이드 디바이스의 메모리와 관련된 앱 진단법을 정리해보았습니다. 선량한 목적을 가진 누군가에게만 도움이 되기를 바라며 이만 끄읕!


PS : 다시 글을 읽어보니 왠지 쓸데없이 텐션이 높은 거 같다.. 이유는 나도 모르겠다



반응형