android 创建文件夹_Android安全(四)数据库 之 SQLite数据库
每個應用程序都要使用數據,Android應用程序也不例外,Android使用開源的、與操作系統無關的SQL數據庫—SQLite。SQLite第一個Alpha版本誕生于2000年5月,它是一款輕量級數據庫,它的設計目標是嵌入式的,占用資源非常的低,只需要幾百K的內存就夠了。SQLite已經被多種軟件和產品使用,Mozilla FireFox就是使用SQLite來存儲配置數據的,Android和iPhone都是使用SQLite來存儲數據的。
SQLite數據庫是D.Richard Hipp用C語言編寫的開源嵌入式數據庫,支持的數據庫大小為2TB。它具有如下特征:
1、輕量級
SQLite和C\S模式的數據庫軟件不同,它是進程內的數據庫引擎,因此不存在數據庫的客戶端和服務器。使用SQLite一般只需要帶上它的一個動態庫,就可以享受它的全部功能。而且那個動態庫的尺寸也相當小。
2、獨立性
SQLite數據庫的核心引擎本身不依賴第三方軟件,使用它也不需要“安裝”,所以在使用的時候能夠省去不少麻煩。
3、隔離性
SQLite數據庫中的所有信息(比如表、視圖、觸發器)都包含在一個文件內,方便管理和維護。
4、跨平臺
SQLite數據庫支持大部分操作系統,除了我們在電腦上使用的操作系統之外,很多手機操作系統同樣可以運行,比如Android、Windows Mobile、Symbian、Palm等。
5、多語言接口
SQLite數據庫支持很多語言編程接口,比如C\C++、Java、Python、dotNet、Ruby、Perl等,得到更多開發者的喜愛。
6、安全性
SQLite數據庫通過數據庫級上的獨占性和共享鎖來實現獨立事務處理。這意味著多個進程可以在同一時間從同一數據庫讀取數據,但只有一個可以寫入數據。在某個進程或線程向數據庫執行寫操作之前,必須獲得獨占鎖定。在發出獨占鎖定后,其他的讀或寫操作將不會再發生。
導出查看數據庫文件
在android中,為某個應用程序創建的數據庫,只有它可以訪問,其它應用程序是不能訪問的,數據庫位于Android設備/data/data/package_name/databases文件夾中。
我們的app里面用到sqlite數據庫的時候, 會生成一個db文件,保存在我們手機中。有的時候,在調試數據庫,很想看一下里面的表結構是否正確,這個時候就十分苦惱,因為這個db文件不能夠直接拿出來,我們知道,在DDMS里面有一個FileExplorer,它里面保存著手機中的各個文件夾,但是嘗試打開里面的文件夾的時候,卻發現怎么點都沒有東西,是真的沒有嗎?其實是我們沒有獲取到訪問這個文件夾的權限。下面我們就開始一步一步的拿到真機調試中的db文件。
注意:確保你的手機是root過的。
一、打開adb.exe
?到sdk目錄下,找到platform-tools,adb.exe就在這個文件夾下,嘗試雙擊打開,發現cmd一閃而過,然后就沒了,打不開?這里提供一個打開adb.exe的方法,在文件夾空白區域,按住鍵盤shift,同時點擊鼠標右鍵,在彈窗中選擇“在此處打開命令窗口”,會彈出如下cmd窗口(也可以直接打開cmd,然后進入相應的路徑):
二、打開DDMS(Android?Device Monitor)
打開DDMS后,選擇FileExplorer,然后我們可以看到其下的各個文件夾,我們要找的.db文件就保存在data文件夾下
如果FileExplorer下沒有東西的話,可以嘗試選擇左邊的手機型號。此時我們點擊data,會發現data是無法打開的,然后我們進行下一步,通過cmd執行命令為我們獲取相應的權限。
三、獲取權限
在獲取權限的時候,需要一步一步的獲取文件夾權限。
1、獲取data文件夾權限
?在第一步打開的cmd中, 輸入命令?adb shell su -c "chmod 777 /data"?, 回車。
?這時data文件夾的權限就獲取到了,打開data可以看到其下的文件夾,
2、獲取dada/dada文件夾權限
?與第一步類似,繼續輸入命令??adb shell su -c "chmod 777 /data/data",回車。
?這樣就獲取到了dada/dada文件夾權限,打開dada/dada,里面保存了個個應用包名文件夾,找到我們需要找的app包名,然后再進一步打開,
3、獲取應用db文件
?繼續輸入命令??adb shell su -c "chmod 777 /data/data/包名",回車。這時,就打開了這個app的文件夾,db文件,保存在databases里面。
?繼續輸入命令??adb shell su -c "chmod 777 /data/data/包名/databases",回車。這時,databases可以打開了,我們可以看到保存在其中的db文件。
?繼續輸入命令??adb shell su -c "chmod 777 /data/data/包名/databases/*",回車。這時,databases下的db文件都被設為可讀狀態
4、導出db文件
?選擇需要導出的文件,然后點擊右上角的導出按鈕,選擇保存地址即可
四、查看數據庫結構
db文件已經拿到,那么查看數據庫可以使用數據庫工具,將db文件導入即可。我這邊使用的是Navicat Premium
一如既往的學習,一如既往的整理,一如即往的分享。感謝支持
HW攻防演練總結:安全數據分析
水坑攻擊的原理和預防措施
利用系統溢出漏洞提權
淺談APP漏洞挖掘之邏輯漏洞
蜜罐調研與內網安全
2020HW熱門0day分析與復現
紅隊技能:Hash讀取與端口轉發
民航業網絡安全工作思考
2020hw系列文章整理(中秋快樂、國慶快樂、雙節快樂)
HW中如何檢測和阻止DNS隧道
掃描關注LemonSec
總結
以上是生活随笔為你收集整理的android 创建文件夹_Android安全(四)数据库 之 SQLite数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抽象类可以创建对象吗_【基础篇】java
- 下一篇: qmediaplayer获取流类型_An