DUICUO

オープンソースのWeChat/QQ/TIMリコール防止ツール

WeChatやQQでチャットをしていると、自分がとても興味を持っていた内容が相手にいつの間にか撤回されていることがあります。そんな時は、少しがっかりしたり、急に気になって仕方がなかったりするかもしれません。Windows版WeChat/QQ/TIM向けのこの撤回防止パッチは試してみる価値があるかもしれません。

これは、WeChat/QQ/TIM のメッセージリコールを防止するパッチであり、最新バージョンの WeChat/QQ/TIM に対応しています。WeChat では、複数のインスタンスのインストールを選択できます。

使い方

  1. まず、システムが次の条件を満たしている必要があります。

Windows 7以降、XPはサポートされていません。
.NET Framework 4.5.2以降。これより前のバージョンでは、プログラムを開いたときに応答がなかったり、エラーメッセージが直接表示される場合があります。

  1. このプログラムを使用する前に、WeChat/QQ/TIM を閉じてください。
  2. このプログラムを管理者として実行し、右下隅に最新のパッチ情報が表示されるまで待ちます。
  3. WeChat/QQ/TIMのインストールパスを選択します。インストール版のWeChat/QQ/TIMをご利用の場合、通常はプログラムがレジストリからインストールパスを自動的に取得します。ポータブル版の場合は、パスを手動で選択する必要があります。
  4. 「リコールを防止」をクリックしてください。インターフェースがしばらく反応しなくなる場合がありますが、しばらくお待ちください。WeChatのWeChatWin.dllファイルとQQ/TIMのIM.dllファイルが変更されているため、ウイルス対策ソフトウェアから警告が表示される場合がありますが、そのまま許可してください。

WeChatのリコール防止と複数アカウントの原則

  1. x32dbgまたは OllyDbgをインストールする必要があります
  2. x32dbgを開き、
    [ファイル] -> [添付] をクリックし、[シンボル] タブに切り替えて、左下隅で WeChatWin.dll を検索し、wechatwin.dll をダブルクリックして CPU タブに入り、右クリックして検索 -> [現在の領域] -> [文字列] でキーワード「revokemsg」を検索して、最初の「revokemsg」エントリをダブルクリックします。

変更が必要な行は、現在の行の1つ上の行「je xxxxxx」です。「je xxxxxx」をダブルクリックし、「je」を「jmp」に変更してください。

次に、アカウントの複数のインスタンスの防止に関連するキーワードを検索します。
WeChat_App_Instance_Identity_Mutex_Nameディレクトリの最初の行「WeChat_App_Instance_Identity_Mutex_Name」をダブルクリックして入力します。現在の行で最初に出現する「push ebp」を修正する必要があります。「push ebp」をダブルクリックして「ret」に変更し、「jmp」に変更します。

「パッチの生成」ボタンをクリックし、「ファイルの修復」をクリックして、変更された WeChatWin.dll を取得します。

QQまたはTIMのリコール防止

  1. x64dbgを開き、「ファイル」->「添付」をクリックします。
  2. QQプロセスを添付する

3. [シンボル] タブに切り替えて、左下隅で IM.dll を検索し、IM.dll をダブルクリックして [CPU] タブに入ります。

右クリックして検索 -> 現在のエリア -> 文字列検索でキーワード「 bytes_reserved 」(フレンドの退会用)を検索します。次に、「bytes_reserved」の3番目のエントリをダブルクリックします。現在の行の1つ上の行「push ecx」を修正する必要があります。目標は、以下の「test eax」のアドレス(この場合は0x5D8F77B5)にジャンプすることです。「push ecx」をダブルクリックし、以下の「test」のアドレスにジャンプするように変更します。つまり、0x5D8F77B5から「test」にジャンプします。

グループチャットで「bytes_userdef」というキーワードを検索してリコールします。次に、3番目/4番目の「bytes_userdef」エントリをダブルクリックします。変更を有効にするには、両方のエントリを変更する必要があります。3番目のエントリを例にとると、変更する行は「push xxx」です。前の例と同様に、目標は下記の「test eax」のアドレスにジャンプすることです。この場合、アドレスは0x5D8F73E9です。「push xxx」をダブルクリックし、「jmp 0x5D8F73E9」に変更します。これは下記の「test」のアドレスにジャンプします。同じ方法で、4番目の「bytes_userdef」エントリを変更します。

「パッチの生成」ボタンをクリックし、「ファイルの修復」をクリックして、変更された IM.dll を取得します。

RevokeMsgPatcher ツール

上記はメッセージのリコールを防止する原理を説明しています。RevokeMsgPatcherツールは、以前に検出された特徴値に基づいて 16進編集を使用して対応するDLLファイルを変更します。

コードアドレス
https://github.com/huiyadanli/RevokeMsgPatcher.git

この方法は単にリコールロジックを省略するため、どのメッセージがリコールされたかを区別できません。モバイルとPC上のメッセージを比較することしかできません。

Mac 版のコードは、こちらから入手できます: https://github.com/sunnyyoung/WeChatTweak-macOS.git