Η αρχιτεκτονική της αναχαίτισης

Το PS5 χρησιμοποιεί το πρωτόκολλο RTMP για τις ζωντανές μεταδόσεις του. Η βασική πρόκληση στην προσπάθεια «hijacking» του stream είναι η διαδικασία ανακάλυψης των ingest servers. Το PS5 δεν χρησιμοποιεί στατικές IP, αλλά εκτελεί DNS queries για να εντοπίσει τον κατάλληλο server. Η λύση βασίζεται στην παρεμβολή αυτής της διαδικασίας, αναγκάζοντας την κονσόλα να «νομίζει» ότι ο τοπικός υπολογιστής είναι ο επίσημος ingest server του Twitch.

DNS spoofing και διαχείριση δικτύου

Η υλοποίηση απαιτεί τον έλεγχο του DNS resolution για συγκεκριμένα domains (π.χ. contribute.live-video.net). Με τη χρήση του dnsmasq, ο δημιουργός ανακατευθύνει την κίνηση προς την IP του Mac. Για να αποφευχθεί η χειροκίνητη παραμετροποίηση στην κονσόλα, χρησιμοποιήθηκε το DHCP tagging στο OpenWRT, ώστε το PS5 να λαμβάνει αυτόματα τον τοπικό DNS server μέσω του DHCP lease.

Ροή δεδομένων και επεξεργασία

Μόλις η κίνηση ανακατευθυνθεί, ένας nginx-rtmp server αναλαμβάνει τη λήψη του stream. Η χρήση του on_publish callback επιτρέπει στον server να ειδοποιεί μια συνοδευτική εφαρμογή για την έναρξη της μετάδοσης. Το stream, το οποίο είναι κωδικοποιημένο σε H.264 με ήχο AAC, μπορεί στη συνέχεια να καταναλωθεί από οποιοδήποτε εργαλείο υποστηρίζει RTMP, όπως το OBS ή ο mpv player, εξαλείφοντας την ανάγκη για hardware capture cards.