1

オープンソースのセキュリティ製品である nmap をいくつかの C++ コードに統合する方法を調べ始めたところです。誰かがこれを試して、最良のアプローチについていくつかのアイデアを持っているなら、私は確かにそれを感謝します.

回答ありがとうございます。具体的には、ポート スキャン (ipv6) を実行したいと考えています。コマンド ラインやソケット インターフェイスなど、gpl 以外のソリューションを使用することを強くお勧めします。ただし、私たちはいくつかの厳しいタイムラインに直面しているため、最速のソリューションを探しているこの時点でもあり、必要に応じて非 gpl ソリューションの実装をバックロードできます。

4

4 に答える 4

6

(注:私は弁護士ではありません。これは法的助言として解釈されるべきではありません)

マニュアルのライセンスの章によると、Nmap はその出力を解析する製品を派生作品と見なし、したがって GPL ライセンス義務に該当することに注意してください。GPLv2は、派生作品とは何かを定義しておらず、代わりに、著作権法の定義に従って裁判所に任せています。通常の解釈では、オペレーティング システムに含まれるシステム ライブラリへのリンク以外のあらゆる形式のリンクは、リンクされた作品を派生作品にしますが、パイプまたはネットワークを介して対話する別のプロセスは、必ずしも派生作品ではありません。 GPL FAQ、「通信のセマンティクスが十分に親密であり、複雑な内部データ構造を交換している場合、それも2つの部分を組み合わせてより大きなプログラムと見なすための基礎となる可能性があります。」これは、Nmap 開発者が取っている解釈のようです。

とにかく、GPL について心配する必要がないと仮定すると、おそらくNmapの出力オプションを見たいと思うでしょう。特に、-oXXML 出力と-oG「greppable」出力の場合です。Nmap の動作をさらに制御する必要がある場合は、あらゆる種類の制御を提供する Nmap の Lua スクリプト エンジンであるNmap Scripting Engineを調べる必要があります。

于 2009-04-10T04:21:38.567 に答える
1

特定の機能の使用を検討していますか? 他の言語で nmap を使用する簡単な方法は、-oX スイッチを使用して xml を吐き出すことです。データを消費するために使用できる DTD (およびこれをお気に入りのバインド ツールの xsd に変換する多数の方法) があります。

C++ で書いていることを考えると、必要に応じて直接リンクするのはおそらく簡単でしょう。

于 2009-04-09T16:50:29.587 に答える
1

いつでもパイプで読むことができます。非 GPL が GPL にアクセスする場合でも受け入れられる伝統によると。

于 2009-04-10T04:24:55.627 に答える
0

「統合」だけでは十分ではありません。どんなことをしたいですか?「統合」のレベルによっては、nmap を別のプロセスとして実行し、その出力を取得するだけで十分な場合があります。アプリを再構築せずに nmap のバージョンを更新できるという利点があります。より緊密な結合が必要な場合は、必要な機能と「ライブラリ化」nmap に依存しますが、これは GPL コードであり、この種の統合にはアプリのソース配布が必要になることに注意してください..

于 2009-04-09T16:49:24.660 に答える