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