3

P2P アクティビティ、特に BitTorrent アナウンス リクエストを検出する Snort を実行しています。HTTP GET /announce.php?info_hash=XXX... リクエストが表示され、この XXX を適切な SHA1 ハッシュに変換して、何がダウンロードされているかを把握しようとしています。

これは URL エンコードされているというさまざまな記述や、% 文字を削除するだけという記述を読んだことがありますが、これを再現することはできません。

誰でもこれを行う方法を提案できますか?

4

3 に答える 3

4

info_hash SHA1 ハッシュですこれは、URL に含めるために URL エンコードされたバイナリ ハッシュです。

16 進数でエンコードされたハッシュに変換する場合は、URL、URL デコード、および 16 進数エンコードから抽出する必要があります。たとえば、Python では次のようになります。

>>> '%00%01%02%20%25ABC+XYZabc%7F%80%81%FE%FF'
'%00%01%02%20%25ABC+XYZabc%7F%80%81%FE%FF'
>>> urllib.unquote_plus(_)
'\x00\x01\x02 %ABC XYZabc\x7f\x80\x81\xfe\xff'
>>> _.encode('hex')
'00010220254142432058595a6162637f8081feff'
于 2010-10-27T19:16:30.060 に答える
0

いいえ、できます。

infohash == sha1(torrentfile["info"])

ただし、info_hash をキーとして使用して、DHT ネットワークで検索することができます

于 2016-07-04T08:43:14.770 に答える