一般的なトレントクライアントでDHTブロックを無効にする


多くのいわゆる「プライベート」トラッカーでは、DHTネットワークの使用を許可しないフラグセットでトレントが配信されます 。 これの目的は、このトラッカーに登録されていない顧客への資料の配布を防ぐことです。 ただし、ユーザーにとっては、これはサイドの数が減少することを意味し、時には大幅に減少します。

以下では、一般的なトレントクライアントでこの制限を無効にする方法について説明します。 一般的なアプローチと、 uTorrentおよびqBitTorrentの現在のバージョンへの実用的なアプリケーションを検討します。

1.はじめに。


過去には、いわゆる「DHTパッチ」およびパッチ自体に関する多くの情報がネットワークに投稿されていました。 ただし、これらのデータを分析すると、しばしば矛盾し、場合によっては完全に機能しなくなることさえあります。 これは、クライアントの継続的な更新、プログラムの構造の変更、および場合によっては-パッチの作成者の誤ったアプローチによるものです。

既製のソリューションを作成するだけでなく、読者が将来の変更があった場合でも、新しいバージョンのクライアントのDHTの制限を取り除くことができるように、主要な手順を分析します。

2.準備。


必要なもの:

  1. トレントクライアントの実際の分布。
  2. uTorrentおよびqBitTorrent- 7-zipの場合など、インストールファイルを解凍できるアーカイバ。
  3. uTorrent- UPXの場合、クライアント実行可能ファイルのアンパッカー。
  4. IDAまたはその他の逆アセンブラー。

まず、実行可能ファイルを抽出して抽出します。 これを行うには、ダウンロードしたインストーラーを開き、7-zipで開きます。 必要なもの:


uTorrentの場合、UPXパッケージを展開する必要もあります。これは、次のコマンドで実行できます。
upx.exe -d Carrier.exe

2.コードを検索して変更します。


一般に、アセンブラレベルのすべてのクライアントでのDHTブロッキングの実装は同じように見えます。これはフラグチェック関数の呼び出しであり、この関数がゼロ値を返す場合、DHTを使用できるコード領域に移動します。

 call TestPrivate test eax, eax jz NotPrivate 

このため、パッチ自体はコード74 => EBの1バイトの単純な変更で表現されます。これにより、条件付き遷移jzが無条件になり、「プライバシー」のチェックが無視されます。

この関数を見つけることは残っています。

実際、このコードの詳細と「プライベート」キーワードの存在を考えると、これはまったく難しくありません。 IDAで解凍されたuTorrentクライアントファイルを開き、次のキーワードを検索します。



uTorrentで指定されたキーを使用すると、コードのセクションが3つしかないことがわかります。 それらは次のようになります。


必要なコードがリストの3番目であることは明らかです。これは、関数呼び出しと、後続の条件付き遷移でゼロに戻るためのチェックだけだからです。

前に述べたように、私たちのタスクは単純に関数を置き換えることです。

実際、これは特性シーケンスの代替です
68 00 FF 69 00 E8 19 F1 FA FF 85 C0 74 07
に
68 00 FF 69 00 E8 19 F1 FA FF 85 C0 EB 07

qBitTorrentの場合、開発者がインストーラーにpdbファイルを埋め込んでいるので、タスクはさらに単純化され、関数の名前がより明確になり、キーワードによる検索が単純化されます。



これは検証コードそのものです。



ご覧のとおり、実際には、uTorrentと見分けがつきません。 パッチは同様です:



これは、特性シーケンスの代替です。
E8 20 CB FA FF 84 C0 74 59
に
E8 20 CB FA FF 84 C0 EB 59

qBitTorrentは、64ビットクライアントとしても提供されます。 彼に対するアクションはまったく同じです。ただし、64ビットバージョンのIDAが必要です。 キーワードの検索結果は予想通り類似しています:



対応する関数の外観はわずかに異なりますが、本質は同じままです。



さて、対応するパッチは、ここでは3バイトになります。



これは特性シーケンスの代替品です
E8 8F 0E F8 FF 4C 8D 3D 54 E5 46 01 83 CB FF 84 C0 0F 84 DB 00 00 00
に
E8 8F 0E F8 FF 4C 8D 3D 54 E5 46 01 83 CB FF 84 C0 E9 DC 00 00 00 00

3.まとめ


人気のあるuTorrentおよびqBitTorrentクライアントでプライベートトレントに対するDHTの使用を制限する機能を見つけて無効にする手順を継続的に研究しました。
提案されたメカニズムは他のクライアントにも似ていると思います-いずれにせよ、私はComboPlayerでチェックしました。

プロセスを自動化するために、現在のバージョンのuTorrentおよびqBitTorrent用に2つのパッチャーを作成しました。 uTorrentの場合、パッチャーは元のインストーラーも解凍します。 ファイルはここからダウンロードできます:

QBitTorrent x32パッチャー
QBitTorrent x64パッチャー
UTorrentアンパックファイルパッチャー
サイレントオールインワンuTorrentパッチャー :インストーラーをアンパック、パッチ、パックし、インストール済みのuTorrentをアンパック、パッチ、パックします(インストールフォルダーがデフォルトである場合、つまり、「%userprofile%\ AppData \ Roaming \ uTorrent \ "

Source: https://habr.com/ru/post/J346990/


All Articles