
HULK DoS-инструмент, портированный на Go с некоторыми дополнительными функциями.
Инструмент HULK DoS, портированный на язык Go с Python.
Оригинальная утилита на Python от Barry Shteiman http://www.sectorix.com/2012/05/17/hulk-web-server-dos-tool/
Я просто портировал код «как есть», на скорую руку. Имена оригинальных функций сохранены, и оригинальная логика в основном тоже сохранена.
Основное отличие от Python-версии заключается в архитектуре Golang для параллелизма: горутины. hulk.py создаёт
новый поток для каждого соединения в пуле соединений, поэтому использует сотни и тысячи потоков.
hulk.go просто использует лёгкие горутины, которые задействуют лишь десятки потоков (обычно среда выполнения golang запускает один поток на
ядро CPU плюс несколько служебных потоков). Эта архитектура позволяет 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. Ладно. Итак, Go-версия HULK лицензирована под GPLv3. Смотрите LICENSE.
Я не связан с оригинальной утилитой HULK на Python. Оригинальная утилита HULK принадлежит Barry Shteiman (http://sectorix.com). В исходном коде нет никаких упоминаний о лицензии, следовательно, она не подлежит GPL. Вопросы о лицензии задавайте автору оригинальной утилиты.