티스토리 뷰
IOS Local Data Storage
IOS Application이 동작하다가 Local Data Storage에 민감한 데이터가 저장될 수 있는 공간들의 종류를 살펴보고 그 공간을 objection tool을 사용해 점검하는 방법을 살펴본다.
Keychain
"ios keychain dump" 명령어를 사용해 Keychain에 저장된 데이터를 확인할 수 있다.
예시코드는 아래와 같다.
Binary Cookie
"ios cookies get --json" 명령어를 사용해 Binary Cookie에 저장된 데이터를 확인할 수 있다.
실제 내 앱에서는 Binary Cookie에 데이터를 넣는 실습은 진행해보지 못했다. Binary Cookie에 데이터가 저장되면 아래와 같이 출력되는 것을 확인할 수 있다.
Property List Files (plist 파일)
"env" 명령어로 해당 Application이 Device내의 File System에서 저장되는 경로를 찾는다.
"cd" 명령어로 Documents로 이동해 파일목록을 확인한다.
"ios plist cat userInfo.plist" 명령어로 해당 plist에 저장된 내용을 확인한다.
plist에 데이터를 저장하는 예시 코드는 아래와 같다. (그냥 파일을 만들어서 writeToFile 하는거..)
NSUserDefaults
Library밑에 위치한 Preferences 디렉토리에 PACKAGE이름과 동일한 plist파일에 해당 데이터가 존재하는 것을 확인할 수 있다. 명령어는 위에서 사용한 것과 동일하게 "ios plist cat com.highaltitudehacks.dvia.plist"를 사용했다.
예시 코드는 아래와 같다. NSUserDefaults 클래스를 유심히 보면 될듯하다!!
CoreData (SQLite Databases)
이렇게 "sqlite connect CoreDAta.sqlite" 명령어를 사용해서 해당 Database에 연결할 수 있다.
(근데 왜 데이터는 안나오지.....ㅠㅠ 여기가 맞다는데...)
안나온 이유는 -shm 파일하고 -wal 파일이 안합쳐져서 그런것 같다. 세 개의 파일을 Windows를 빼서 Database SQLite를 사용해 확인해 보니 정상적으로 내용이 확인되더라!!
( CoreData 뿐만아니라 모든 Database에 대한 내용을 확인할 때 똑같이 적용된다.)
예시코드는 아래와 같은데.. 흠...................
Cache Databases
마찬가지로 Windows로 가져와서 SQLiteBrowser를 통해 확인할 수 있다. (세 개파일 같은경로에 놓고)
realm Database, Yab Database, Couchbase Database
이외에도 다양한 Data Storage가 존재한다.
추가적으로 각 Data Storage에 Data를 저장하는 API를 추가할 계획이다.
'IOS > Hacking' 카테고리의 다른 글
[IOS] objection 사용하기 (Application Runtime Analyze Tool) (0) | 2020.08.12 |
---|---|
[IOS] lldb를 이용한 IOS Application 동적 디버깅 ( + Cheat Sheet) (0) | 2020.08.06 |
[IOS] 탈옥 탐지(Jailbreak) 코드 예시. (2) | 2020.07.10 |
[IOS] IPA 파일 Binary Patch. (2) | 2020.07.09 |
[IOS] IPA 추출방법. (IOS 12.4.7/12.4.8) (0) | 2020.07.08 |