wechat decipher macos
1.0.0
このプロジェクトは 3 つのディレクトリにグループ化されています
macos/
macOS 上の WeChat.app を操作するための DTrace スクリプトが保存されています。eavesdropper.d
会話をリアルタイムで出力します。データベース トランザクションをオンザフライで効果的に表示します。dbcracker.d
暗号化された SQLite3 データベースの場所とその資格情報を明らかにします。 WeChat.app がこれらのファイルを開いたときにのみシークレットをキャプチャできるため、スクリプトの実行中にログインを実行する必要があります。スクリプト出力をコピーして貼り付けるだけで SQLCipher を呼び出し、それぞれのPRAGMA
を指定できます。pcbakchat/
には、WeChat のバックアップ ファイルを解析するためのスクリプトがあります。gather.d
バックアップの復号化に必要ないくつかの情報を収集します。devel/
さらなるリバース エンジニアリングのためのユーティリティが常駐します。これらはハッカーのみを対象としており、このプロジェクトのエンドユーザーが使用することは想定されていません。xlogger.d
/Users/$USER/Library/Containers/com.tencent.xinWeChat/Data/Library/Caches/com.tencent.xinWeChat/2.0b4.0.9/log/*.xlog
に送られるログ メッセージを出力します。このスクリプトはグローバル変数gs_level
上書きするために破壊的なものにしました。protobuf_config.py
protobuf-inspector のバックアップ ファイルで使用される protobuf 形式を記述します。__handlers__/
にはfrida-trace
で使用されるいくつかのハンドラーが含まれています。init.js
は、 frida-trace
のヘルパー関数が含まれています。 dtrace(1)
は macOS にプリインストールされているため、スクリプトの実行に依存関係は必要ありません。ただし、SIP をまだ無効にしていない場合は、無効にする必要がある場合があります。さらに、 dbcracker.d
によって検出されたデータベースを検査するには SQLCipher が必要です。
devel
の一部のスクリプトでは、Frida と (できればジェイルブレイクされた) iOS デバイスも必要です。
DTrace スクリプトの場合は、WeChat を起動して実行します。
sudo $DECIPHER_SCRIPT -p $( pgrep -f ' ^/Applications/WeChat.app/Contents/MacOS/WeChat ' )
$DECIPHER_SCRIPT
macos/dbcracker.d
、 macos/eavesdropper.d
、 pcbakchat/gather.d
、またはdevel/xlogger.d
に置き換えます。
pcbakchat/
の内容は少し複雑です。詳細については、 usage.md
参照してください。
そうでなければいいのですが。ほとんどの処理は macOS クライアント上でオフラインで実行され、DTrace のオーバーヘッドは無視できる程度であるため、DTrace に引っかかる可能性はほとんどありません。
これらのスクリプトの作成には、過剰な量の推測と希望的観測が含まれていましたが、少なくとも私のマシンでは動作しました :)
Device Type: MacBookPro14,1
System Version: Version 10.14.6 (Build 18G8022)
System Language: en
WeChat Version: [2021-04-02 17:49:14] v3.0.1.16 (17837) #36bbf5f7d2
WeChat Language: en
Historic Version: [2021-03-29 20:23:50] v3.0.0.16 (17816) #2a4801bee9
Network Status: Reachable via WiFi or Ethernet
Display: *(1440x900)/Retina