PC版WeChat/QQのメッセージ撤回を防ぐツールをエンジニア視点で解説
このツールは、単なる「メッセージ撤回を防ぐ」だけでなく、セキュリティやデバッグの観点からエンジニアにとって興味深い側面を持っています。
リバースエンジニアリングの学習
アプリケーションの動作を深く理解するのに役立ちます。このツールは、メッセージの撤回機能がどのように実装されているかを分析し、その動作を変更するプロセスを実践的に学ぶ良い機会になります。
バイナリパッチングの理解
ソフトウェアのバイナリコードを直接変更する「バイナリパッチング」という技術を体験できます。これは、セキュリティ研究や、既存のソフトウェアの機能を拡張する際に非常に重要なスキルです。
デバッグとテスト
開発中のアプリケーション(特に通信系のもの)で、特定の条件下での動作をテストする際に役立つことがあります。例えば、「メッセージが撤回された時に、アプリケーションがどのような状態になるか」といったテストシナリオを検証できます。
導入は非常にシンプルです。手動でヘックスエディタを使ってパッチを当てる方法と、ツールを使って自動で行う方法があります。ツールを使う方法が一般的で簡単です。
ツールのダウンロード
まず、GitHubのリリースページから「RevokeMsgPatcher.exe」をダウンロードします。
実行
ダウンロードしたRevokeMsgPatcher.exeを実行します。
アプリの選択とパッチ適用
ツールを起動すると、PCにインストールされているWeChat、QQ、TIMが自動的に検出されます。
パッチを適用したいアプリケーションを選択し、「パッチ」ボタンをクリックします。
これで完了です!
注意点
必ずバックアップを取る
パッチを適用する前に、元の実行ファイル(WeChat.exeなど)をバックアップしておくことを強くおすすめします。万が一問題が発生した場合でも、元のファイルに戻すことができます。
ウィルス対策ソフトの警告
このツールはアプリケーションの実行ファイルを直接変更するため、ウィルス対策ソフトが警告を出すことがあります。これは、悪意のあるソフトウェアが取る行動と似ているためですが、このツール自体は悪意のあるものではありません。ご自身の判断で使用してください。
このツール自体は実行ファイルなので、直接コードを書いて使うものではありません。しかし、このツールが内部的に行っている処理を概念的に説明するなら、次のような「擬似コード」で考えることができます。
// ターゲットとなるアプリケーションの実行ファイルを開く
file = open("C:\\Program Files\\Tencent\\WeChat\\WeChat.exe", "binary_mode");
// 実行ファイル内の特定の場所(オフセット)を探す
// このオフセットには、メッセージ撤回に関連する命令が含まれている
offset = find_specific_hex_sequence_in(file);
// その命令を、何もしない命令(NOP: No Operation)に置き換える
// これが「パッチを当てる」という行為
file.write_at(offset, "NOP");
// ファイルを保存して閉じる
file.close();
これはあくまでイメージですが、このツールがやっていることは、特定のバイナリデータを別のバイナリデータに置き換える、という非常にシンプルな処理です。