
PythonからGo言語に移植されたHULK DoSツール。 オリジナルのPythonユーティリティはBarry Shteimanによるものです http://www.sectorix.com/2012/05/17/hulk-web-server-dos-tool/ コードをそのまま、手早く簡潔に移植しただけです。オリジナルの関数名はそのまま維持され、オリジナルのロジックもほぼ維持されています。
Python版との主な違いは、並行処理のためのGolangアーキテクチャ、すなわちgoroutineにあります。hulk.pyはコネクションプール内の各接続に対して新しいスレッドを起動するため、数百から数千ものスレッドを使用します。hulk.goは、わずか数十スレッドしか使用しない軽量なgoroutineを使用するだけです(通常、GolangランタイムはCPUコアごとに1スレッドといくつかのサービススレッドを起動します)。このアーキテクチャにより、Go版はリソースをより効率的に消費でき、同じハードウェア上でPython版よりもはるかに大きなコネクションプールを実現できます。
このツールはストレステストを目的としており、設定が不適切なサーバーや作りが不十分なアプリを実際にダウンさせる可能性があります。慎重に使用してください。
例:
$ hulk -site http://example.com/test/ 2>/dev/null
$ HULKMAXPROCS=4096 hulk -site http://example.com 2>/tmp/errlog
役立つ環境変数:
詳細: http://old.siberian.laika.name/node/7
更新: 実は、このユーティリティはGolangを少し試していたときに一度きりのタスクのために作成したものです。驚いたことに、このユーティリティが他の人々に使用され、GitHubでスターを獲得し、BlackArch Linuxディストリビューションにも含まれていることに気付きました。そこでコードを少し整理しました。
これは単純で短いコードであるためパブリックドメインになるかもしれないと思いますが、すでに覚えていない理由によりGPLを選びました。というわけで、HULKのGo版はGPLv3の下でライセンスされています。LICENSEを参照してください。
私はPython版のオリジナルHULKユーティリティとは関係ありません。オリジナルのHULKユーティリティはBarry Shteiman (http://sectorix.com) に帰属します。元のソースにはライセンスへの言及がないため、GPLの下ではありません。ライセンスについてはオリジナルのユーティリティの作者に問い合わせてください。