
HULK DoS tool ported to Go with some additional features.
HULK DoS 도구를 Python에서 Go 언어로 포팅했습니다. 원본 Python 유틸리티는 Barry Shteiman (http://www.sectorix.com/2012/05/17/hulk-web-server-dos-tool/)이 만들었습니다. 코드를 있는 그대로 빠르고 대충 포팅했습니다. 원래 함수 이름과 로직은 대부분 그대로 유지했습니다.
Python 버전과의 주요 차이점은 Golang의 동시성 아키텍처, 즉 고루틴(goroutines)에 있습니다. hulk.py는 연결 풀의 각 연결마다 새로운 스레드를 실행하여 수백, 수천 개의 스레드를 사용합니다. 반면 hulk.go는 가벼운 고루틴만 사용하여 수십 개의 스레드만 사용합니다 (일반적으로 Golang 런타임은 CPU 코어당 하나의 스레드와 여러 서비스 스레드를 시작합니다). 이 아키텍처 덕분에 Golang 버전은 리소스를 더 효율적으로 사용하며, 동일한 하드웨어에서 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이 아닙니다. 라이선스에 대해서는 원본 유틸리티의 저자에게 문의하세요.