Coder Battle: Ako batok Kanang VNC Guy

Π’ kini nga blog Daghang mga istorya sa programmer ang gipatik. Ganahan ko nga mahinumdom sa akong mga karaan nga kabuang. Aw, aniay lain nga istorya.

Una kong nahimong interesado sa kompyuter, ilabina sa programming, sa dihang mga 11 anyos pa ako. Sa pagsugod sa hayskul bΠΎGigugol nako ang kadaghanan sa akong libre nga oras sa pag-tinker sa akong C64 ug pagsulat sa BASIC, dayon giputol ang dili maayo nga code gamit ang gunting. Wala ko nagkomedya, gunting.

Human sa klase (sa mga edad nga 16), ang mga bata sa Britanya kasagarang moadto sa kolehiyo, diin sila mopili sa pagtuon sa tulo o upat ka mga subject sa dili pa moadto sa unibersidad. Tungod sa akong gugma sa beige box ug tape recorder sa balay, nakahukom ko nga ang pagtuon sa β€œcomputer science” sa kolehiyo mao ang hustong pagpili.

Nalingaw ko sa kurso nga labaw sa akong gilauman; didto ko unang nakaila ni Pascal ug Delphi.

Panahon sa mga pahulay tali sa mga klase, ang mga estudyante mahimong magtrabaho sa bisan unsang libre nga makina sa kwarto sa kompyuter. Hunahunaa: usa ka dako nga lawak, nga gidisenyo alang sa mga usa ka gatos ka mga tawo, nga adunay mga laray sa mga lamesa nga puno sa mga makina, sama niadtong diin ang monitor nagbarug sa sistema sa yunit. Ang mga fans kanunay nga nag-hum, ang mga bola sa mouse nag-ungot sa mga lamesa, nga wala mohunong sa usa ka segundo. Adunay usa ka katingad-an nga baho sa hangin, ingon nga ang 50-100 nga mga tin-edyer nga hormonal kanunay nga nagbag-o aron makapabugnaw sa gatusan nga Pentium III chips.

Bisan pa sa mga kapeligrohan sa panglawas, ganahan kong molingkod sa kompyuter kon duna koy libreng minuto.

Ang admin nga nag-duty sa kwarto usa ka mubo, tunga-tunga sa edad nga lalaki nga gipili alang niini nga tahas tungod sa iyang walay katagbawan nga tinguha nga mahimong usa ka daotan nga diktador. Nagtuo ko. Ang pag-duty usa ka gamay nga pahayag; gihigugma gyud sa lalaki ang iyang trabaho. Gitahasan siya sa pagbantay sa kahapsay aron walay mogamit sa kompyuter sa eskwelahan alang sa bisan unsa nga dili angay.

Hangtod karon, ang akong intuition nagsulti kanako nga ang bonus sa admin direkta nga nagdepende sa gidaghanon sa mga estudyante nga iyang gikuptan sa kamot ug gi-eskort paggawas sa kwarto sa kompyuter. Sigurado ko nga sayo nga nabayran niining tawhana ang iyang utang.

Milingkod siya sa halayong suok sa computer room sa usa ka suok nga lamesa. Ug luwas nga hunahunaon nga ang iyang mga monitor sa pagkamabungahon nakakaplag usa ka paagi sa pagpanganak sa usa ka mubo nga yugto sa pagmabdos, adunay daghan kaayo niini. Ang usa makapangutana lang kon duna ba siyay panahon sa pagsubay kanilang tanan. Syempre, kataw-anan ko... nahisgutan ba nako nga seryoso kaayo siya sa iyang trabaho?

Nianang panahona, ang computer network nagdagan sa Windows 2000. Sa wala madugay akong nadiskobrehan nga sa matag higayon nga ako mag-log in sa sistema, usa ka script ang gilusad nga nagtakda sa pagsugod sa VNC server gikan sa administrator account alang sa hilit nga pag-access sa desktop. Bisan kanus-a kini nga tawo gusto nga espiya kanimo, direkta nga magkonektar sa imong makina ug motan-aw. Makalilisang kini, ug karon nga akong gihunahuna kini, lagmit ilegal.

Naputol ang akong ngipon sa BASIC ug C64, nagsulat na ko sa C ug bisan gamay nga C++. Niadtong panahona, interesado gihapon ko sa D nga pinulongan, nga nagtul-id sa pipila ka mga kakulangan sa C ++, sama sa akong nakita kaniadto.

Kanunay kong moadto sa kwarto sa kompyuter aron magbasa og bag-ong butang sa D o magdula sa Digital Mars D compiler. Usahay, samtang nalinga ako sa paghunahuna bahin sa maayong kaugmaon sa D, nagsulat ko og C code aron ma-hack ang ubang mga programa sa Win32 pinaagi sa ilang bintana. mga gunitanan.

Sa maayong karaan nga mga adlaw sa Win32 programming, ang pagpangita sa usa ka kuptanan sa bintana mao ang labing kadali nga pamaagi sa pag-hack sa ubang mga programa. Dayag nga, ang tanan nga mga programa sa GUI sa Windows adunay usa ka bintana, bisan kung wala kini makita sa screen. Pinaagi sa pagsulat sa usa ka programa aron makuha ang usa ka kuptanan sa lain nga proseso (sa tinuud usa ka link niini), mahimo nimong ipadala ang mga mensahe niini. Gitugotan niini ang pipila ka mga batakang operasyon sama sa pagtago / pagpakita sa usa ka bintana sa programa, ingon man ang mga cool nga butang sama sa pagpugos sa usa ka proseso nga magkarga sa usa ka arbitraryong DLL sa wanang sa memorya niini ug magsugod sa pagpatuman sa code. Pagkahuman sa DLL injection, nagsugod ang kalingawan.

Sa unang bulan ug tunga, kini nga detektib wala kaayo makahasol kanako; kini konektado sa VNC server sa akong makina kausa o kaduha lang. Apan ang usa ka partikular nga sesyon tingali nakapukaw sa iyang interes. Nagsulat kog C code para itago ang Minesweeper windows (nga walay pagsira) para mas sayon ​​ang pagdula sa klase, sa dihang namatikdan nako nga ang puti nga VNC icon sa system tray nahimong itom. Kini nagpasabot nga siya karon nagtan-aw kanako.

Gipadayon nako ang coding sama sa naandan, naningkamot nga dili siya tagdon. Sa kasamtangan, ang makina nagsugod sa paghinay, naningkamot nga ipadala ang pinakataas nga frame rate ngadto sa usa sa dili maihap nga mga monitor sa suok sa lawak. Ang Windows hapit mihunong sa pagtubag, sa dihang nahurot ang akong pasensya, nag-log out ko ug nahuman alang sa adlaw.

Sa misunod nga mga pagduaw sa lawak sa kompiyuter, si Colombo interesado kaayo sa akong ginabuhat halos tanang higayon. Pagkahuman sa ikaupat nga higayon, nakahukom ko: Kinahanglan kong buhaton ang usa ka butang bahin niini.

Giangkon nako nga ang usa ka makatarunganon, makatarunganon nga tawo mahimo nga direkta nga nagpataas niini nga isyu ngadto kaniya o sa iyang amo. Bisan pa, kanunay kong nagpadala sa tintasyon ug dali nga nakigsulti sa akong kaugalingon sa pagsagop sa usa ka hingpit nga lahi nga estratehiya.

- Wala ka'y ​​mahimo kung wala kini nga VNC server! β€” Kalmado ug desidido kong gisulti sa akong kaugalingon sa makadaghan.

Kinahanglang patyon ang VNC.

Nagsugod ako sa pag-adto sa kwarto sa kompyuter nga adunay daghang mga grupo sa mga estudyante ug naglingkod nga layo sa eskina uban ang mga monitor kutob sa mahimo. Kini nagtrabaho sa makadiyot ug naghatag kanako og panahon sa pagsulay sa mga ideya.

Ang akong una nga pagsulay, sa akong hunahuna mouyon ka, medyo huyang. Pag-right-click sa VNC icon sa system tray, nakakita ko og menu nga adunay mga magic letter EXIT. Ikasubo, ang mga letra gisulat sa gray nga outline nga teksto. Gi-disable sa tagdumala ang "Exit" menu item pinaagi sa Group Policy Editor. Gisulayan nako nga patyon ang proseso gikan sa Task Manager, apan siyempre kini dili makita kanako tungod kay kini nagdagan ubos sa usa ka lahi, mas pribilihiyo nga account. Wala kini nahimo.

Ang VNC server nagdagan sa TCP port 5900, nahinumdom ko. Ang akong sunod nga plano mao ang pagpadala sa mga dunot nga pakete sa kini nga pantalan aron ma-crash kini.

Gigugol nako ang labing menos pipila ka mga adlaw sa pag-usisa sa protocol, pagpadala sa lainlaing mga porma sa maayong pagkahan-ay nga crap sa port 5900 ug nanghinaut nga kini maguba. Sa katapusan, kana wala usab molihok.

Nagsugod na ako sa paghunahuna nga dili nako mapapas kini nga butang, sa diha nga kini kalit nga misantop sa akong hunahuna: kinahanglan adunay usa ka bintana didto! Kinahanglan natong ipakita kini. Tingali kini adunay usa ka nindot nga juicy "Mute" nga buton nga magamit nako pag-ayo!

Gipadagan nako ang akong hapit hingpit nga C code aron makit-an ang kuptanan sa main window sa lain nga proseso - ug sigurado, nakit-an ang VNC. Nadasig ko sa dihang nag-type ang akong mga tudlo WM_SHOWWINDOW. Try to guess unsa akong nakita sa akong atubangan?

Wala!

Karon na curious ko... naay bintana, pero gibalewala ang akong mga mensahe. Gisusi nako ang akong code aron masiguro nga kini molihok. Gisulayan kini sa daghang uban pang mga proseso ug kini nagtrabaho nga maayo. Gisulayan nako ang pagpadala sa ubang mga mensahe sa VNC window, ug wala gihapon.

Ug unya misantop sa akong hunahuna pag-usab!

Salamat sa baga kaayo ang libro Charles Petzold Gitun-an nako pag-ayo kung giunsa ang mga proseso sa Win32 nagtrabaho sa sulod sa sistema. Ang matag aplikasyon sa Win32 adunay usa ka bintana ingon man usa ka "pila sa mensahe". Ang mga mensahe nga na-trigger sa interaksyon sa tiggamit, ingon man ang mga mensahe nga gipadala mismo sa Windows, moabut sa pila, ug ang aplikasyon mismo ang magdesisyon kung giunsa kini pagproseso.

Dili kaayo makapaikag sa iyang kaugalingon. Apan sa dihang akong naamgohan nga ang usa ka dako nga igo nga wala maproseso nga pila nga mensahe naglihok isip usa ka heuristic alang sa Window Process Manager aron mangilabot sa usa ka gibitay nga proseso, nagsugod ako sa singot sa puro nga serotonin.

Sa walay pag-usik sa usa ka segundo, mibalik ko sa akong C code, nangandam sa pagpadala og laing mensahe sa main window sa VNC WM_SHOWWINDOW. Sa usa ka siklo. Walay katapusan. Busa, daghang mga mensahe. WM_SHOWWINDOW, nga nahibal-an na nako nga ang VNC mosulay sa hingpit nga dili pagtagad ... sa peligro niini.

Akong gihugpong ug gipadagan ang 4KB sa labing mahigugmaon sa kagawasan nga kodigo sa akong kinabuhi. Pagkahuman sa mga tulo ka segundo, gitaho sa Windows nga ang proseso vncserver.Π΅Ρ…Π΅ wala motubag, ug mihimo og tanyag nga dili nako mabalibaran:

Gusto ba nimong makompleto kini nga proseso?

HELL OO!

Tugoti ako nga moangkon nga sa nahabilin nga adlaw wala ako maagwanta nga nalipay sa akong kaugalingon.

Human sa pipila ka oras nga gigugol sa paghilis sa akong bag-ong superpower, nakahukom ko kon unsaon nako kini paggamit. Sayon ra kaayo ang pagpatay sa sesyon sa iyang atubangan. Ako adunay usa ka mas maayo nga ideya - nga mawala sa hingpit.

human sa bautismo sa kalayo nga adunay socket programming Nakaamgo ko nga makasulat ko og code nga makahimo og duha ka butang. Kini una nga mag-okupar sa bag-ong gipagawas nga TCP port 5900, nga kaniadto giokupar sa wala’y nahibal-an nga proseso sa server sa VNC. Unya maghimo kini usa ka bag-ong koneksyon sa TCP sa VNC server sa gitakda nga makina. Ang code mag-proxy lang sa tanan nga datos tali sa duha ka socket, ug si Columbo maghunahuna nga siya nagkonektar kanako, kung sa pagkatinuod siya magkonektar sa usa ka hingpit nga lahi nga VNC server.

Ang akong code molihok isip usa ka sekreto nga tulay tali kanako ug sa uban pang kabus nga kalag nga akong gipili. Nindot kaayo.

Gisugdan dayon nako ang pagsulat sa akong peke nga VNC bridge. Si Columbo nagkonektar kanako sa makadaghang higayon, apan nagpadayon ako sa pagprograma sa iyang atubangan. Miabot ko sa konklusyon nga wala siya'y ideya kung unsa ang akong gibuhat, bisan kung gisulat nako ang klaro nga mga butang sama sa mga numero sa port ug mga komento sama // ΠŸΡ€ΠΎΡ‰Π°ΠΉ, ΠΆΡƒΡ‚ΠΊΠΈΠΉ шпион VNC.

Pagkahuman sa pila ka adlaw dili nako makuha ang code nga molihok sa husto. Sa paghimo sa mga butang nga mas grabe, ako nagtrabaho halos padayon uban sa itom nga VNC icon sa system tray. Samtang kini konektado, dili nako buhian ang pantalan aron masulayan ang akong code.

Kung nakahibalo pa unta ko netcat!

Sa kataposan, ang akong mga kaugatan nawad-an; sa pagkatinuod, ako usa ka walay pailub nga 17-anyos nga lalaki. Nagtan-aw sa puti nga VNC server icon nga nahimong itom pag-usab, ako nahadlok, giablihan ang orihinal nga code nga nagpuno sa mensahe nga pila, ug gipadagan kini atubangan sa iyang mga mata. Naghulat pa gani ako og pipila ka segundo sa wala pa i-klik End Process, aron lang masiguro nga nakita niya kini.

Kung ang pagpindot niana nga buton dili hingpit nga makapakombinsir kanako nga kini takus niini, nan siya milukso gikan sa luyo sa iyang kuta sa mga monitor aron dali nga moduol kanako ug mogawas kanako sa kwarto siguradong mibuhat.

Tungod niini, gi-ban ako sa network sulod sa duha ka semana. Usa ka patas nga silot, sa akong hunahuna. Pagkahuman sa mga tulo ka semana, nawala ang VNC server gikan sa mga script sa boot ug wala gyud makita bisan diin. Wala gyud ko kahibalo kung ang akong insidente adunay bisan unsang papel niini o wala, apan hingpit nga naguba ang akong plano nga mahimong labi ka dato pinaagi sa pagbaligya sa akong VNC nga pusil sa mga depress nga estudyante sa mga computer hall sa kolehiyo sa tibuuk nasud.

Source: www.habr.com

Idugang sa usa ka comment