Վերադառնալ
Ինչպես հետազոտողը PS5-ի RTMP հոսքն ուղղեց իր Mac-ին
SiTech AI Team2 წთ. საკითხავი

Ինչպես հետազոտողը PS5-ի RTMP հոսքն ուղղեց իր Mac-ին

Ծրագրավորողի գրառումը նկարագրում է, թե ինչպես տեղական DNS-ի պատասխանները վերահսկելով նա PlayStation 5-ի Twitch հեռարձակումն ուղղեց իր Mac-ին և ստացավ 1080p60 հոսքը nginx-rtmp-ով ու mpv-ով։

Սեպտեմբերի 28-ին ծրագրավորող Yash Garg-ը հրապարակել է գրառում, որտեղ նկարագրում է, թե ինչպես ստիպեց PlayStation 5-ին հեռարձակել ոչ թե Twitch-ին, այլ իր Mac-ին։ Նպատակը գործնական էր՝ առանց capture card գնելու ընկերներին Discord-ում խաղը ցույց տալ։ Մեթոդը չի կոտրում Sony-ի կոնսոլը. այն վերահսկում է, է պատասխանում տնային router-ը, երբ PS5-ը DNS-ով փնտրում է հեռարձակման սերվեր։

Ուր է գնում հոսքը և ինչու

PS5-ը Twitch և YouTube հեռարձակում է անմիջապես արկղից, երկուսն էլ օգտագործում են RTMP (Real-Time Messaging Protocol)։ Գրառման համաձայն՝ կոնսոլը Twitch-ի IP-ն չի պահում. ամեն հեռարձակման սկզբում սերվերի անունը լուծում է DNS-ով։ Ով պատասխանում է այդ հարցմանը, նա է որոշում, թե ուր կգնա տեսանյութը։

Սխեմա. PS5, DNS և Twitch

Երկու անհաջող փորձ

Առաջին փորձը ingest.twitch.tv-ն Mac-ին ուղղելն էր։ Այդ անունը պատասխանում է միայն մեկ հարցի. ո՞ր տարածաշրջանային սերվերն օգտագործել։ Իրական հեռարձակումը պահանջում է RTMPS, այսինքն՝ RTMP՝ TLS-ի մեջ 443 պորտին, և PS5-ը ստուգում է վկայականը. ինքնաստորագրվածը մերժվում է, իսկ սեփականը տեղադրել հնարավոր չէ։

Հաջորդ փորձը YouTube-ն էր։ Նրա ingest-ը 1935 պորտին ընդունում է սովորական RTMP, ուստի վկայական պետք չէր, և հոսքը հասավ Mac։ Սակայն կոնսոլը նաև ստուգում է YouTube-ի API-ն. YouTube-ը ոչինչ չէր ստացել, ստուգումը ձախողվեց, և հեռարձակումը դադարեց մոտ 60 վայրկյան հետո։

Անունը, որը լուծեց խնդիրը

Հեռարձակման ժամանակ DNS լոգերը ցույց տվեցին, որ PS5-ը դիմում է ingest.global-contribute.live-video.net-ին, որը տանում է aps30.contribute.live-video.net սերվերին։ Ծնող դոմենը՝ contribute.live-video.net, ուղղելը ընդգրկում է բոլոր ենթադոմենները, ուստի հոսքը TLS-ի խնդիր չունենալով հասնում է Mac։ Հեղինակը Mac-ում աշխատեցնում է dnsmasq և այդ անունների համար վերադարձնում է լոկալ հասցեն. OpenWrt-ով GL.iNet router-ում DHCP-ի 6-րդ օպցիան կապեց կոնսոլի lease-ի հետ։

Սխեմա. PS5-ի հոսքը dnsmasq-ի և nginx-rtmp-ի միջով դեպի Mac

nginx-rtmp-ը լսում է 1935 պորտին, իսկ callback-ը տեղեկացնում է menu bar ծրագրին հեռարձակման մեկնարկի մասին։ Կոնսոլը ուղարկում է 1080p60 տեսանյութ H.264-ով և ստերեո AAC ձայնով։ Այստեղից հոսքը կարելի է վերահեռարձակել OBS-ով, ձայնագրել կամ ուղղակի նվագարկել mpv-ով. հեղինակը օգտագործում է low-latency պրոֆիլը, որ ուշացումը մեկ վայրկյանից պակաս լինի, և պատուհանը կիսում է Discord-ում։

Ինչ է սա իրականում ցույց տալիս

Սա խոցելիություն չէ, որ ինչ-որ մեկը ինտերնետից կարողանա ուրիշի խաղը ձայնագրել. գրառման մեջ չկա ոչ CVE, ոչ արտադրողի արձագանք, ոչ էլ հեռավոր հարձակման ուղի։ Ուղղումը պահանջում է վերահսկողություն լոկալ ցանցի և կոնսոլի DNS սերվերի վրա։ Դասը դիզայնի մասին է. կոնսոլի համար DNS-ը միակ ցուցիչն է, թե ուր է գնում տեսանյութը։

SSiTech

SiTech — AI-ով հզորացված վեբ մշակում

Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։