Android Application Research Series 3
디바이스 어딘가에 저장되는 데이터에 대한 DB 파일 암호화 따라가기
Android Application Research Series 3
데이터 암호화 및 복호화 로직 따라가기
지난번에는 사진과 영상에 대한 데이터를 확인하여 알림을 읽지 않고도 알림을 받을 시 생성되는 데이터 구조 안을 살퍄보았다.
이때 url 을 통해 상대가 어떤 내용의 컨텐츠를 보냈는지 확인하는 내용을 다뤘다. 이번에는 해당 데이터가 디바이스 어디에 보존되면서 어떤 경우에 어떠한 방식으로 로드되는지 따라가보려고 한다.
암호화부분
아래는 그룹화된 알림을 받았을 때 데이터를 암호화하는 부분이다.
1
123243 ms DataBaseResourceCrypto$b.b("{\"kl\":[\"redacted/redacted/redacted/redacted.jpg\",\"redacted/redacted/redacted/redacted.jpg\"],\"mtl\":[\"image/jpg\",\"image/jpg\"],\"csl\":[\"redacted\",\"redacted\"],\"wl\":[1080,1080],\"hl\":[553,2340],\"cmtl\":[\"\",\"\"],\"sl\":[85047,149222],\"imageUrls\":[\"https://talk.kakaocdn.net/redacted\",\"https://talk.kakaocdn.net/redacted\"],\"thumbnailUrls\":[\"https://talk.kakaocdn.net/redacted\",\"https://talk.kakaocdn.net/redacted\"],\"thumbnailWidths\":[120,56],\"thumbnailHeights\":[62,120]}")
위는 받은 데이터를 암호화하는 작업이다.
아래는 받은 데이터를 암호화하여 반환하는 부분이다.
1
123243 ms <= "ljsUhFCNTSP7v...XWcQkilvfTBe"
그룹화된 컨텐츠가 올 때 위의 메소드가 호출되는데 평문 데이터를 암호화하는 시점이다.
복호화부분
아래는 파일에 적재되어있는 암호화 데이터를 로드하는 부분다.
1
432240 ms DataBaseResourceCrypto$b.a("ljsUhFCNTSP...vxB9XWcQkilvfTBe")
해당 메소드를 통해 데이터가 복호화되는 걸 확인할 수 있다. 실제로는 데이터 길이가 훨씬 길게 나오지만 여기서는 일부만 편집해서 사용한다.
1
432240 ms <= "{\"kl\":[\"redacted/redacted/redacted/redacted.jpg\",\"redacted/redacted/redacted/redacted.jpg\"],\"mtl\":[\"image/jpg\",\"image/jpg\"],\"csl\":[\"redacted\",\"redacted\"],\"wl\":[1080,1080],\"hl\":[553,2340],\"cmtl\":[\"\",\"\"],\"sl\":[85047,149222],\"imageUrls\":[\"https://talk.kakaocdn.net/redacted\",\"https://talk.kakaocdn.net/redacted\"],\"thumbnailUrls\":[\"https://talk.kakaocdn.net/redacted\",\"https://talk.kakaocdn.net/redacted\"],\"thumbnailWidths\":[120,56],\"thumbnailHeights\":[62,120]}"
데이터를 복호화하면 위와 같이 나온다.
Conclusion
해당 파일을 탐색한 결과 일렬의 데이터가 오차도 없이 기록되어 있는 걸 발견할 수 있다.
실제로 앱 내부 디레턱리에서 해당 데이터가 존재하여 파일로부터 데이터를 로드하는 걸 볼 수 있다.
1
2
3
4
/data/user/0/com.kakao.talk # ./search.sh
Binary file databases/KakaoTalk.db-wal matches
Binary file databases/KakaoTalk.db-wal matches
/data/user/0/com.kakao.talk #
해당 데이터가 접근하는 곳은 Application 내부라 일반 디바이스에서는 접근 문제가 발생한다. 이를 실제 확인하기 위해서는 커스텀 OS 나 특별한 환경의 디바이스에서 해당 작업을 진행하여야 한다. 다음에는 해당 로직을 좀 더 자세하게 관찰하며 로직화해보고자 한다.
This post is licensed under CC BY 4.0 by the author.
If you find any errors, please let me know by comment or email. Thank you.
If you find any errors, please let me know by comment or email. Thank you.