0

ユニコード文字列の経験はほとんどありません。これが基準に適合するかどうかさえわかりません。

いずれにせよ、私は nmap を使用して実行しました:

# nmap -sV -O 192.168.0.8 

私のLANのボックスに対して。Nmap は、開いているポートから返された数行にわたる文字列を生成しましたが、その形式が原因で多くの出力を理解できません。たとえば、小さなスニペットは次のようになります。

-Port8081-TCP:V=6.00%I=7%D=10/20%Time=52642C3A%P=i686-pc-linux-gnu%r(FourOhFourRequest,37,"HTTP/1\.1\x20503\x20Service\x20Unavailable\r\nContent-Length:\x200\r\n\r\n")%r

私の最初の考えは、デコードが必要な URL エンコーディングでしたが、それは正しくありません。シリアル通信のパディングのように見えますか?「\x200」または「\x20503」、または「x\20」であることが多い別のものを解釈する方法に光を当てることができる人なら誰でも。

文字列全体を取り込んで ASCII に変換する小さな Python スクリプトを作成することを考えました。

>>> s = '<STRING>'
>>> eval('\x20"'+s.replace('"', r'"')+'"').encode('ascii')

私は正しい軌道に乗っていますか?

4

2 に答える 2

1

表示される文字列はサービス フィンガープリントです。これには、Nmap が送信するさまざまなプローブに対して受信した応答が含まれています。応答に識別情報があると思われる場合は、指紋を Nmap プロジェクトに送信して、今後の検出を改善してください。

おそらく、サービスが有用な情報を送信していないことが原因です。たとえば、あなたが提供したサンプルにはServer:、HTTP サーバーを識別するヘッダーがありません。

この文字列をどのように回すかという技術的な問題に答えるには:

"HTTP/1\.1\x20503\x20Service\x20Unavailable\r\nContent-Length:\x200\r\n\r\n"

エスケープされていないバージョンに変換するには、次のようにします。

>>> print mystring
"HTTP/1\.1\x20503\x20Service\x20Unavailable\r\nContent-Length:\x200\r\n\r\n"
>>> print mystring.decode('string-escape')
"HTTP/1\.1 503 Service Unavailable
Content-Length: 0

"
于 2013-10-21T14:58:32.473 に答える