mirror of
https://github.com/Collins3560/Cinebreak.git
synced 2026-10-17 11:00:29 +02:00
Fork of Gezine's MIT-licensed BD-JB5 (BD-J sandbox escape) extended into a full userland -> kernel -> root -> homebrew chain with automation tooling: ps5chain.py (full-chain orchestrator), ps5find.py (LAN discovery), probe payload, and local test harness. All original copyright headers and licenses preserved. Credits: Gezine, TheFlow, ufm42, john-tornblom, hammer-83, kuba-.
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
"""BD-JB5 LAN scanner - finds PS5s with RemoteJarLoader (:9025) or elfldr (:9021) open."""
|
|
import socket, sys, ipaddress, concurrent.futures
|
|
|
|
PORTS = {9025: "RemoteJarLoader (BD-JB5)", 9021: "elfldr"}
|
|
|
|
def probe(ip):
|
|
for port, name in PORTS.items():
|
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
s.settimeout(0.8)
|
|
try:
|
|
if s.connect_ex((ip, port)) == 0:
|
|
return ip, port, name
|
|
finally:
|
|
s.close()
|
|
return None
|
|
|
|
def main():
|
|
net = sys.argv[1] if len(sys.argv) > 1 else "192.168.1.0/24"
|
|
print(f"[*] Scanning {net} for BD-JB5 services...")
|
|
hosts = [str(h) for h in ipaddress.ip_network(net, strict=False).hosts()]
|
|
found = []
|
|
with concurrent.futures.ThreadPoolExecutor(max_workers=128) as ex:
|
|
for r in ex.map(probe, hosts):
|
|
if r:
|
|
found.append(r)
|
|
print(f"[+] {r[0]}:{r[1]} -> {r[2]}")
|
|
if not found:
|
|
print("[-] Nothing found. Is the BD-J payload running?")
|
|
return 0 if found else 1
|
|
|
|
if __name__ == "__main__":
|
|
main()
|