多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 直接利用Android手機破解微信加密數(shù)據(jù)庫EnMicroMsg.db

直接利用Android手機破解微信加密數(shù)據(jù)庫EnMicroMsg.db

來源:程序員人生   發(fā)布時間:2014-12-23 09:01:06 閱讀次數(shù):12700次

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

要先批評1下微信,竟然用開源的數(shù)據(jù)庫加密方式,這不是1破解1個準(zhǔn)嗎...

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

在/data/data/中:


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


※我們拿到EnMicroMsg.db后,用經(jīng)常使用的數(shù)據(jù)庫管理軟件打開,發(fā)現(xiàn)EnMicroMsg.db被加密了,但是密碼生成規(guī)則很簡單,具體以下:

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

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

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

但是即便算出來解密密碼,我們?nèi)园l(fā)現(xiàn)用剛才使用的數(shù)據(jù)庫管理軟件是打不開的。由于其用的是SQLCipher開源庫提供的加密解密算法,故在網(wǎng)上下載SQLCipher.exe這個軟件,打開.db文件時,輸入計算出來的密碼后,就能夠打開EnMicroMsg.db文件了:



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

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

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


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



※下面觸及到Android工程創(chuàng)建、導(dǎo)入SQLCipher開源庫等工作:

創(chuàng)建Android工程就不詳細(xì)說了,創(chuàng)建完工程后,直接將sqlcipher-for-android-v3.2.0文件夾中的內(nèi)容全部拷貝到android工程中便可:


接下來的步驟也很關(guān)鍵:

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


最后在程序中加入讀取加密數(shù)據(jù)庫的關(guān)鍵代碼便可:

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;"); //最關(guān)鍵的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即為數(shù)據(jù)庫的加密密碼,databaseFile為數(shù)據(jù)庫文件路徑,database.rawExecSQL("PRAGMA cipher_migrate")這句最為關(guān)鍵,緣由以下:

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

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

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


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

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 伊人久久综合成人网小说 | 国产系列 视频二区 | 久久精品国产在热久久2019 | 在线精品自拍 | 手机看片精品国产福利盒子 | 一级一级 a爱片免费视频 | 国产成人精品综合久久久 | 欧美人与物videos新另类性 | 午夜亚洲一区二区福利 | 亚洲国产精品aaa一区 | 性色在线播放 | 成人动漫中文字幕 | 一个色综合网 | 国产大毛片 | 亚洲天堂最新网址 | 1024在线视频国产在线播放 | 亚洲精品视频一区二区 | 男女一区二区三区免费 | 亚洲一区二区三区不卡视频 | 亚洲精品一区二区三区在 | 国产精品第1页在线观看 | 亚洲第一区在线 | 亚洲一区二区欧美日韩 | 老司机午夜精品99久久免费 | 国产h视频在线观看免费 | 黄色网址免费观看 | 欧美日韩一区二区三区自拍 | 一本一道久久综合狠狠老 | 国产亚洲精品久久综合影院 | 一区福利视频 | 亚洲免费观看视频 | 久久毛片视频 | 国产精品麻豆高清在线观看 | 国产成人精品久久二区二区 | 在线人成精品免费视频 | 欧美另类网站 | 欧美性猛交xxxx乱大交 | 91国色 | 性xxxxⅹhd成人 | 亚洲一区免费看 | 色性欧美 |