Батл Coder: Ман бар зидди он бача VNC

В ин блог Якчанд афсонаҳои барномасоз нашр шудаанд. Ман чизҳои аблаҳии пешинаи худро ба ёд оварданро дӯст медорам. Хуб, инак боз як чунин ҳикоя.

Ман бори аввал дар синни 11-солагиам ба компютер, махсусан барномасозӣ шавқу рағбат пайдо кардам. Дар ибтидои мактаби миёна боМан қисми зиёди вақти холии худро бо C64-и худ ва навиштани BASIC сарф кардам ва сипас бо кайчи рамзи бадро буридам. Ман шӯхӣ намекунам, кайчи.

Пас аз мактаб (тақрибан 16-солагӣ) кӯдакони бритониёӣ одатан ба коллеҷ мераванд ва дар он ҷо онҳо пеш аз дохил шудан ба донишгоҳ се ё чаҳор фанро интихоб мекунанд. Бо назардошти муҳаббати ман ба қуттии бежӣ ва магнитофон дар хона, ман қарор додам, ки омӯзиши "компьютер" дар коллеҷ интихоби дуруст аст.

Ман аз курс бештар аз он ки интизор будам, лаззат бурдам; Дар он ҷо ман бори аввал Паскал ва Делфиро вохӯрдам.

Дар вақти танаффус байни дарсҳо донишҷӯён метавонистанд дар ягон мошини ройгон дар ҳуҷраи компютерӣ кор кунанд. Тасаввур кунед: як ҳуҷраи азим, ки барои тақрибан сад нафар пешбинӣ шудааст, бо қатори мизҳои пур аз мошинҳо, ба монанди онҳое, ки монитор дар блоки системавӣ ҷойгир аст. Мухлисон пай дар пай гулгула мекунанд, тубхои муш дар болои мизхо садо медиханд, як дакика хам намеистад. Дар ҳаво бӯи аҷибе ба вуҷуд меояд, ки гӯё 50-100 наврасони гормоналӣ барои хунук кардани садҳо чипҳои Pentium III давра ба давра иваз мешаванд.

Сарфи назар аз хатарҳои саломатӣ, вақте ки ман як дақиқаи ройгон доштам, дар назди компютер нишастанро дӯст медоштам.

Администратори навбатдор дар ҳуҷра як марди миёнақади кӯтоҳмуддат буд, ки аз сабаби хоҳиши беандозааш барои диктатори бад шудан ба ин нақш интихоб карда шуд. Ба гумони ман чунин. Дар вазифаи навбатдорӣ ин кам аст; бача дар ҳақиқат кори худро дӯст медошт. Ӯ вазифадор карда шуд, ки тартиботро нигоҳ дорад, то касе компютери мактабро барои ягон чизи номуносиб истифода набарад.

То имрӯз, эҳсоси ман ба ман мегӯяд, ки бонуси администратор мустақиман аз шумораи донишҷӯёне, ки ӯ бо дасташ гирифта, аз утоқи компютерӣ берун овардааст, вобаста аст. Ман мутмаинам, ки ин бача қарзи гаравашро барвақт пардохт кард.

Ӯ дар кунҷи дури утоқи компютерӣ дар сари мизи кунҷӣ нишаст. Ва тахмин кардан мумкин буд, ки назоратчиёни ҳосилхезии ӯ роҳи такрористеҳсолкуниро бо давраи таъсирбахши кӯтоҳи ҳомиладорӣ пайдо кардаанд, онҳо хеле зиёданд. Кас танҳо ҳайрон мешуд, ки оё ӯ воқеан вақт дошт, ки ҳамаи онҳоро пайгирӣ кунад. Албатта, шӯхӣ мекунам... гуфтам, ки ӯ ба кори худ хеле ҷиддӣ муносибат мекард?

Он вақт шабакаи компютерӣ бо Windows 2000 кор мекард. Ман ба зудӣ фаҳмидам, ки ҳар дафъае, ки ман ба система ворид мешавам, скрипт оғоз мешавад, ки сервери VNC-ро аз ҳисоби администратор барои дастрасии дурдаст ба мизи корӣ муайян мекунад. Ҳар вақте, ки ин бача мехост ба шумо ҷосусӣ кунад, вай мустақиман ба мошини шумо пайваст ва тамошо мекард. Ин даҳшатнок буд ва ҳоло, ки ман дар ин бора фикр мекунам, шояд ғайриқонунӣ.

Пас аз буридани дандонҳоям дар BASIC ва C64, ман ҳоло дар C ва ҳатто каме C++ навиштам. Он вақт ман ҳанӯз ба забони D хеле шавқу рағбат доштам, ки баъзе камбудиҳои C++-ро ислоҳ мекард, чунон ки он вақт дида будам.

Ман ба утоқи компютерӣ барои хондани чизи нав дар D ё бозӣ бо компилятори Digital Mars D медаромадам.Баъзан, вақте ки ман аз фикр дар бораи ояндаи бузурги D парешон мешудам, ман рамзи C менависам, то барномаҳои дигари Win32-ро тавассути равзанаи онҳо ҳак кунам. сарукордошта.

Дар рӯзҳои хуби барномасозии Win32, дарёфти дастаки тиреза осонтарин усули ҳакер кардани барномаҳои дигар буд. Аён аст, ки ҳама барномаҳои GUI дар Windows тиреза доштанд, ҳатто агар он дар экран пайдо нашавад. Бо навиштани барнома барои дарёфти даста ба раванди дигар (аслан пайванд ба он), шумо метавонед ба он паём фиристед. Ин барои баъзе амалиётҳои асосӣ, ба монанди пинҳон кардан/нишон додани равзанаи барнома, инчунин чизҳои воқеан олӣ, ба монанди маҷбур кардани раванд барои бор кардани DLL-и худсарона ба фазои хотираи он ва оғози иҷрои код имкон дод. Пас аз тазриқи DLL, фароғат оғоз ёфт.

Дар якуним моҳи аввал ин детектив маро чандон ташвиш надодааст, он танҳо як ё ду маротиба ба сервери VNC дар мошини ман пайваст шуд. Аммо як ҷаласаи мушаххас шояд таваҷҷӯҳи ӯро ба вуҷуд оварда бошад. Ман барои пинҳон кардани тирезаҳои киштии Minesweeper (бидуни пӯшидани онҳо) якчанд рамзи C менавистам, то бозӣ дар синф осонтар шавад, вақте пай бурдам, ки тасвири сафеди VNC дар табақи система сиёҳ шудааст. Ин маънои онро дошт, ки ӯ ҳоло ба ман нигоҳ мекунад.

Ман мисли маъмулӣ рамзкунониро идома дода, кӯшиш кардам, ки ӯро нодида гирам. Дар ҳамин ҳол, мошин ба суст шудан шурӯъ кард ва кӯшиш кард, ки суръати максималии кадрро ба яке аз мониторҳои бешумори кунҷи ҳуҷра интиқол диҳад. Windows қариб ҷавоб намедиҳад, вақте ки сабри ман тамом шуд, ман аз система баромадам ва рӯзро тамом кардам.

Ҳангоми боздидҳои минбаъда ба утоқи компютерӣ, Коломбо қариб ҳар дафъа ба он чизе ки ман мекардам, таваҷҷӯҳи зиёд зоҳир мекард. Пас аз тақрибан чорум, ман қарор додам: ман бояд дар ин бора коре кунам.

Ман икрор мешавам, ки одами оқилона ва оқил метавонист ин масъаларо мустақиман ба назди ӯ ё сардораш барорад. Бо вуҷуди ин, ман ҳамеша ба васвасаҳо дода шудам ва зуд бо худ сӯҳбат карда, стратегияи тамоман дигарро қабул кардам.

- Шумо бе ин сервери VNC коре карда наметавонед! — чанд бор ба худ оромона ва катъиян гуфтам.

VNC-ро куштан лозим буд.

Ман бо гурӯҳҳои калони донишҷӯён ба утоқи компютерӣ даромадам ва то ҳадди имкон аз гӯша дуртар бо мониторҳо нишастам. Ин муддате кор кард ва ба ман чанд вақт барои санҷиши ғояҳо дод.

Аввалин кӯшиши ман, ман фикр мекунам, ки шумо розӣ мешавед, хеле заиф буд. Бо пахши рости тугмаи VNC дар панели система, ман менюеро бо ҳарфҳои ҷодугарӣ EXIT дидам. Мутаассифона, ҳарфҳо бо матни контури хокистарӣ навишта шудаанд. Администратор ҷузъи менюи "Баромад" -ро тавассути Муҳаррири сиёсати гурӯҳӣ ғайрифаъол кардааст. Ман кӯшиш кардам, ки равандро аз менеҷери вазифаҳо бикушам, аммо албатта он барои ман ноаён буд, зеро он дар зери ҳисоби дигар ва имтиёзнок кор мекард. Муваффақ нашуд.

Сервери VNC дар бандари TCP 5900 кор мекунад, ман ба ёд овардам. Нақшаи навбатии ман фиристодани бастаҳои вайроншуда ба ин порт барои шикастани он буд.

Ман ҳадди аққал чанд рӯзро бо протокол кор карда, ба порти 5900 шаклҳои гуногуни ахлоқҳои хуб сохташударо фиристодам ва умедворам, ки он мешиканад. Дар охир, ин ҳам кор накард.

Ман аллакай фикр мекардам, ки ман аз ин чиз халос шуда наметавонам, вақте ки ногаҳон ба сарам омад: бояд дар он ҷо тиреза бошад! Мо бояд онро намоиш диҳем. Шояд он тугмаи зебои боллазату шањдбори "Хомуш" дошта бошад, ки ман метавонам онро истифода барам!

Ман рамзи C-и қариб мукаммали худро иҷро кардам, то дастаро ба равзанаи асосии раванди дигар пайдо кунам - ва боварӣ ҳосил кунед, ки VNC пайдо шуд. Вақте ки ангуштонам чоп мекарданд, ман илҳом гирифтам WM_SHOWWINDOW. Кӯшиш кунед, ки тасаввур кунед, ки ман дар пеши ман чӣ дидам?

Ҳеҷ чиз!

Ҳоло ман кунҷкоб будам... тиреза дошт, аммо ба паёмҳои ман аҳамият намедод. Ман рамзи худро ду маротиба тафтиш кардам, то боварӣ ҳосил кунам, ки он кор мекунад. Онро дар якчанд равандҳои дигар санҷидам ва он хуб кор кард. Ман кӯшиш кардам, ки паёмҳои дигарро ба равзанаи VNC фиристам, аммо ҳеҷ чиз.

Ва он гоҳ бори дигар ба сари ман афтод!

Ташаккур ба хеле ғафс китоб Чарлз Петзолд Ман бодиққат омӯхтам, ки равандҳои Win32 дар дохили система чӣ гуна кор мекунанд. Ҳар як барномаи Win32 дорои равзана ва инчунин "навбати паём" мебошад. Паёмҳое, ки тавассути ҳамкории корбарон ба вуҷуд меоянд, инчунин паёмҳои аз ҷониби худи Windows фиристодашуда дар навбат меоянд ва худи барнома чӣ тавр коркарди онҳоро ҳал мекунад.

Дар худ чандон ҷолиб нест. Аммо вақте ки ман фаҳмидам, ки як навбати бузурги коркарднашудаи паёмҳо ҳамчун эвристикӣ барои Менеҷери Раванди Тиреза барои дахолат ба раванди овезон амал мекард, ман ба арақи серотонини пок сар кардам.

Як сонияро беҳуда сарф накарда, ман ба рамзи C-и худ баргаштам ва барои фиристодани паёми дигар ба равзанаи асосии VNC омода шудам. WM_SHOWWINDOW. Дар як давра. ҷовидона. Ҳамин тавр, паёмҳои зиёде. WM_SHOWWINDOW, ки ман ҳоло медонистам, ки VNC кӯшиш мекунад, ки комилан нодида гирад ... дар хатари он.

Ман 4KB аз ҳама рамзи озодихоҳи ҳаёти худро тартиб додам ва иҷро кардам. Пас аз тақрибан се сония, Windows хабар дод, ки ин раванд vncserver.ехе ҷавоб намедиҳад ва пешниҳоде кард, ки ман онро рад карда наметавонам:

Оё шумо мехоҳед ин равандро анҷом диҳед?

ХА!

Ичозат дихед икрор шавам, ки дар давоми руз аз худам токатфарсо каноатманд будам.

Пас аз чанд соат барои ҳазм кардани қудрати нави худ ман қарор додам, ки чӣ гуна онро истифода барам. Ин хеле осон буд, ки танҳо дар назди ӯ сессияро кушед. Ман як фикри беҳтаре доштам - комилан аз байн рафтан.

баъд аз таъмиди оташ бо барномасозии васлаки Ман фаҳмидам, ки ман метавонам код нависам, ки ду чизро иҷро кунад. Он аввал бандари нав озодшудаи TCP 5900-ро ишғол мекунад, ки қаблан тавассути раванди сервери VNC бехабар буд. Он гоҳ он пайвасти нави TCP-ро ба сервери VNC-и мошини муайяншуда эҷод мекунад. Рамз танҳо прокси ҳамаи маълумотро байни ду розетка хоҳад кард ва Коламбо фикр мекунад, ки вай ба ман пайваст мешавад, дар ҳоле ки дар асл вай ба сервери тамоман дигари VNC пайваст мешавад.

Рамзи ман ҳамчун пули махфӣ байни ман ва дигар рӯҳи бечораи интихобкардаам амал хоҳад кард. Ин аҷиб буд.

Ман фавран ба навиштани пули қалбакии VNC шурӯъ кардам. Коламбо чанд маротиба бо ман пайваст, аммо ман дар пеши ӯ барномаро идома додам. Ман ба хулосае омадам, ки ӯ намедонист, ки ман чӣ кор карда истодаам, гарчанде ки ман чизҳои аёнеро ба мисли рақамҳои порт ва шарҳҳо навишта будам. // Прощай, жуткий шпион VNC.

Пас аз чанд рӯз ман кодро дуруст кор карда натавонистам. Бадтараш, ман қариб пайваста бо тасвири сиёҳи VNC дар табақи система кор мекардам. Ҳангоме ки он пайваст буд, ман натавонистам портро барои санҷиши рамзи худ озод кунам.

Агар он вакт медонистам netcat!

Дар ниҳоят, асабҳоям аз даст рафтанд, охир ман як ҷавони 17-солаи бесаброна будам. Аз дидани дубора сиёҳ шудани нишонаи сервери сафеди VNC, ман ба ҳайрат омадам, рамзи аслиро, ки навбати паёмро пур кардааст, кушодам ва онро дар пеши чашмони ӯ давидаам. Ман ҳатто пеш аз пахш кардан якчанд сония интизор шудам End Process, танҳо барои боварӣ ҳосил кардан, ки ӯ онро дидааст.

Агар пахш кардани он тугма маро комилан бовар кунонад, ки ин арзанда аст, пас ӯ аз паси қалъаи мониторҳои худ ҷаҳиш карда, зуд ба ман наздик шуд ва маро аз ҳуҷра берун кард.

Дар натиҷа, маро ду ҳафта аз шабака маҳрум карданд. Ҷазои одилона аст, ман фикр кардам. Пас аз тақрибан се ҳафта, сервери VNC аз скриптҳои боркунӣ нопадид шуд ва ҳеҷ гоҳ дар ҷои дигар пайдо нашуд. Ман ҳеҷ гоҳ намедонистам, ки ҳодисаи ман дар ин кор ягон нақш дорад ё не, аммо он нақшаи маро дар бораи ба таври афсонавӣ бой шудан бо фурӯши таппончаи VNC ба донишҷӯёни афсурдагӣ дар толорҳои компютерии коллеҷ дар саросари кишвар комилан барбод дод.

Манбаъ: will.com

Илова Эзоҳ