Ogun Coder: Mi la Ti VNC Guy

В yi bulọọgi Awọn itan eto pirogirama pupọ diẹ ni a ti tẹjade. Mo nifẹ lati ranti awọn nkan aṣiwere mi atijọ. Daradara, eyi ni iru itan miiran.

Mo kọ́kọ́ nífẹ̀ẹ́ sí ẹ̀rọ kọ̀ǹpútà, pàápàá jù lọ ètò, nígbà tí mo wà ní nǹkan bí ọmọ ọdún mọ́kànlá. Ni ibere ti ile-iwe giga bоMo lo pupọ julọ ti akoko ọfẹ mi tinkering pẹlu C64 mi ati kikọ BASIC, lẹhinna ge koodu buburu kuro pẹlu awọn scissors. Emi ko ṣe awada, scissors.

Lẹhin ile-iwe (ni ayika ọjọ ori 16), awọn ọmọde Ilu Gẹẹsi nigbagbogbo lọ si kọlẹji, nibiti wọn yan lati kọ ẹkọ awọn koko-ẹkọ mẹta tabi mẹrin ṣaaju lilọ si ile-ẹkọ giga. Fun ifẹ mi fun apoti alagara ati agbohunsilẹ ni ile, Mo pinnu pe kika “imọ-ẹrọ kọnputa” ni kọlẹji jẹ yiyan ti o tọ.

Mo gbadun ikẹkọ diẹ sii ju Mo nireti lọ; níbẹ̀ ni mo kọ́kọ́ pàdé Pascal àti Delphi.

Lakoko awọn isinmi laarin awọn kilasi, awọn ọmọ ile-iwe le ṣiṣẹ lori ẹrọ ọfẹ eyikeyi ninu yara kọnputa. Fojuinu: yara nla kan, ti a ṣe apẹrẹ fun bii ọgọrun eniyan, pẹlu awọn ori ila ti awọn tabili ti o kun fun awọn ẹrọ, bii awọn ibiti atẹle naa duro lori ẹyọ eto naa. Awọn egeb onijakidijagan nigbagbogbo n rẹrinrin, awọn bọọlu Asin ti n pariwo lori awọn tabili, ko duro fun iṣẹju kan. Olfato ajeji wa ninu afẹfẹ, bi ẹnipe awọn ọdọ 50-100 homonu ti n yipada lorekore lati tutu awọn ọgọọgọrun awọn eerun Pentium III.

Pelu awọn ewu ilera, Mo nifẹ lati joko ni kọnputa nigbati Mo ni iṣẹju ọfẹ kan.

Admin ti o wa ni iṣẹ ninu yara naa jẹ ọkunrin kukuru kan, ti o jẹ alarinrin ti o yan fun ipa yii nitori ifẹ ti ko ni itẹlọrun lati di alakoso buburu. Mo ro bẹ. Lori iṣẹ jẹ aiṣedeede; eniyan naa fẹran iṣẹ rẹ gaan. Wọ́n gbé iṣẹ́ lé e lọ́wọ́ láti pa àṣẹ mọ́ kí ẹnikẹ́ni má bàa máa lo kọ̀ǹpútà ilé ẹ̀kọ́ fún ohunkóhun tí kò bójú mu.

Titi di oni, oye mi sọ fun mi pe ẹbun alabojuto taara da lori nọmba awọn ọmọ ile-iwe ti o mu ni ọwọ ati mu jade ni yara kọnputa naa. Mo ni idaniloju pe eniyan yii san owo-ori rẹ ni kutukutu.

O joko ni igun jijin ti yara kọnputa ni tabili igun kan. Ati pe o jẹ ailewu lati ro pe awọn diigi irọyin rẹ ti wa ọna lati ṣe ẹda pẹlu akoko oyun kukuru ti iyalẹnu, ọpọlọpọ ninu wọn wa. Ẹnikan le ṣe iyalẹnu boya o ni akoko gaan lati tọju gbogbo wọn. Dajudaju, Mo n ṣere... ṣe Mo sọ pe o mu iṣẹ rẹ ni pataki?

Ni akoko yẹn, nẹtiwọọki kọnputa n ṣiṣẹ Windows 2000. Laipẹ Mo ṣe awari pe ni gbogbo igba ti Mo wọle sinu eto naa, a ṣe ifilọlẹ iwe afọwọkọ kan ti o pato ti o bẹrẹ olupin VNC lati akọọlẹ alakoso fun iraye si latọna jijin si tabili tabili. Nigbakugba ti eniyan yii ba fẹ ṣe amí lori rẹ, yoo sopọ taara si ẹrọ rẹ ati wo. O je ti irako, ati bayi wipe Mo ro nipa o, jasi arufin.

Lẹhin ti ge awọn eyin mi lori BASIC ati C64, Mo kowe bayi ni C ati paapaa C ++ kekere kan. Nígbà yẹn, mo ṣì nífẹ̀ẹ́ sí èdè D gan-an, èyí tó ṣàtúnṣe díẹ̀ lára ​​àwọn kùdìẹ̀-kudiẹ C++, gẹ́gẹ́ bí mo ṣe rí i nígbà yẹn.

Mo lo lati lọ sinu yara kọmputa lati ka nkan titun lori D tabi mu ṣiṣẹ pẹlu Digital Mars D alakojo. Nigba miran, nigba ti mo ti wa ni idamu lati lerongba nipa awọn nla ojo iwaju ti D, Mo ti kowe C koodu lati gige miiran Win32 eto nipasẹ wọn window. kapa.

Ni awọn ti o dara atijọ ọjọ ti Win32 siseto, wiwa a window mu wà ni rọọrun ọna lati gige awọn eto miiran ti. O han ni, gbogbo awọn eto GUI lori Windows ni window kan, paapaa ti ko ba han loju iboju. Nipa kikọ eto kan lati gba mimu pada si ilana miiran (pataki ọna asopọ si rẹ), o le fi awọn ifiranṣẹ ranṣẹ si. Eyi gba laaye fun diẹ ninu awọn iṣẹ ipilẹ bii fifipamọ/fifihan window eto kan, bakanna bi awọn nkan ti o dara gaan bii fipa mu ilana kan lati gbe DLL lainidii sinu aaye iranti rẹ ki o bẹrẹ koodu ṣiṣe. Lẹhin abẹrẹ DLL, igbadun naa bẹrẹ.

Ni oṣu akọkọ ati idaji, aṣawari yii ko yọ mi lẹnu pupọ; o sopọ si olupin VNC lori ẹrọ mi lẹẹkan tabi lẹmeji. Ṣugbọn igba kan pato le ti ru ifẹ rẹ soke. Mo n kọ diẹ ninu koodu C lati tọju awọn window Minesweeper (laisi pipade wọn) lati jẹ ki o rọrun lati mu ṣiṣẹ ni kilasi, nigbati mo ṣe akiyesi pe aami VNC funfun ninu atẹ eto ti di dudu. Èyí túmọ̀ sí pé ó ń wò mí báyìí.

Mo ti tesiwaju ifaminsi bi ibùgbé, gbiyanju lati foju rẹ. Nibayi, ẹrọ naa bẹrẹ si fa fifalẹ, gbiyanju lati atagba iwọn fireemu ti o pọju si ọkan ninu awọn diigi ainiye ni igun ti yara naa. Windows fẹrẹ dẹkun idahun, nigbati sũru mi pari, Mo jade ati pari fun ọjọ naa.

Lori awọn ibẹwo ti o tẹle si yara kọnputa, Colombo nifẹ si ohun ti Mo n ṣe ni gbogbo igba. Lẹhin nipa akoko kẹrin, Mo pinnu: Mo nilo lati ṣe nkankan nipa eyi.

Mo jẹ́wọ́ pé onílàákàyè, tí ó bọ́gbọ́n mu lè ti gbé ọ̀ràn yìí dìde tààràtà pẹ̀lú òun tàbí ọ̀gá rẹ̀. Bí ó ti wù kí ó rí, Mo máa ń juwọ́ sílẹ̀ fún ìdẹwò tí mo sì yára sọ̀rọ̀ fún ara mi láti tẹ̀ lé ìlànà tí ó yàtọ̀ pátápátá.

- O ko le ṣe ohunkohun laisi olupin VNC yii! — Mo farabalẹ ati ipinnu sọ fun ara mi ni ọpọlọpọ igba.

O je pataki lati pa VNC.

Mo bẹrẹ si lọ sinu yara kọnputa pẹlu awọn ẹgbẹ nla ti awọn ọmọ ile-iwe ati joko bi o ti jinna si igun pẹlu awọn diigi bi o ti ṣee. Eyi ṣiṣẹ fun igba diẹ o fun mi ni akoko diẹ lati ṣe idanwo awọn imọran.

Igbiyanju akọkọ mi, Mo ro pe iwọ yoo gba, ko lagbara pupọ. Tite-ọtun lori aami VNC ninu atẹ eto, Mo rii akojọ aṣayan pẹlu awọn lẹta idan EXIT. Laanu, awọn lẹta naa ni a kọ sinu ọrọ laini grẹy. Alakoso ti pa ohun akojọ aṣayan "Jade" nipasẹ Olootu Afihan Ẹgbẹ. Mo gbiyanju lati pa ilana naa lati ọdọ Oluṣakoso Iṣẹ, ṣugbọn dajudaju o jẹ alaihan si mi nitori pe o nṣiṣẹ labẹ oriṣiriṣi oriṣiriṣi, akọọlẹ ti o ni anfani diẹ sii. Ko ṣiṣẹ jade.

VNC olupin nṣiṣẹ lori TCP ibudo 5900, Mo ranti. Eto mi ti o tẹle ni lati fi awọn apo-iwe ti o bajẹ ranṣẹ si ibudo yii lati le kọlu rẹ.

Mo ti lo ni o kere kan diẹ ọjọ tinkering pẹlu awọn Ilana, fifiranṣẹ awọn orisirisi iwa ti daradara-ti eleto inira to ibudo 5900 ati ki o lero o yoo adehun. Ni ipari, iyẹn paapaa ko ṣiṣẹ.

Mo ti bẹrẹ lati ronu pe Emi kii yoo ni anfani lati yọ nkan yii kuro, nigbati o lojiji lojiji: window gbọdọ wa nibẹ! A nilo lati ṣafihan rẹ. Boya yoo ni bọtini sisanra ti “Mute” ti MO le fi si lilo nla!

Mo sare mi bayi o fẹrẹ pe koodu C lati wa mimu si window akọkọ ti ilana miiran - ati pe o daju pe, VNC ti rii. Mo ni itara nigbati awọn ika mi tẹ WM_SHOWWINDOW. Gbiyanju lati gboju le won ohun ti mo ri ni iwaju mi?

Ko si nkankan!

Bayi Mo ṣe iyanilenu… o ni window kan, ṣugbọn o kọju awọn ifiranṣẹ mi. Mo ṣayẹwo koodu mi lẹẹmeji lati rii daju pe o ṣiṣẹ. Ṣe idanwo lori ọpọlọpọ awọn ilana miiran ati pe o ṣiṣẹ nla. Mo gbiyanju lati firanṣẹ awọn ifiranṣẹ miiran si window VNC, ati pe ko si nkankan.

Ati lẹhinna o tun tun han si mi lẹẹkansi!

O ṣeun si pupọ nipọn iwe Charles Petzold Mo farabalẹ kẹkọọ bi awọn ilana Win32 ṣe n ṣiṣẹ ninu eto naa. Gbogbo Win32 ohun elo ni o ni a window bi daradara bi a "ifiranṣẹ ti isinyi". Awọn ifiranṣẹ ti o fa nipasẹ ibaraenisepo olumulo, ati awọn ifiranṣẹ ti a firanṣẹ nipasẹ Windows funrararẹ, de ni isinyi, ati ohun elo funrararẹ pinnu bi o ṣe le ṣe ilana wọn.

Ko gan awon ninu ara. Sugbon nigba ti mo ti ri pe kan ti o tobi to unprocessed ifiranṣẹ isinyi sise bi a heuristic fun Window ilana Manager lati laja ni a ṣù ilana, Mo ti bẹrẹ lati lagun funfun serotonin.

Laisi jafara iṣẹju kan, Mo pada si koodu C mi, ngbaradi lati fi ifiranṣẹ miiran ranṣẹ si ferese VNC akọkọ WM_SHOWWINDOW. Ninu iyipo kan. Ayeraye. Nitorina, ọpọlọpọ awọn ifiranṣẹ. WM_SHOWWINDOW, eyi ti mo ti mọ nisisiyi VNC yoo gbiyanju lati foju patapata... ni awọn oniwe-ewu.

Mo ṣajọ ati ṣiṣẹ 4KB ti koodu ifẹ ominira julọ julọ ti igbesi aye mi. Lẹhin nipa awọn aaya mẹta, Windows royin pe ilana naa vncserver.ехе ko dahun, o si ṣe ipese ti Emi ko le kọ rara:

Ṣe o fẹ lati pari ilana yii?

PADA BẸẸNI!

Jẹ ki n jẹwọ pe fun iyoku ọjọ naa Mo ni inu-didun laiṣe pẹlu ara mi.

Lẹ́yìn wákàtí díẹ̀ tí mo lo bí mo ṣe ń dá agbára ńlá mi tuntun sílẹ̀, mo pinnu bí màá ṣe lò ó. O rọrun pupọ lati kan pa igba naa ni iwaju rẹ. Mo ni imọran ti o dara julọ - lati parẹ patapata.

Lẹhin Baptismu ti ina pẹlu iho siseto Mo rii pe MO le kọ koodu ti yoo ṣe awọn nkan meji. Yoo kọkọ gba ibudo TCP tuntun ti o ni ominira 5900, ti o ti gba tẹlẹ nipasẹ ilana olupin VNC ti ko ni oye. Lẹhinna o yoo ṣẹda asopọ TCP tuntun si olupin VNC ti ẹrọ ti a sọ. Awọn koodu yoo nìkan aṣoju gbogbo awọn data laarin awọn meji sockets, ati Columbo yoo ro pe o ti wa ni sopọ si mi, nigba ti ni o daju o yoo wa ni sopọ si a patapata ti o yatọ VNC server.

Mi koodu yoo sise bi a ìkọkọ Afara laarin mi ati diẹ ninu awọn miiran talaka ọkàn ti mi yiyan. O je iyanu.

Lesekese ni mo bere si ko afara VNC iro mi. Columbo ti sopọ mọ mi ni ọpọlọpọ igba, ṣugbọn Mo tẹsiwaju lati ṣe eto ni iwaju rẹ. Mo ti wá si pinnu wipe o ni ko ni agutan ohun ti mo ti n ṣe, ani tilẹ Mo ti kowe kedere ohun bi ibudo awọn nọmba ati comments bi // Прощай, жуткий шпион VNC.

Lẹhin ọjọ meji kan Emi ko le gba koodu lati ṣiṣẹ ni deede. Lati ṣe ọrọ buru, Mo ti a ti ṣiṣẹ fere continuously pẹlu dudu VNC aami ninu awọn eto atẹ. Lakoko ti o ti sopọ, Emi ko le tu ibudo naa silẹ lati ṣe idanwo koodu mi.

Ti mo ba ti mọ lẹhinna netcat!

Nígbẹ̀yìngbẹ́yín, iṣan ara mi já; lẹ́yìn náà, mo jẹ́ ọmọ ọdún mẹ́tàdínlógún tí kò ní sùúrù. Wiwo aami olupin VNC funfun ti yipada dudu lẹẹkansi, Mo yọ jade, ṣii koodu atilẹba ti o kun isinyi ifiranṣẹ, o si sare ni iwaju oju rẹ. Mo tile duro fun iṣẹju-aaya diẹ ṣaaju titẹ End Process, o kan lati rii daju pe o rii.

Ti titẹ bọtini yẹn ko ba da mi loju ni kikun pe o tọ si, lẹhinna o n fo lati ẹhin odi odi rẹ ti awọn diigi lati yara sunmọ mi ki o mu mi jade kuro ninu yara dajudaju ṣe.

Bi abajade, a ti fi ofin de mi lati nẹtiwọki fun ọsẹ meji. A itẹ ijiya, Mo ro. Lẹhin bii ọsẹ mẹta, olupin VNC ti sọnu lati awọn iwe afọwọkọ bata ko si han nibikibi miiran. Emi ko mọ boya iṣẹlẹ mi ko ṣe ipa eyikeyi ninu eyi tabi rara, ṣugbọn o ba eto mi jẹ patapata lati ni ọlọrọ lọpọlọpọ nipa tita ibon VNC mi fun awọn ọmọ ile-iwe ti o ni irẹwẹsi ni awọn gbọngàn kọnputa kọlẹji jakejado orilẹ-ede naa.

orisun: www.habr.com

Fi ọrọìwòye kun