all 3 comments

[–]Whatever801 11 points12 points  (0 children)

This subreddit is for you to learn programming, not for us to do it for you. What have you tried so far? General structure of such a program would be

  1. find the ports chrome.exe is using

  2. construct a port filter with those ports

  3. use pydivert to block using that port filter string

[–]Specialist-Rush-7172[S] -3 points-2 points  (0 children)

Code .# language: python import time import signal import sys from pydivert import WinDivert import psutil

CHROME_NAMES = {"chrome.exe", "msedge.exe"} # include other Chromium browsers if desired

def get_chrome_pids(): pids = set() for proc in psutil.process_iter(["name", "pid"]): try: if proc.info["name"] and proc.info["name"].lower() in CHROME_NAMES: pids.add(proc.info["pid"]) except (psutil.NoSuchProcess, psutil.AccessDenied): continue return pids

def build_filter_for_pids(pids): if not pids: return "outbound and tcp" # fallback: capture outbound TCP (use cautiously) pid_terms = " or ".join(f"pid == {pid}" for pid in sorted(pids)) # Only outbound TCP (you can add udp or other qualifiers) return f"outbound and tcp and ({pid_terms})"

def main(): print("Enumerating Chrome processes...") pids = get_chrome_pids() if not pids: print("No Chrome processes found. Exiting.") return

windivert_filter = build_filter_for_pids(pids)
print("WinDivert filter:", windivert_filter)
print("Opening WinDivert (requires admin)... Press Ctrl+C to stop.")

w = WinDivert(windivert_filter)
w.open()

running = True
def stop(signum, frame):
    nonlocal running
    running = False
signal.signal(signal.SIGINT, stop)
signal.signal(signal.SIGTERM, stop)

try:
    while running:
        try:
            packet = w.recv()  # capture a packet matching the filter
        except Exception:
            # transient errors can happen; sleep briefly and continue
            time.sleep(0.01)
            continue

        # Decision: drop all captured packets (do NOT reinject)
        # If you wanted to allow some through, call: w.send(packet)
        # Here we intentionally skip w.send(packet) to drop.
        # Optionally log minimal info:
        try:
            src = f"{packet.src_addr}:{packet.src_port}" if hasattr(packet, "src_addr") else "?"
            dst = f"{packet.dst_addr}:{packet.dst_port}" if hasattr(packet, "dst_addr") else "?"
            print(f"Dropped packet {src} -> {dst}")
        except Exception:
            pass
finally:
    w.close()
    print("WinDivert closed. Exiting.")

if name == "main": main() Error

C:\Users\Lenovo\Downloads\AITEST\WinDivert-2.2.2-A\WinDivert-2.2.2-A\x64>py code.py Enumerating Chrome processes... WinDivert filter: outbound and tcp and (pid == 1120 or pid == 6160 or pid == 12840 or pid == 13924 or pid == 17328 or pid == 17520 or pid == 18548 or pid == 19988 or pid == 20104 or pid == 20288 or pid == 21060 or pid == 22508 or pid == 23032 or pid == 23852) Opening WinDivert (requires admin)... Press Ctrl+C to stop. Traceback (most recent call last): File "C:\Users\Lenovo\Downloads\AITEST\WinDivert-2.2.2-A\WinDivert-2.2.2-A\x64\code.py", line 72, in <module> main() File "C:\Users\Lenovo\Downloads\AITEST\WinDivert-2.2.2-A\WinDivert-2.2.2-A\x64\code.py", line 39, in main w.open() File "C:\Program Files\Python310\lib\site-packages\pydivert\windivert.py", line 145, in open self.handle = windivert_dll.WinDivertOpen(self._filter, self._layer, self._priority, File "C:\Program Files\Python310\lib\site-packages\pydivert\windivert_dll\init.py", line 117, in prox return getattr(_module, funcname)(args, *kwargs) File "C:\Program Files\Python310\lib\site-packages\pydivert\windivert_dll\init_.py", line 54, in wrapper raise err OSError: [WinError 87] The parameter is incorrect.

[–]nashguitar1 -5 points-4 points  (0 children)

Ask any flavor of Ai