Batay Coder: Mwen kont Sa Nèg VNC

В blog sa a Gen kèk istwa pwogramè yo te pibliye. Mwen renmen sonje vye bagay estipid mwen yo. Oke, isit la nan yon lòt istwa konsa.

Mwen te vin enterese nan òdinatè, sitou pwogramasyon, lè m te gen anviwon 11 an. Nan kòmansman lekòl segondè bоMwen te pase pi fò nan tan lib mwen brikolaj ak C64 mwen an ak ekri BASIC, Lè sa a, koupe soti kòd la move ak sizo. Mwen pa blag, sizo.

Apre lekòl (anviwon laj 16 an), timoun Britanik yo anjeneral ale nan kolèj, kote yo chwazi etidye twa oswa kat matyè anvan yo ale nan inivèsite. Etandone mwen renmen bwat bèlj la ak kasèt anrejistrè lakay mwen, mwen te deside etidye "syans enfòmatik" nan kolèj se te bon chwa.

Mwen te renmen kou a plis pase mwen te espere; se la mwen premye rankontre Pascal ak Delphi.

Pandan repo ant klas yo, elèv yo ka travay sou nenpòt machin gratis nan sal òdinatè a. Imajine: yon chanm gwo, ki fèt pou apeprè yon santèn moun, ak ranje tab plen ak machin, tankou sa yo kote monitè a kanpe sou inite sistèm lan. Fanatik yo toujou ap chante, boul sourit ap buz sou tab yo, yo pa kanpe pou yon segond. Gen yon sant etranj nan lè a, tankou si 50-100 adolesan ormon yo detanzantan chanje refwadi dè santèn de chips Pentium III.

Malgre risk sante yo, mwen te renmen chita nan òdinatè a lè mwen te gen yon minit gratis.

Admin nan devwa nan chanm nan se te yon nonm kout, laj mwayen ki te chwazi pou wòl sa a akòz dezi ensasyabl li yo vin yon diktatè sa ki mal. Mwen sipoze sa. Nan devwa se yon egzajere; nèg la vrèman te renmen travay li. Li te responsab pou kenbe lòd pou pa gen moun ki te sèvi ak òdinatè lekòl la pou anyen ki pa apwopriye.

Jouk jounen jodi a, entwisyon mwen an di m ke bonis admin la dirèkteman depann sou kantite elèv li te kenbe nan men an epi eskòte soti nan sal òdinatè a. Mwen sèten mesye sa a peye ipotèk li byen bonè.

Li te chita nan kwen ki pi lwen nan sal òdinatè a nan yon tab kwen. Epi li te an sekirite yo asime ke monitè fètilite li yo te jwenn yon fason yo repwodui ak yon peryòd gwosès enpresyonan kout, te gen anpil nan yo. Youn te kapab sèlman mande si li reyèlman te gen tan kenbe tras de yo tout. Men wi, m'ap jwe... èske mwen mansyone ke li te pran travay li trè seryezman?

Nan epòk sa a, rezo òdinatè a te kouri Windows 2000. Byento mwen te dekouvri ke chak fwa mwen konekte nan sistèm nan, yo te lanse yon script ki espesifye kòmanse sèvè a VNC soti nan kont administratè a pou aksè aleka nan Desktop la. Chak fwa nèg sa a te vle al rekonèt sou ou, li ta konekte dirèkteman nan machin ou epi gade. Li te grenpe, e kounye a ke mwen panse sou li, pwobableman ilegal.

Èske w gen koupe dan m 'sou BASIC ak C64, kounye a mwen te ekri nan C e menm yon ti kras C++. Lè sa a, mwen te toujou trè enterese nan lang D la, ki te korije kèk nan enpèfeksyon yo nan C++, jan mwen te wè li lè sa a.

Mwen te konn antre nan sal òdinatè a pou m li yon bagay nouvo sou D oswa pou m jwe ak du Digital Mars D. Pafwa, pandan m te distrè pou m panse ak gwo avni D, mwen te ekri kòd C pou m pirate lòt pwogram Win32 nan fenèt yo. manch.

Nan bon tan fin vye granmoun nan pwogram Win32, jwenn yon manch fenèt se te metòd ki pi fasil yo Hack lòt pwogram. Li evidan, tout pwogram entèfas sou Windows te gen yon fenèt, menm si li pa t parèt sou ekran an. Lè w ekri yon pwogram pou rekipere yon manch nan yon lòt pwosesis (esansyèlman yon lyen nan li), ou ta ka voye mesaj ba li. Sa a te pèmèt pou kèk operasyon debaz tankou kache / montre yon fenèt pwogram, osi byen ke bagay vrèman fre tankou fòse yon pwosesis chaje yon DLL abitrè nan espas memwa li yo epi kòmanse egzekite kòd. Apre piki DLL la, plezi a te kòmanse.

Nan premye mwa a ak yon mwatye, detektif sa a pa t 'anmède m' anpil; li konekte ak sèvè a VNC sou machin mwen an sèlman yon fwa oswa de fwa. Men, yon sesyon an patikilye ka te pike enterè li. Mwen t ap ekri kèk kòd C pou kache fenèt Minesweeper (san yo pa fèmen yo) pou fè li pi fasil pou jwe nan klas la, lè mwen remake ke ikon VNC blan an nan plato sistèm lan te vin nwa. Sa vle di ke li te kounye a ap gade m '.

Mwen kontinye kode kòm dabitid, ap eseye inyore l '. Pandan se tan, machin nan te kòmanse ralanti, ap eseye transmèt pousantaj maksimòm ankadreman nan youn nan monitè yo inonbrabl nan kwen an nan chanm lan. Windows prèske sispann reponn, lè pasyans mwen te fini, mwen te dekonekte epi fini pou jounen an.

Nan vizit ki vin apre nan sal òdinatè a, Colombo te enterese anpil nan sa m t ap fè prèske chak fwa. Apre apeprè katriyèm fwa a, mwen deside: mwen bezwen fè yon bagay sou sa.

Mwen admèt ke yon moun ki rezonab, rasyonèl te kapab tou senpleman soulve pwoblèm sa a dirèkteman ak li oswa bòs nan travay li. Sepandan, mwen toujou lage nan tantasyon epi byen vit pale tèt mwen nan adopte yon estrateji konplètman diferan.

- Ou pa ka fè anyen san sèvè VNC sa a! — Mwen te di tèt mwen avèk kalm ak desizif plizyè fwa.

Li te nesesè yo touye VNC.

Mwen te kòmanse antre nan sal òdinatè a ak gwo gwoup elèv epi chita pi lwen kwen an ak monitè yo ke posib. Sa a te travay pou yon ti tan e li te ban m 'kèk tan teste lide.

Premye tantativ mwen, mwen panse ou pral dakò, te trè fèb. Dwa-klike sou icon nan VNC nan plato sistèm lan, mwen te wè yon meni ak lèt ​​majik yo SOTI. Malerezman, lèt yo te ekri nan tèks gri. Administratè a te enfim atik nan meni "Sòti" atravè Editè Règleman Gwoup la. Mwen te eseye touye pwosesis la nan Manadjè Travay la, men nan kou li te envizib pou mwen paske li te kouri anba yon kont diferan, plis privilejye. Li pa t mache.

Sèvè a VNC kouri sou TCP pò 5900, mwen sonje. Pwochen plan mwen an se te voye pake pèvèti nan pò sa a yo nan lòd yo fè aksidan li.

Mwen te pase omwen kèk jou brikolaj ak pwotokòl la, voye divès fòm krap byen estriktire nan pò 5900 ak espere ke li ta kraze. Nan fen a, sa pa t 'travay tou.

Mwen te deja kòmanse panse ke mwen pa ta ka debarase m de bagay sa a, lè li toudenkou parèt sou mwen: fòk gen yon fenèt la! Nou bezwen montre li. Petèt li pral gen yon bèl bouton juicy "Bèbè" ke mwen ka itilize anpil!

Mwen kouri kòd C kounye a prèske pafè mwen an pou jwenn manch lan nan fenèt prensipal la nan yon lòt pwosesis - ak asire w ase, VNC te jwenn. Mwen te santi mwen enspire lè dwèt mwen tape WM_SHOWWINDOW. Eseye devine sa mwen te wè devan mwen?

Anyen!

Koulye a, mwen te kirye ... li te gen yon fenèt, men li te inyore mesaj mwen yo. Mwen double tcheke kòd mwen an pou asire ke li fonksyone. Teste li sou plizyè lòt pwosesis epi li te travay anpil. Mwen te eseye voye lòt mesaj nan fenèt VNC a, e toujou pa gen anyen.

Apre sa, li parèt sou mwen ankò!

Mèsi a trè epè liv la Charles Petzold mwen ak anpil atansyon etidye ki jan pwosesis Win32 travay andedan sistèm nan. Chak aplikasyon Win32 gen yon fenèt ansanm ak yon "nat mesaj". Mesaj deklanche pa entèraksyon itilizatè yo, ansanm ak mesaj Windows li menm voye yo, rive nan yon keu, epi aplikasyon an li menm deside kijan pou trete yo.

Pa trè enteresan nan tèt li. Men, lè mwen reyalize ke yon keu mesaj gwo ase ki pa trete te aji kòm yon euristik pou Manadjè Pwosesis Window pou entèvni nan yon pwosesis kwoke, mwen te kòmanse swe serotonin pi bon kalite.

San yo pa gaspiye yon segonn, mwen retounen nan kòd C mwen an, prepare yo voye yon lòt mesaj nan fenèt prensipal la VNC WM_SHOWWINDOW. Nan yon sik. Etènèl. Se konsa, anpil mesaj. WM_SHOWWINDOW, ki kounye a mwen te konnen VNC ta eseye inyore konplètman ... nan danje li yo.

Mwen konpile ak kouri 4KB nan kòd ki pi renmen libète nan lavi mwen. Apre apeprè twa segonn, Windows rapòte ke pwosesis la vncserver.ехе pa reponn, li fè yon òf ke mwen tou senpleman pa t 'kapab refize:

Èske ou vle konplete pwosesis sa a?

LANFE WI!

Kite m 'admèt ke pou tout rès jounen an mwen te ensipòtab kontan ak tèt mwen.

Apre kèk èdtan te pase dijere nouvo gwo pwisans mwen an, mwen deside ki jan mwen ta sèvi ak li. Li te twò fasil jis touye sesyon an dwa devan l '. Mwen te gen yon pi bon lide - yo disparèt nèt.

Apre batèm dife ak pwogramasyon priz Mwen reyalize ke mwen te kapab ekri kòd ki ta fè de bagay. Li pral premye okipe pò TCP 5900 ki fèk libere, ki te deja okipe pa pwosesis sèvè VNC clueless la. Lè sa a, li pral kreye yon nouvo koneksyon TCP ak sèvè VNC machin espesifye a. Kòd la pral tou senpleman proxy tout done ki genyen ant de sipò yo, ak Columbo pral panse li se konekte avè m ', lè an reyalite li pral konekte nan yon sèvè VNC konplètman diferan.

Kòd mwen an pral aji kòm yon pon sekrè ant mwen menm ak kèk lòt nanm pòv mwen chwazi. Se te bèl bagay.

Mwen imedyatman te kòmanse ekri fo pon VNC mwen an. Columbo te konekte avè m plizyè fwa, men m te kontinye pwograme devan l. Mwen te rive nan konklizyon an ke li pa te gen okenn lide sa m 'te fè, menm si mwen te ekri bagay evidan tankou nimewo pò ak kòmantè tankou // Прощай, жуткий шпион VNC.

Apre yon koup de jou mwen pa t 'kapab jwenn kòd la travay kòrèkteman. Pou vin pi mal, mwen te travay prèske kontinyèlman ak icon nwa VNC nan plato sistèm lan. Pandan ke li te konekte, mwen pa t 'kapab lage pò a teste kòd mwen an.

Si mwen te konnen lè sa a netcat!

Nan fen, nè m 'te tonbe; apre tout, mwen te yon nèg enpasyan 17-zan. Lè m ap gade icon blan VNC sèvè a vin nwa ankò, mwen te pè, mwen te louvri kòd orijinal la ki te peple keu mesaj la, epi m te kouri devan je l. Mwen menm tann yon koup de segonn anvan klike End Process, jis pou asire w ke li te wè li.

Si peze bouton sa a pa t ' totalman konvenk mwen ke li te vo li, Lè sa a, li sote nan dèyè fò l' nan monitè yo byen vit apwoche m 'ak Usher m' soti nan chanm nan sètènman te fè.

Kòm yon rezilta, mwen te entèdi nan rezo a pou de semèn. Yon pinisyon jis, mwen te panse. Apre apeprè twa semèn, sèvè VNC a te disparèt nan scripts bòt yo epi li pa janm parèt okenn lòt kote. Mwen pa janm te konnen si ensidan mwen an te jwe nenpòt wòl nan sa a oswa ou pa, men li konplètman depafini plan mwen an vin fabuleux rich nan vann zam VNC mwen an bay elèv deprime nan sal òdinatè kolèj atravè peyi a.

Sous: www.habr.com

Add nouvo kòmantè