前言
之前分析完師兄給的apk后,師兄給了下一個目標(biāo),說這是一個取證比賽的例題,涉及到密碼學(xué)解密。但是因?yàn)楸救诉@方面比較薄弱,所以在解題的時候,就用到了objection-一個基于frida的工具,動態(tài)調(diào)試的時候非常好用。
標(biāo)題的FO指的就是這個objection,因?yàn)槿看虺鰜硖L了。
參考文獻(xiàn):<
正文
這里本人用到的模擬器是夜神模擬器,但是這里在之后動態(tài)調(diào)試的時候遇到了一個bug,adb特別容易在調(diào)試的時候下線。網(wǎng)上查了一下資料,需要將目錄的adb換成原生adb,nox_adb改成nox_adb_bf.這樣就可以解決這個問題了。
拿到文件之后,發(fā)現(xiàn)有一個加密過后的db文件,還有一個apk,想來解密方法就是在這個apk當(dāng)中。
這里把a(bǔ)pk先放到模擬器中安裝。
把a(bǔ)pk放入android killer中,查看源碼。
可以看到db后綴名,這里進(jìn)行了一個跟文件有關(guān)的操作,后續(xù)又調(diào)用了其他的類,進(jìn)入該類中查看。
可以看到這里又調(diào)用了b的方法。
結(jié)合第一個入口文件,可以得知這里是經(jīng)過了幾步運(yùn)算得出解密的密鑰,但是因?yàn)楸救诉@方面的知識比較薄弱,所以不準(zhǔn)備直接解密(師兄說他是直接解的),這里用到的是objection進(jìn)行調(diào)試。
objection是一個基于frida的工具,需要先安裝frida和對應(yīng)版本的server.
安裝過程如下:
pip3 install objection
這里這一步會直接幫忙把frida和frida-tools安裝掉,接著去把對應(yīng)的frida-server安裝上傳至模擬器就行。
adb push frida-serverxxxxx /data/local/tmp
chmod 777 frida-server
./fridaserver
這里的思路就是利用hook這個getWritableDatabase函數(shù),然后將這個函數(shù)的參數(shù)動態(tài)打印出來就行。(因?yàn)橐驗(yàn)榻?jīng)過解密函數(shù),最后傳進(jìn)去的就是明文的口令).
這里先查看一下進(jìn)程
frida-ps -R
可以看到這里是美美亞亞目標(biāo)進(jìn)程。
objection -g 美美亞亞 explore,對進(jìn)程進(jìn)行注入。
android hooking search methods getWritableDatabase.
之后再執(zhí)行這個命令,找到getWritableDatabase這個函數(shù),對其進(jìn)行watch.
android hooking watch class_methodnet.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase --dump-args --dump-backtrace --dump-return
對這個函數(shù)進(jìn)行監(jiān)控。
之后再重新調(diào)用這個app,重新加載這個函數(shù),就會發(fā)現(xiàn)口令被打印出來了。
這里再用sqlitebrowser打開這個db文件利用那個口令,發(fā)現(xiàn)這個就是正確的。
電子取證
圖形化內(nèi)存分析工具
取證|偽加密zip解密方法
游戲黑灰產(chǎn)識別和溯源取證
內(nèi)存取證|Volatility大殺器
內(nèi)存取證之Volatility從0到1
溯源取證|微信數(shù)據(jù)庫解密教程
奪取應(yīng)用程序的“制空權(quán)”:內(nèi)存數(shù)據(jù)
審核編輯 :李倩
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3980瀏覽量
67443 -
模擬器
+關(guān)注
關(guān)注
2文章
970瀏覽量
45181
原文標(biāo)題:Hook App取證實(shí)戰(zhàn)數(shù)據(jù)庫解密
文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
數(shù)據(jù)庫慢查詢分析與SQL優(yōu)化實(shí)戰(zhàn)技巧
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—服務(wù)器異常斷電導(dǎo)致Oracle數(shù)據(jù)庫故障的數(shù)據(jù)恢復(fù)案例

企業(yè)級MySQL數(shù)據(jù)庫管理指南
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫被加密如何恢復(fù)數(shù)據(jù)?

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫文件拷貝后服務(wù)無法啟動的數(shù)據(jù)恢復(fù)

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server附加數(shù)據(jù)庫提示“錯誤 823”的數(shù)據(jù)恢復(fù)案例

分布式云化數(shù)據(jù)庫有哪些類型
MySQL數(shù)據(jù)庫的安裝

云數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?
數(shù)據(jù)庫加密辦法
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

數(shù)據(jù)庫事件觸發(fā)的設(shè)置和應(yīng)用
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫

評論