Battalja tal-Kodifikatur: Me vs Dak VNC Guy

В dan il-blog Pjuttost ftit tales programmatur ġew ippubblikati. Inħobb infakkar fl-affarijiet stupidi qodma tiegħi. Ukoll, hawn storja oħra bħal din.

L-ewwel bdejt ninteressa ruħi fil-kompjuters, speċjalment l-ipprogrammar, meta kelli madwar 11-il sena. Fil-bidu tas-sekondarja bоJien qattajt il-biċċa l-kbira tal-ħin liberu tiegħi nagħmel tbagħbis ma 'C64 tiegħi u nikteb BASIC, imbagħad naqta' l-kodiċi ħażin bl-imqass. Mhux qed niċċajta, imqass.

Wara l-iskola (madwar 16-il sena), it-tfal Ingliżi normalment imorru l-kulleġġ, fejn jagħżlu li jistudjaw tlieta jew erba’ suġġetti qabel imorru l-università. Minħabba l-imħabba tiegħi għall-kaxxa beige u t-tape recorder fid-dar, iddeċidejt li l-istudju "xjenza tal-kompjuter" fil-kulleġġ kienet l-għażla t-tajba.

Ħadt gost il-kors aktar milli stennejt; hemm l-ewwel iltqajt ma’ Pascal u Delphi.

Waqt il-waqfien bejn il-klassijiet, l-istudenti setgħu jaħdmu fuq kwalunkwe magna ħielsa fil-kamra tal-kompjuter. Immaġina: kamra enormi, iddisinjata għal madwar mitt ruħ, b’ringieli ta’ mwejjed mimlija b’magni, bħal dawk fejn il-moniter ikun qiegħed fuq l-unità tas-sistema. Il-fannijiet huma kontinwament humming, blalen tal-ġurdien huma buzz fuq l-imwejjed, ma jieqfux għal sekonda. Hemm riħa stramba fl-arja, bħallikieku 50-100 adoloxxenti ormonali qed jinbidlu perjodikament biex jiksħu mijiet ta 'ċipep Pentium III.

Minkejja r-riskji għas-saħħa, kont inħobb noqgħod bilqiegħda quddiem il-kompjuter meta kelli minuta ħielsa.

L-amministratur ta’ dmirijietu fil-kamra kien raġel qasir u ta’ età medja li ntgħażel għal dan ir-rwol minħabba x-xewqa insatiable tiegħu li jsir dittatur ħażin. Nissoponi hekk. Fuq ix-xogħol huwa sottostima; il-bniedem verament iħobb ix-xogħol tiegħu. Huwa kien inkarigat li jżomm l-ordni biex ħadd ma jkun qed juża l-kompjuter tal-iskola għal xi ħaġa mhux xierqa.

Sal-lum, l-intuwizzjoni tiegħi tgħidli li l-bonus tal-amministratur jiddependi direttament fuq in-numru ta 'studenti li qabad bl-idejn u skorta barra mill-kamra tal-kompjuter. Jien pjuttost ċert li dan il-bniedem ħallas l-ipoteka tiegħu kmieni.

Poġġa fil-kantuniera l-bogħod tal-kamra tal-kompjuter fuq mejda tal-kantuniera. U kien tajjeb li wieħed jassumi li l-monitors tal-fertilità tiegħu kienu sabu mod biex jirriproduċu b'perjodu ta 'ġestazzjoni impressjonanti qasir, kien hemm tant minnhom. Wieħed jista’ biss jistaqsi jekk verament kellux ħin biex isegwihom kollha. Ovvjament qed niċċajta... semmejt li ħa xogħlu bis-serjetà ħafna?

Dak iż-żmien, in-netwerk tal-kompjuter kien qed jaħdem Windows 2000. Malajr skoprejt li kull darba li dħalt fis-sistema, tnieda script li speċifikat li jibda s-server VNC mill-kont amministratur għal aċċess remot għad-desktop. Kull meta dan il-Guy ried jispy fuqek, kien jikkonnettja direttament mal-magna tiegħek u għassa. Kien creepy, u issa li naħseb dwarha, probabbilment illegali.

Wara li qtajt snieni fuq BASIC u C64, issa ktibt f'C u anke ftit C++. Dak iż-żmien, kont għadni interessat ħafna fil-lingwa D, li kkoreġiet xi wħud min-nuqqasijiet tas-C++, kif rajtha dakinhar.

Jien kont nidħol fil-kamra tal-kompjuters biex naqra xi ħaġa ġdida fuq D jew nilgħab mal-kompilatur Digital Mars D. Xi drabi, waqt li kont distratt milli naħseb dwar il-futur kbir ta’ D, ktibt kodiċi C biex tħakkja programmi Win32 oħra mit-tieqa tagħhom. mankijiet.

Fl-antik tajba ta 'programmar Win32, is-sejba ta' manku tat-tieqa kien l-eħfef metodu biex hack programmi oħra. Ovvjament, il-programmi GUI kollha fuq il-Windows kellhom tieqa, anki jekk ma dehritx fuq l-iskrin. Billi tikteb programm biex tirkupra manku għal proċess ieħor (essenzjalment link għalih), tista 'tibgħatlu messaġġi. Dan ippermetta għal xi operazzjonijiet bażiċi bħall-ħabi/turi ta 'tieqa tal-programm, kif ukoll affarijiet tassew friski bħal li jiġi sfurzat proċess biex jgħabbi DLL arbitrarju fl-ispazju tal-memorja tiegħu u jibda jeżegwixxi kodiċi. Wara l-injezzjoni DLL, beda l-gost.

Fl-ewwel xahar u nofs, dan id-ditektif ma tantx iddejjaqni; qabbad mas-server VNC fuq il-magna tiegħi darba jew darbtejn biss. Iżda sessjoni partikolari setgħet qajmet l-interess tiegħu. Kont qed nikteb xi kodiċi C biex naħbi t-twieqi tal-Minesweeper (mingħajr ma nagħlaqhom) biex tagħmilha aktar faċli biex tilgħab fil-klassi, meta ndunajt li l-ikona bajda tal-VNC fit-trej tas-sistema kienet saret sewda. Dan kien ifisser li issa kien qed jarah.

Komplejt nikkodifika bħas-soltu, ipprova ninjorah. Sadanittant, il-magna bdiet tonqos, tipprova tittrasmetti r-rata massima tal-qafas lil wieħed mill-moniters bla għadd fil-kantuniera tal-kamra. Il-Windows kważi waqaf jirrispondi, meta spiċċajt il-paċenzja, illoggejt u spiċċajt għall-ġurnata.

Fi żjarat taʼ wara fil- kamra tal- kompjuters, Colombo ħa interess kbir f’dak li kont nagħmel kważi kull darba. Wara madwar ir-raba 'darba, iddeċidejt: għandi bżonn nagħmel xi ħaġa dwar dan.

Nammetti li persuna raġjonevoli u razzjonali setgħet sempliċement qajmet din il-kwistjoni direttament miegħu jew mal-kap tiegħu. Madankollu, dejjem ċedi għat-tentazzjoni u malajr tkellimt lili nnifsi biex nadotta strateġija kompletament differenti.

- Ma tistax tagħmel xejn mingħajr dan is-server VNC! — Għidt lili nnifsi b'mod kalm u deċiżiv diversi drabi.

Kien meħtieġ li jinqatel VNC.

Bdejt nidħol fil-kamra tal-kompjuter ma’ gruppi kbar ta’ studenti u noqgħod bilqiegħda kemm jista’ jkun bogħod mill-kantuniera mal-moniters. Dan ħadem għal xi żmien u tani ftit ħin biex nittestja l-ideat.

L-ewwel tentattiv tiegħi, naħseb li taqbel, kien pjuttost dgħajjef. Ikklikkja bil-lemin fuq l-ikona VNC fit-trej tas-sistema, rajt menu bl-ittri maġiċi ĦRUĠ. Sfortunatament, l-ittri nkitbu b'test fil-qosor griż. L-amministratur iddiżattiva l-oġġett tal-menu "Ħruġ" permezz tal-Editur tal-Politika tal-Grupp. Ippruvajt noqtol il-proċess mit-Task Manager, imma ovvjament kien inviżibbli għalija għax kien qed jaħdem taħt kont differenti u aktar privileġġjat. Ma ħadmitx.

Is-server VNC jaħdem fuq il-port TCP 5900, ftakart. Il-pjan li jmiss tiegħi kien li nibgħat pakketti korrotta f'dan il-port sabiex niġġarrafha.

Jien qattajt mill-inqas ftit jiem tpatti mal-protokoll, bgħatt diversi forom ta 'ħażin strutturat tajjeb fil-port 5900 u nittama li jinkiser. Fl-aħħar, dan lanqas ma ħadem.

Diġà kont nibda naħseb li ma nkunx nista’ neħles minn din il-ħaġa, meta f’daqqa waħda ħarġet fuqi: hemm għandu jkun hemm tieqa! Għandna bżonn nuruha. Forsi se jkollha buttuna sabiħa mmerraq "Mute" li nista 'nagħmel użu tajjeb!

I dam kodiċi C tiegħi issa kważi perfetta biex issib il-manku għat-tieqa prinċipali ta 'proċess ieħor - u żgur biżżejjed, VNC instab. Ħassejtni ispirat meta swaba’ ttajpja WM_SHOWWINDOW. Jipprova raden dak li rajt quddiemi?

Xejn!

Issa kont kurjuż... kellha tieqa, iżda kienet qed tinjora l-messaġġi tiegħi. Iċċekkja darbtejn il-kodiċi tiegħi biex niżgura li jaħdem. Ittestjat fuq diversi proċessi oħra u ħadmet tajjeb. Ippruvajt nibgħat messaġġi oħra lit-tieqa tal-VNC, u xorta xejn.

U mbagħad reġgħet ħarġet fuqi!

Grazzi għall-ħxuna ħafna il-ktieb Charles Petzold Studjajt bir-reqqa kif jaħdmu l-proċessi Win32 ġewwa s-sistema. Kull applikazzjoni Win32 għandha tieqa kif ukoll "kju tal-messaġġi". Messaġġi skattati mill-interazzjoni tal-utent, kif ukoll messaġġi mibgħuta mill-Windows innifsu, jaslu fi kju, u l-applikazzjoni nnifisha tiddeċiedi kif tipproċessahom.

Mhux interessanti ħafna fih innifsu. Imma meta indunajt li kju ta 'messaġġi mhux ipproċessat kbir biżżejjed aġixxa bħala euristiku biex Window Process Manager jintervjeni fi proċess imdendel, għaraqt serotonin pur.

Mingħajr ma naħli sekonda, erġajt lura għall-kodiċi C tiegħi, u pprepara biex nibgħat messaġġ ieħor lit-tieqa ewlenija tal-VNC WM_SHOWWINDOW. F'ċiklu. Etern. Allura, ħafna messaġġi. WM_SHOWWINDOW, li issa kont naf li VNC se jipprova jinjora kompletament... bil-periklu tiegħu.

I kkumpilat u dam 4KB ta 'l-aktar kodiċi li jħobb il-libertà ta' ħajti. Wara madwar tliet sekondi, Windows rrappurtat li l-proċess vncserver.ехе ma weġibx, u għamilt offerta li sempliċement ma stajtx nirrifjuta:

Trid tlesti dan il-proċess?

INFERN IVA!

Ħa nammetti li għall-kumplament tal-ġurnata kont kuntent b’mod insupportabbli bija nnifsi.

Wara ftit sigħat li qattajt niddiġerixxi s-superpotenza ġdida tiegħi, iddeċidejt kif se nużaha. Kien faċli wisq li toqtol is-sessjoni eżatt quddiemu. Kelli idea aħjar - li tisparixxi kompletament.

Wara magħmudija tan-nar bil-programmazzjoni tas-socket Irrealizzajt li stajt nikteb kodiċi li jagħmel żewġ affarijiet. L-ewwel se jokkupa l-port TCP 5900 li għadu kif inħeles, li qabel kien okkupat mill-proċess tas-server VNC clueless. Imbagħad se toħloq konnessjoni TCP ġdida mas-server VNC tal-magna speċifikata. Il-kodiċi se sempliċement jipprokura d-dejta kollha bejn iż-żewġ sokits, u Columbo jaħseb li qed jgħaqqad miegħi, meta fil-fatt se jkun qed jgħaqqad ma 'server VNC kompletament differenti.

Il-kodiċi tiegħi se jaġixxi bħala pont sigriet bejni u xi ruħ fqira oħra tal-għażla tiegħi. Kien meraviljuż.

Bdejt immedjatament nikteb il-pont VNC falz tiegħi. Columbo qabbad miegħi diversi drabi, imma bqajt nipprogramma quddiemu. Wasalt għall-konklużjoni li ma kellux idea x'qed nagħmel, minkejja li ktibt affarijiet ovvji bħal numri tal-port u kummenti bħal // Прощай, жуткий шпион VNC.

Wara ftit jiem ma stajtx inġib il-kodiċi jaħdem b'mod korrett. Biex tgħaxxaq, kont qed naħdem kważi kontinwament bl-ikona VNC sewda fit-trej tas-sistema. Waqt li kien imqabbad, ma stajtx nirrilaxxa l-port biex nittestja l-kodiċi tiegħi.

Kieku kont naf dakinhar netcat!

Fl-aħħar, in-nervituri ċedew; wara kollox, kont żagħżugħ ta’ 17-il sena bla paċenzja. Nara l-ikona bajda tas-server tal-VNC terġa' tinbidel sewda, ftaħt, ftaħt il-kodiċi oriġinali li kien jimla l-kju tal-messaġġi, u għamillu quddiem għajnejh. Saħansitra stennejt ftit sekondi qabel ma kklikkja End Process, biss biex niżguraw li raha.

Jekk li tagħfas dik il-buttuna ma kkonvinċiniex bis-sħiħ li kien worth it, allura hu qabeż minn wara l-fortizza tal-moniters tiegħu biex javviċinani malajr u joħroġni mill-kamra żgur li għamel.

Bħala riżultat, ġejt ipprojbit min-netwerk għal ġimgħatejn. Kastig ġust, ħsibt. Wara madwar tliet ġimgħat, is-server VNC sparixxa mill-iskripts tal-boot u qatt ma deher imkien ieħor. Qatt ma kont naf jekk l-inċident tiegħi kellux xi rwol f'dan jew le, iżda ħarbat kompletament il-pjan tiegħi li nikseb fabulously sinjuri billi nbiegħ il-pistola VNC tiegħi lil studenti depressi fis-swali tal-kompjuter tal-kulleġġ madwar il-pajjiż.

Sors: www.habr.com

Żid kumment