
أداة HULK لـ DoS مُنقَّلة إلى Go مع بعض الميزات الإضافية.
أداة HULK لحجب الخدمة منقولة إلى لغة Go من Python. الأداة الأصلية بلغة Python من إعداد Barry Shteiman http://www.sectorix.com/2012/05/17/hulk-web-server-dos-tool/ لقد نقلت الكود كما هو بشكل سريع وغير منقّح. أسماء الدوال الأصلية محفوظة، وكذلك المنطق الأصلي في معظمه.
الفرق الرئيسي عن نسخة Python يكمن في معمارية Golang للتوازي: الـ goroutines. hulk.py يشغل خيطاً جديداً لكل اتصال في تجمع الاتصالات، لذا يستخدم مئات وآلاف الخيوط. hulk.go يستخدم فقط goroutines خفيفة الوزن لا تحتاج سوى عشرات الخيوط (عادةً ما يبدأ golang خيطاً واحداً لكل نواة معالجة إضافةً إلى عدة خيوط خدمة). هذه المعمارية تتيح لنسخة 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. حسناً. إذاً، نسخة Go من HULK مرخصة بموجب GPLv3. انظر LICENSE.
لا علاقة لي بأداة HULK الأصلية المكتوبة بلغة Python. أداة HULK الأصلية تعود إلى Barry Shteiman (http://sectorix.com). لا توجد أي إشارات إلى ترخيص في المصدر الأصلي، وبالتالي فهي ليست خاضعة لـ GPL. اسأل مؤلف الأداة الأصلية عن الترخيص.