手機不用root,一臺電腦教你導出微信聊天記錄

目錄

導語

工具

原理

步驟

步驟截圖

首先登錄電腦微信,備份聊天記錄到電腦上

電腦下載安卓模擬器(鄙人用的是夜神)

安卓模擬器下載並安裝微信

模擬器登錄微信

獲取微信的uin號

獲取手機IMEI碼

將IMEI(MEID)+uin進行MD5,取其前7位就是密碼(32位小寫),保存下來

電腦微信還原聊天記錄到安卓模擬器微信上

獲得數據庫文件複製到電腦上

對EnMicroMsg.db解密(使用sqlcipher這個工具數據庫查看)

導出數據庫表格爲csv文件打開

完成

附加做成詞雲代碼

結語


導語

    是否還在爲無法導出聊天級錄而苦惱?史上最強攻略來了,不用root手機,不用會代碼,不限制任何機型,只要你有一顆想動手的心!

工具

  1. 電腦(筆記本,臺式都行)
  2. md5轉換網址

原理

微信聊天數據是一個db文件,而我們知道db裏面是各種表,表裏就有我們想要的聊天信息,但是微信的數據庫不可能不加密,經過百度我們可以知道它的密碼是由微信的uin號加上手機的IMEI碼進行MD5加密取前7位構成的,但是數據庫文件肯定不讓我們獲得,除非獲得手機最高權限,也就是root,但是現在的手機基本不準root了,咋辦呢?其實這不是難題,有電腦啥都好說。因此我們就可以大展手腳了。

步驟

  1. 首先登錄電腦微信,備份聊天記錄到電腦上
  2. 電腦下載安卓模擬器(鄙人用的是夜神)
  3. 獲取手機IMEI碼
  4. 安卓模擬器下載並安裝微信
  5. 模擬器登錄微信
  6. 獲取微信的uin號
  7. 將IMEI(MEID)+uin進行MD5,取其前7位就是密碼(32位小寫),保存下來
  8. 電腦微信還原聊天記錄到安卓模擬器微信上
  9. 獲得數據庫文件複製到電腦上
  10. 對EnMicroMsg.db解密(使用sqlcipher這個工具數據庫查看)
  11. 導出數據庫表格爲csv文件
  12. 完成

步驟截圖

  1. 首先登錄電腦微信,備份聊天記錄到電腦上

    1. 這一步就不用截圖了,自己手機跟電腦連在同一個wifi下,然後電腦端選擇備份記錄到電腦,手機確認就可以了,備份完後自己手機登出微信帳號
  2. 電腦下載安卓模擬器(鄙人用的是夜神)

    1. 這一步也不用截圖了,自己下載模擬器去
  3. 安卓模擬器下載並安裝微信

  4. 模擬器登錄微信

  5. 獲取微信的uin號

    1. 模擬器微信登錄成功後打開模擬器文件管理器
    2. 打開微信存儲路徑,這裏模擬器會使用root模式,模擬器一般都是root的,微信存儲路徑一般爲data/data/com.tencent.mm/MicoMsg
    3. 進入MicoMsg後在當前文件夾下找到system_config_prefs.xml文件
    4. 將該文件複製出來,夜神有個模擬器跟電腦共享文件夾,在旁邊,叫文件助手,我們先選中該文件,然後打開安卓共享文件夾,進入粘貼選擇項就ok了
    5. 然後打開模擬器文件助手,打開電腦端文件夾就可以看到system_config_prefs.xml文件,我們用記事本打開就可以找到uin號,複製保存下來
  6. 獲取手機IMEI碼

    1. 打開自己模擬器的設置界面,這裏以夜神爲例,在手機與網絡就有生成的IMEI碼,使用默認的,不要隨機創建,複製保存下來
  7. 將IMEI(MEID)+uin進行MD5,取其前7位就是密碼(32位小寫),保存下來

    1. 到該網站進行轉換,選擇32位(小)md5轉換網址
    2. uin: 688275***
      
      imei: 865166010121179
      
      md5: 6a8ecae00ba2f96e7e90c0268090c8db
      
      前七位: 6a8ecae

       

  8. 電腦微信還原聊天記錄到安卓模擬器微信上

  9. 獲得數據庫文件複製到電腦上

    1. 到剛纔所說的微信路徑下找到EnMicroMsg.db並選擇複製到電腦共享文件夾下
  10. 對EnMicroMsg.db解密(使用sqlcipher這個工具數據庫查看)

    1. 複製出來後模擬器就沒啥用了,交給電腦了
    2. 我們打開sqlcipher這個工具數據庫打開EnMicroMsg.db輸入密碼就可以查看了
    3. 聊天記錄在message這個表格中,我們按圖中所示導出該表格爲csv文件
    4. 導出成功
  11. 導出數據庫表格爲csv文件打開

    1. 表格屬性中isSend值爲1就是我們本人發送,0則是對方發送,createTime 聊天時間戳 content 聊天內容
  12. 完成

附加做成詞雲代碼

import openpyxl
import threading

#多線程處理,本人聊天記錄爲73622行,四個線程處理,每個17000多行,我先將無關列刪去,留下四列,序號,isSend,createTime,還有content,所以我選擇判斷是誰發送的,再保存聊天記錄
def cxk1():
    for i in range(2,17905):
        try:
            #判斷是誰發送
            if str(sh.cell(row=i, column=1).value)=='0':
                #保存第四列的聊天記錄
                file.write('傻豬:'+sh.cell(row=i, column=4).value+'\n')
            else:
                file.write('\t\t\t\t\t\t\t'+sh.cell(row=i, column=4).value+':帥哥凱'+'\n')# A表示列,1表示行
        except:
            continue
    print('1_ok')
def cxk2():
    for i in range(17905,35810):
        try:
            if str(sh.cell(row=i, column=1).value)=='0':
                file.write('傻豬:'+sh.cell(row=i, column=4).value+'\n')
            else:
                file.write('\t\t\t\t\t\t\t'+sh.cell(row=i, column=4).value+':帥哥凱'+'\n')# A表示列,1表示行
        except:
            continue
    print('2_ok')
    
def cxk3():
    for i in range(35810,53715):
        try:
            if str(sh.cell(row=i, column=1).value)=='0':
                file.write('傻豬:'+sh.cell(row=i, column=4).value+'\n')
            else:
                file.write('\t\t\t\t\t\t\t'+sh.cell(row=i, column=4).value+':帥哥凱'+'\n')# A表示列,1表示行
        except:
            continue
    print('3_ok')
    
def cxk4():
    for i in range(53715,71622):
        try:
            if str(sh.cell(row=i, column=1).value)=='0':
                file.write('傻豬:'+sh.cell(row=i, column=4).value+'\n')
            else:
                file.write('\t\t\t\t\t\t\t'+sh.cell(row=i, column=4).value+':帥哥凱'+'\n')# A表示列,1表示行
        except:
            continue
    print('4_ok')
    
def fun1():
    th=threading.Thread(target=cxk1)
    th.setDaemon(True)#守護線程
    th.start()
def fun2():
    th=threading.Thread(target=cxk2)
    th.setDaemon(True)#守護線程
    th.start()
    
def fun3():
    th=threading.Thread(target=cxk3)
    th.setDaemon(True)#守護線程
    th.start()
    
def fun4():
    th=threading.Thread(target=cxk4)
    th.setDaemon(True)#守護線程
    th.start()
    
#將聊天記錄導出到txt文件
file = open('CxkAndLhm.txt','w')

#你導出的微信聊天記錄文件,先將csv轉爲xlsx文件
wb = openpyxl.load_workbook('weixin.xlsx')
sh = wb['weixin']
fun1()
fun2()
fun3()
fun4()
wb.close()
file.close()



# 詞雲庫
from wordcloud import WordCloud
import PIL .Image as image
import numpy as np
with open("CxkAndLhm.txt") as fp:
    text=fp.read()
#     print(text)
#     將文本放入WordCoud容器對象中並分析
    
    # 詞雲圖片
    mask = np.array(image.open("1.jpg"))

    #字體:C:\Windows\Fonts\FZSTK.TTF  C:\Windows\Fonts\FZLTCXHJW.TTF
    font="C:\Windows\Fonts\FZLTCXHJW.TTF"
    
    WordCloud =WordCloud(
        # 設置字體,不指定就會出現亂碼
        font_path=font,  # 這個路徑是pc中的字體路徑
        
        # 設置背景色
        background_color='white',
        
        # 詞雲形狀
        mask=mask,
        
        # 允許最大詞彙
        max_words=100,
        
        # 最大號字體
        max_font_size=100,
        
        # 設置有多少種隨機生成狀態,即有多少種配色方案
        random_state=30,
        
        # 清晰度
        scale=3
    ).generate(text)
    
    image_produce = WordCloud.to_image()
    image_produce.show()
print('完成')

 

結語

到這我們就完成了微信聊天數據的導出,我們可以用導出的數據進行處理了,做成詞雲或者數據清洗都行。編寫不易,留贊可行?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章