日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 直接利用Android手機破解微信加密數據庫EnMicroMsg.db

直接利用Android手機破解微信加密數據庫EnMicroMsg.db

來源:程序員人生   發布時間:2014-12-23 09:01:06 閱讀次數:12728次

※首先,簡單介紹1下微信加密數據庫EnMicroMsg.db的破解方法:

要先批評1下微信,竟然用開源的數據庫加密方式,這不是1破解1個準嗎...

如果你的摹擬器或真機已取得了root權限,就能夠直接將記錄聊天記錄的數據庫文件拷貝出來,數據庫文件具體寄存位置以下:

在/data/data/中:


(題外話:android原生的摹擬器root起來很復雜,推薦1款第3方摹擬器:genymotion,很方便)


※我們拿到EnMicroMsg.db后,用經常使用的數據庫管理軟件打開,發現EnMicroMsg.db被加密了,但是密碼生成規則很簡單,具體以下:

(手機IMEI + 微信uin )取MD5的前7位

手機的IMEI獲得:手機撥號盤輸入:*#06#

微信uin獲得:http://blog.csdn.net/yuanbohx/article/details/41280837

但是即便算出來解密密碼,我們仍發現用剛才使用的數據庫管理軟件是打不開的。由于其用的是SQLCipher開源庫提供的加密解密算法,故在網上下載SQLCipher.exe這個軟件,打開.db文件時,輸入計算出來的密碼后,就能夠打開EnMicroMsg.db文件了:



※上面提到了SQLCipher是1個提供數據庫文件加密解密功能的第3方開源庫,我們先來訪問以下他們的官網看個究竟:

https://www.zetetic.net/sqlcipher/open-source/

我們欣喜的發現,現在SQLCipher提供了Android操作系統的開源庫,源碼在Github上可以下載取得,但是我嘗試下載了Github上的工程,編譯的時候遇到了很多問題,致使終究沒有編譯成功。所以建議大家下載以下圖所示的開源庫緊縮包:


解壓下載的緊縮包,其目錄以下圖所示:



※下面觸及到Android工程創建、導入SQLCipher開源庫等工作:

創建Android工程就不詳細說了,創建完工程后,直接將sqlcipher-for-android-v3.2.0文件夾中的內容全部拷貝到android工程中便可:


接下來的步驟也很關鍵:

右鍵工程,Build Path → Configure Build Path,依照下圖所示添加相應的jar包,刪除android自有庫:


最后在程序中加入讀取加密數據庫的關鍵代碼便可:

public void readWeChatDatabase() { SQLiteDatabase.loadLibs(this); String password = "XXXXXXX"; File databaseFile = getDatabasePath("/data/data/com.tencent.mm/MicroMsg/47d58c79e692e212XXXXXXXXXXXXX/EnMicroMsg.db"); //File databaseFile = getDatabasePath("EnMicroMsg.db"); eventsData = new myDataHelper(this); SQLiteDatabaseHook hook = new SQLiteDatabaseHook(){ public void preKey(SQLiteDatabase database){ } public void postKey(SQLiteDatabase database){ database.rawExecSQL("PRAGMA cipher_migrate;"); //最關鍵的1句!!! } }; try { SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(databaseFile, "XXXXXXX(密碼)", null, hook); Cursor c = db.query("message", null, null, null, null, null, null); while (c.moveToNext()) { int _id = c.getInt(c.getColumnIndex("msgId")); String name = c.getString(c.getColumnIndex("content")); Log.i("db", "_id=>" + _id + ", content=>" + name); } c.close(); db.close(); } catch (Exception e) {} }

程序很簡答,password即為數據庫的加密密碼,databaseFile為數據庫文件路徑,database.rawExecSQL("PRAGMA cipher_migrate")這句最為關鍵,緣由以下:

現在SQLCipher for Android已是3.X版本了,而微信竟然還停留在2.X時期,所以這句話是為了能夠用3.X的開源庫兼容2.X的加密解密方法,如果不加這句話,是沒法對數據庫進行解密的。

(題外話:SQLCipher的功能確切相當強大,我這里介紹的只是冰山1角,更多的功能大家可以通過其官網或Github中提供的工程代碼進行探究)

最后展現1下程序運行效果,從Logcat信息可以看到,我們成功讀取了微信的EnMicroMsg.db文件中的message數據表:


固然,我所做的工作有著明顯的不足,即需要先通過各種人工方式計算出數據庫解密密碼,然后再進行.db文件的解密。有興趣的網友可以嘗試直接在程序中獲得IMEI與微信uin(這個應當是難點),然后MD5取前7位,最后用算出的解密碼對數據庫進行解密。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 午夜毛片 | 精品国产一区二区三区免费 | 国产一区二区自拍视频 | 亚洲免费精品 | 91欧美精品成人综合在线观看 | 国产成人在线免费观看 | 91精品国产综合久久小美女 | 男女的隐私视频网站 | 国产精品久久久久一区二区三区 | 影视在线观看 | av中文在线| 久久久麻豆 | 亚洲第一页中文字幕 | 久久女 | 亚洲精品一区二区三区不 | 亚洲欧美一区二区三区情侣bbw | 精品日韩在线 | 一区二区三区av在线 | 国产亚洲精品久久久久久 | 国产精品久久久久久久久久免费动 | 久国产精品韩国三级视频 | 国产精品成人一区二区三区夜夜夜 | 天堂精品一区 | 欧美日韩视频一区二区三区 | av资源网站 | 一区二区亚洲视频 | 久久久电影 | 精品一区精品二区 | 国产精品久久久久久久久免费看 | 成人国产精品久久 | 逼逼av| 国产一区二区三区四区三区四 | 最近中文字幕国语免费高清6 | 91亚洲成a人片在线观看www | 精品久久久久国产 | 91小视频在线观看 | 超碰超碰| 成人性爱视频在线观看 | 在线精品一区二区 | www.色午夜.com | 国产精品久久久久久久妇 |