一度面白い試み
前言#
誰もが知っているように、WeChat のチャットデータベースは暗号化されていますが、解読不可能ではありません。
現在主流の WeChat のチャット履歴を取得する方法は、ROOT 化されたスマートフォンを使用して抽出することです;2 つ目は Apple iTunes のバックアップ(非暗号化、非侵入型バックアップ)を通じて取得することです。
ここで述べる 2 つの方法については、ネット上に多くの記事がありますので、興味のある読者は検索してみてください。このプロセスについては詳述しませんが、この記事では PC クライアントを使用して実行できる侵入型の方法を主に説明します。
过程:#
WeChat のチャット履歴はデータベースに保存されており、形式は sqlite、つまり拡張子は DB です。
しかし、暗号化されているため、まずは解読キーを取得する必要があります。解読キーの取得は一般的にメモリ内にあるため、WeChat がログイン状態でなければなりません。
解密数据库:#
WeChat データはデフォルトで C:\Users\xxx\Documents\WeChat Files\ にあり、チャット履歴データベースはそのディレクトリ内の wxid_xxxx\Msg\Multi にあります。チャット履歴ファイルの名前は一般的に MSG.db で、240MB を超えると自動的に MSG1.db が生成されます。
参考 GitHub スクリプト利用:https://github.com/0xlane/wechat-dump-rs
現在私の WeChat バージョンは 3.9.7.25 で、このバージョンまでは解読可能です。作者が更新したベースアドレスも同様に有効です。
-a を実行すると、temp ディレクトリに暗号化されていない MSG.db ファイルが生成されるはずです。
navicat などで開くことができます。
チャット履歴の一部は MSG テーブルに存在し、概ね以下のようになります:
注目すべきフィールドは:
strtalker: 送信者の WeChat ID
StrContent:メッセージのキーワード
ID がわからない場合も簡単です。過去に送信したチャット履歴を全体検索し、見つけたらその値のすべての一致をフィルタリングします。
その後、ダンプを使用すれば良いです。ここでは、ダンプを xlsx ファイルにすることをお勧めします。
表に入れるとさらに簡単です。StrContent の行を TXT にフィルタリングし、すべての文字と英語を除去します(厳密ではありません)。
私は Python を使って表を処理しました。参考コードは以下の通りです:
処理後の結果はおおよそこんな感じです。例えば私のチャット履歴:
统计词频并分词#
分詞には中文停用詞表が必要です。ここではハルビン工業大学の停用詞表を使用しています。
プロジェクトのアドレスは以下の通りです:https://github.com/goto456/stopwords/blob/master/hit_stopwords.txt
分詞コードの例:
結果は以下の通り:
ハハハハ、結構楽しいですね。
生成词云#
ネット上には多くのプロジェクトがあり、ワードクラウドを生成できますが、私は適切なものを見つけられず、オンラインサービスを使用しました。興味がある方はオンラインサービスを使用してみてください。良いワードクラウド分析のものがあれば、コメントで教えてください。
内容はおおよそ以下の通りです:
私たちの間のチャットは本当に面白いです。毎日「ハハハ」と言っています(冗談です)。
End#
再度、記事に言及されているすべての著者と参考コードに感謝します。
皆さんの生活が楽しく、毎日愛に満ちていますように。