iOS 安全攻防系列 三 sqlite3資料庫

2021-07-09 02:35:54 字數 1338 閱讀 9873

蘋果的ios裝置大量使用資料庫檔案來儲存包括通訊錄、簡訊、電子郵件以及一些其他敏感資料在內的資訊sqlite資料庫軟體十一種開源的、公共域的資料報。標準情況下,sqlite資料庫的副檔名是.sqlitedb ,但也有資料庫使用了.db的副檔名,或者其他的副檔名。(但我們知道在類linux系統中,那個副檔名並不重要。)在我們開發中也經常用會碰到有一些大量資料需要儲存,比如用來快取、歌曲、電影等。

$ file cacheimage.db 

cacheimage.db: sqlite 3.x database

目前市場上有一些很好的圖形化工具如(mesasqlite)。mac os x 已經包含了乙個sqlite命令列客戶端工具。

從命令列呼叫sqlite3客戶端工具:

$ sqlite3 cacheimage.db 

sqlite version 3.8.10.2 2015-05-20 18:17:19

enter ".help" for usage hints.

sqlite> 

sqlite> .exit

.exit 退出。回到終端提示符下

一些常用的操作命令:

sqlite> .tables

imagecache

例舉出資料庫中所有的表。

sqlite> create table messages(message_id interger primary key,

...> sender,

...> subject,

...> _to,

...> cc,

...> bcc);

建立乙個表,此時可以再拿上邊那個檢視所有表的名再次檢視。

然後就是一些基本增刪改查命令。

在做正向開發的時候,我們經常用到資料的儲存,很多時候是會用到sqlite3 的。同樣,在iphone裝置上存在著一些敏感的資料,他們也是用sqlite儲存的。比如聯絡人位址薄,攻擊者就對它很感興趣。

聯絡人位址薄包含裝置中儲存的所有聯絡人的所有記錄。在我們的開發中獲取聯絡人的時候會用到addressbookui.framework  和addressbook.framework這兩個框架。它的資料庫名字就叫做addressbook.sqlitedb。                      可以 從/private/var/mobile/library/addressbook/addressbook.sqlitedb 中可以找到位址薄資料庫。聯絡人都是以明文的形式儲存在sqlite中。我們可以用selector語句查詢就可以得到相關的資訊。

在我們自己開發的應用中也經常會用到sqlite。那如何保護我們的資料。

1)對資料進行加密保護。

2)根據需要,擦除sql記錄。

IOS安全攻防(一)

hack必備的命令與工具 你的應用正在被其他對手反向工程 跟蹤和操作!你的應用是否依舊裸奔豪不防禦?鄭重宣告一下,懂得如何攻擊才會懂得如何防禦,一切都是為了之後的防禦作準備。廢話少說,進入正題。今天總結一下為hack而做的準備工作。ps 顯示程序狀態,cpu使用率,記憶體使用情況等 sysctl 檢...

iOS安全攻防 鑰匙鏈安全

ios系統及第三方應用都會使用keychain來作為資料持久化儲存媒介,或者應用間資料共享的渠道。但是對於越獄機器來說,keychain也是很容易暴露,keychain dumper 傳送門 可以輕鬆匯出裡面的資料。keychain所在位置 var keychains keychain 2.db 步...

iOS 應用安全攻防 六 Clutch

fairplay drm 數字版權加密保護技術。具體是什麼我也不是很清楚。我們要對應用進行反彙編 可以使用clutch工具。不管應用如何加密,在其執行的時候,它總要解密,所以,clutch等破解工具,就是把應用執行時的記憶體資料按照一定格式匯出。git clone git github.com kj...