Coder Battle: እኔ ከ VNC ጋይ ጋር

В ይህ ብሎግ በጣም ጥቂት የፕሮግራም አድራጊ ተረቶች ታትመዋል። የድሮ ሞኝ ነገሮቼን ማስታወስ እወዳለሁ። ደህና፣ ሌላ እንደዚህ ያለ ታሪክ አለ።

የ11 ዓመት ልጅ ሳለሁ ለመጀመሪያ ጊዜ የኮምፒዩተር በተለይም የፕሮግራም አወጣጥ ፍላጎት አደረብኝ። የሁለተኛ ደረጃ ትምህርት ቤት መጀመሪያ ላይ ለоአብዛኛውን ነፃ ጊዜዬን በC64 በመሳል እና BASIC በመጻፍ አሳልፌያለሁ፣ ከዚያም መጥፎውን ኮድ በመቀስ ቆርጬ ነበር። እየቀለድኩ አይደለም መቀስ.

ከትምህርት በኋላ (በ 16 አመት አካባቢ) የብሪቲሽ ልጆች ብዙውን ጊዜ ወደ ኮሌጅ ይሄዳሉ, ወደ ዩኒቨርሲቲ ከመሄዳቸው በፊት ሶስት ወይም አራት ትምህርቶችን ለመማር ይመርጣሉ. በቤት ውስጥ ለቢጂ ሣጥን እና ለቴፕ መቅረጫ ያለኝን ፍቅር ግምት ውስጥ በማስገባት በኮሌጅ ውስጥ "የኮምፒውተር ሳይንስ" ማጥናት ትክክለኛ ምርጫ እንደሆነ ወሰንኩ.

ኮርሱን ከጠበቅኩት በላይ ወድጄዋለሁ; እዚያ ፓስካል እና ዴልፊን ለመጀመሪያ ጊዜ አገኘኋቸው።

በክፍሎች መካከል በእረፍት ጊዜ ተማሪዎች በኮምፒተር ክፍል ውስጥ በማንኛውም ነፃ ማሽን ላይ ሊሰሩ ይችላሉ. እስቲ አስበው፡ ለአንድ መቶ ለሚጠጉ ሰዎች የተነደፈ ግዙፍ ክፍል፣ በማሽን የተሞሉ ጠረጴዛዎች ያሉት፣ ማሳያው በሲስተሙ ክፍል ላይ እንደቆመ ነው። ደጋፊዎቹ ያለማቋረጥ ይጎርፋሉ፣ የመዳፊት ኳሶች በጠረጴዛው ላይ ይንጫጫሉ፣ ለአንድ ሰከንድ ያህል አይቆሙም። ከ50-100 ሆርሞናዊ ታዳጊዎች በየጊዜው እየተለወጡ በመቶዎች የሚቆጠሩ Pentium III ቺፖችን እየቀዘቀዙ እንደሚሄዱ አይነት እንግዳ የሆነ ሽታ በአየር ላይ አለ።

የጤና አደጋዎች ቢኖሩም, ነፃ ደቂቃ ሲኖረኝ ኮምፒውተሩ ላይ መቀመጥ እወድ ነበር.

በክፍሉ ውስጥ ተረኛ የነበረው አስተዳዳሪ አጭር እና መካከለኛ እድሜ ያለው ሰው ሲሆን ለዚህ ሚና የተመረጠው ክፉ አምባገነን ለመሆን ባለው የማይጠግብ ፍላጎት ነው። ይመስለኛል. በሥራ ላይ ያለ መግለጫ ነው ፣ ሰውየው በእውነት ሥራውን ይወድ ነበር። ማንም ሰው የትምህርት ቤቱን ኮምፒዩተር ላልሆነ ነገር እንዳይጠቀም ሥርዓትን የማስጠበቅ ኃላፊነት ተሰጥቶት ነበር።

እስከ ዛሬ ድረስ፣ የአስተዳዳሪው ጉርሻ በቀጥታ በእጁ ይዞ ከኮምፒዩተር ክፍል ባወጣቸው ተማሪዎች ብዛት ላይ የተመሰረተ እንደሆነ ውስጤ ይነግረኛል። እርግጠኛ ነኝ ይህ ሰው ቀደም ብሎ የቤት ማስያዣውን ከፍሏል።

ከኮምፒዩተር ክፍል ራቅ ባለ ጥግ ጥግ ጠረጴዛ ላይ ተቀመጠ። እና የእሱ የመራባት ተቆጣጣሪዎች በሚያስደንቅ አጭር የእርግዝና ጊዜ የሚባዙበትን መንገድ እንዳገኙ መገመት ይቻላል ፣ በጣም ብዙ ናቸው። አንድ ሰው በእውነት ሁሉንም ለመከታተል ጊዜ እንዳለው ብቻ ሊያስብ ይችላል። በእርግጥ እኔ እየቀለድኩ ነው... ስራውን ከቁም ነገር እንደወሰደው ተናግሬ ነበር?

በዚያን ጊዜ የኮምፒዩተር ኔትዎርክ ዊንዶውስ 2000ን ይሰራ ነበር፡ ብዙም ሳይቆይ ወደ ስርዓቱ በገባሁ ቁጥር የቪኤንሲ ሰርቨርን ከአስተዳዳሪው የርቀት መዳረሻ ወደ ዴስክቶፕ የሚያስገባ ስክሪፕት እንደተከፈተ ተረዳሁ። ይህ ሰው ሊሰልልህ በፈለገ ቁጥር በቀጥታ ከማሽንዎ ጋር ይገናኝና ይመለከት ነበር። አሳፋሪ ነበር፣ እና አሁን ሳስበው ምናልባት ህገወጥ ነው።

ጥርሴን በ BASIC እና C64 ላይ ቆርጬ፣ አሁን በ C እና በትንሹ C++ ጽፌያለሁ። በዚያን ጊዜ እኔ አሁንም እንዳየሁት የ C++ አንዳንድ ድክመቶችን የሚያስተካክለውን የዲ ቋንቋን በጣም እጓጓ ነበር።

በዲ ላይ አዲስ ነገር ለማንበብ ወይም ከዲጂታል ማርስ ዲ ኮምፕሌተር ጋር ለመጫወት ወደ ኮምፕዩተር ክፍል እገባ ነበር።አንዳንዴ የዲ ታላቅ የወደፊት ዕጣ ፈንታ ሳስብ ትኩረቴ እየተከፋሁ ሳለ ሌሎች የዊን32 ፕሮግራሞችን በመስኮታቸው ለመጥለፍ C ኮድ ጻፍኩ። መያዣዎች.

በድሮው የዊን32 ፕሮግራሚንግ የዊንዶው እጀታ መፈለግ ሌሎች ፕሮግራሞችን ለመጥለፍ ቀላሉ ዘዴ ነበር። ምንም እንኳን በስክሪኑ ላይ ባይታይም በዊንዶው ላይ ያሉት ሁሉም የ GUI ፕሮግራሞች መስኮት ነበራቸው። እጀታውን ወደ ሌላ ሂደት ለማምጣት ፕሮግራም በመጻፍ (በመሰረቱ ከእሱ ጋር አገናኝ) መልዕክቶችን ወደ እሱ መላክ ይችላሉ። ይህ ለአንዳንድ መሰረታዊ ስራዎች እንደ የፕሮግራም መስኮት መደበቅ/ማሳየት እንዲሁም ሂደቱን የዘፈቀደ ዲኤልኤልን ወደ ማህደረ ትውስታ ቦታው እንዲጭን እና ኮድን መተግበር እንዲጀምር ማስገደድ ያሉ በጣም ጥሩ ነገሮችን ፈቅዷል። ከዲኤልኤል መርፌ በኋላ ደስታው ተጀመረ።

በመጀመሪያው ወር ተኩል ውስጥ ይህ መርማሪ ብዙም አላስቸገረኝም፤ በማሽንዬ ላይ ካለው የቪኤንሲ አገልጋይ ጋር የተገናኘው አንድ ወይም ሁለት ጊዜ ብቻ ነው። ግን አንድ የተወሰነ ክፍለ ጊዜ ፍላጎቱን ቀስቅሶ ሊሆን ይችላል። እኔ ክፍል ውስጥ መጫወት ቀላል ለማድረግ Minesweeper መስኮቶችን ለመደበቅ (ሳይዘጋቸው) አንዳንድ C ኮድ እየጻፍኩ ነበር, እኔ ሥርዓት ትሪ ውስጥ ነጭ VNC አዶ ጥቁር ተቀይሯል አስተዋልኩ ጊዜ. ይህ ማለት አሁን እያየኝ ነበር ማለት ነው።

እሱን ችላ ለማለት እየሞከርኩ እንደተለመደው ኮድ ማድረጉን ቀጠልኩ። ይህ በእንዲህ እንዳለ ማሽኑ ከፍተኛውን የፍሬም መጠን በክፍሉ ጥግ ላይ ካሉት ስፍር ቁጥር የሌላቸው ተቆጣጣሪዎች ወደ አንዱ ለማስተላለፍ እየሞከረ ፍጥነት መቀነስ ጀመረ። ዊንዶውስ ምላሽ መስጠቱን ሊያቆም ትንሽ ቀርቷል፣ ትዕግስትዬ ሲያልቅ፣ ዘግቼ ለቀኑ ጨረስኩ።

በቀጣይ ወደ ኮምፒውተር ክፍል ጎበኘኝ፣ ኮሎምቦ ሁልጊዜ ማለት ይቻላል የማደርገውን ነገር በጣም ይፈልግ ነበር። ከአራተኛው ጊዜ በኋላ ወሰንኩ፡ በዚህ ጉዳይ ላይ አንድ ነገር ማድረግ አለብኝ።

ምክንያታዊ እና አስተዋይ የሆነ ሰው ይህን ጉዳይ በቀጥታ ከእሱ ወይም ከአለቃው ጋር ሊያነሳው ይችል እንደነበር አልክድም። ነገር ግን፣ ሁልጊዜ በፈተና እሸነፍ ነበር እናም ራሴን በፍጥነት እና ሙሉ ለሙሉ የተለየ ስልት ለመከተል አወራሁ።

- ያለዚህ ቪኤንሲ አገልጋይ ምንም ነገር ማድረግ አይችሉም! - በእርጋታ እና በቆራጥነት ለራሴ ብዙ ጊዜ ነገርኩት።

ቪኤንሲን ለመግደል አስፈላጊ ነበር.

ከብዙ ተማሪዎች ጋር ወደ ኮምፕዩተር ክፍል መግባት ጀመርኩ እና በተቻለ መጠን ተቆጣጣሪዎችን ይዤ ከማእዘኑ ርቄ መቀመጥ ጀመርኩ። ይህ ለተወሰነ ጊዜ ሰርቷል እና ሀሳቦችን ለመፈተሽ የተወሰነ ጊዜ ሰጠኝ።

የመጀመሪያ ሙከራዬ ትስማማለህ ብዬ አስባለሁ፣ በጣም ደካማ ነበር። በስርዓት መሣቢያው ውስጥ ባለው የቪኤንሲ አዶ ላይ በቀኝ ጠቅ በማድረግ አስማታዊ ፊደሎችን EXIT የያዘ ምናሌ አየሁ። እንደ አለመታደል ሆኖ, ደብዳቤዎቹ የተጻፉት በግራጫ የጽሑፍ ጽሑፍ ነው. አስተዳዳሪው በቡድን ፖሊሲ አርታዒ በኩል የ"ውጣ" ሜኑ ንጥሉን አሰናክሏል። ሂደቱን ከተግባር አስተዳዳሪው ለመግደል ሞከርኩ፣ ግን በእርግጥ ለእኔ የማይታይ ነበር ምክንያቱም በተለየ፣ የበለጠ መብት ባለው መለያ ስር እየሄደ ነው። አልተሳካም።

የቪኤንሲ አገልጋይ በTCP ወደብ 5900 ይሰራል፣ አስታውሳለሁ። የሚቀጥለው እቅዴ የተበላሹ እሽጎችን ወደዚህ ወደብ ለብልሽት መላክ ነበር።

እኔ ቢያንስ ጥቂት ቀናት ፕሮቶኮል ጋር tinkering አሳልፈዋል, ወደብ 5900 በደንብ የተዋቀሩ crap የተለያዩ ቅጾችን በመላክ እና ይሰበር ተስፋ. ዞሮ ዞሮ ያ ደግሞ አልሰራም።

ይህን ነገር ማስወገድ እንደማልችል ማሰብ ጀመርኩ, በድንገት ወደ እኔ ሲገባ: እዚያ መስኮት መኖር አለበት! ማሳየት አለብን። ምናልባት በጥሩ ሁኔታ ልጠቀምበት የምችለው ጥሩ ጭማቂ "ድምጸ-ከል" አዝራር ይኖረዋል!

የሌላ ሂደት ዋና መስኮት መያዣውን ለማግኘት አሁን ከሞላ ጎደል የሚቀርበውን C ኮድ ሮጥኩ - እና በእርግጠኝነት፣ ቪኤንሲ መገኘቱ። ጣቶቼ ሲተይቡ ተመስጦ ተሰማኝ። WM_SHOWWINDOW. ከፊቴ ያየሁትን ለመገመት ሞክር?

መነም!

አሁን የማወቅ ጉጉት ነበረኝ... መስኮት ነበረው፣ ግን መልእክቶቼን ችላ ይለው ነበር። መስራቱን ለማረጋገጥ ኮዴን ደግሜ ሞከርኩት። በሌሎች በርካታ ሂደቶች ላይ ሞክረው እና በጣም ጥሩ ሰርቷል። ሌሎች መልዕክቶችን ወደ ቪኤንሲ መስኮት ለመላክ ሞከርኩ፣ እና አሁንም ምንም የለም።

እና ከዚያ እንደገና ታየኝ!

በጣም ወፍራም ምስጋና ይግባው መጽሐፉ ቻርለስ ፔትዝልድ የዊን32 ሂደቶች በስርዓቱ ውስጥ እንዴት እንደሚሰሩ በጥንቃቄ አጠናሁ። እያንዳንዱ የዊን32 መተግበሪያ መስኮት እና እንዲሁም "የመልእክት ወረፋ" አለው። በተጠቃሚ መስተጋብር የተቀሰቀሱ መልእክቶች እንዲሁም በራሱ ዊንዶውስ የተላኩ መልእክቶች ወረፋ ላይ ይደርሳሉ እና አፕሊኬሽኑ ራሱ እንዴት እንደሚያስኬዳቸው ይወስናል።

በራሱ በጣም አስደሳች አይደለም. ነገር ግን ትልቅ በቂ ያልተሰራ የመልእክት ወረፋ የመስኮት ሂደት አስተዳዳሪ በተሰቀለ ሂደት ውስጥ ጣልቃ እንዲገባ እንደ ሂሪስቲክ ሆኖ እንደሚሰራ ሳውቅ ንጹህ ሴሮቶኒን ማላብ ጀመርኩ።

አንድ ሰከንድ ሳላጠፋ፣ ወደ ዋናው የቪኤንሲ መስኮት ሌላ መልእክት ለመላክ እየተዘጋጀሁ ወደ ሲ ኮድ ተመለስኩ። WM_SHOWWINDOW. በአንድ ዑደት ውስጥ. ዘላለማዊ ስለዚህ, ብዙ መልዕክቶች. WM_SHOWWINDOW, አሁን VNC ሙሉ በሙሉ ችላ ለማለት እንደሚሞክር አውቃለሁ ... በአደጋው.

በህይወቴ በጣም ነፃነት-አፍቃሪ የሆነውን 4KB አዘጋጅቼ ሮጥኩ። ከሶስት ሰከንዶች በኋላ ዊንዶውስ ሂደቱን ዘግቧል vncserver.ехе መልስ አልሰጠም እና በቀላሉ እምቢ ማለት የማልችለውን ሀሳብ አቅርቧል።

ይህን ሂደት ማጠናቀቅ ይፈልጋሉ?

ሲኦል አዎ!

ለቀሪው ቀን በራሴ በጣም ደስተኛ መሆኔን አልቀበልም።

አዲሱን ልዕለ ኃይሌን ለመፈጨት ከጥቂት ሰዓታት በኋላ፣ እንዴት እንደምጠቀምበት ወሰንኩ። ከእሱ ፊት ለፊት ያለውን ክፍለ ጊዜ ብቻ ለመግደል በጣም ቀላል ነበር. የተሻለ ሀሳብ ነበረኝ - ሙሉ በሙሉ መጥፋት።

በኋላ የእሳት ጥምቀት በሶኬት መርሃ ግብር ሁለት ነገሮችን የሚያደርግ ኮድ መጻፍ እንደምችል ተገነዘብኩ። መጀመሪያ ነፃ የወጣውን TCP ወደብ 5900 ይይዛል፣ ከዚህ ቀደም በቪኤንሲ አገልጋይ ሂደት የተያዘው። ከዚያ ከተጠቀሰው ማሽን VNC አገልጋይ ጋር አዲስ የ TCP ግንኙነት ይፈጥራል። ኮዱ በቀላሉ በሁለቱ ሶኬቶች መካከል ያሉትን ሁሉንም መረጃዎች ፕሮክሲ ያደርጋል፣ እና ኮሎምቦ ከእኔ ጋር የተገናኘ እንደሆነ ያስባል፣ በእውነቱ እሱ ሙሉ በሙሉ ከተለየ የቪኤንሲ አገልጋይ ጋር ይገናኛል።

የእኔ ኮድ በእኔ እና በመረጥኩት ሌላ ምስኪን ነፍስ መካከል እንደ ሚስጥራዊ ድልድይ ሆኖ ይሰራል። ግሩም ነበር።

ወዲያው የሐሰት ቪኤንሲ ድልድይ መፃፍ ጀመርኩ። ኮሎምቦ ብዙ ጊዜ አገናኘኝ፣ ግን በፊቱ ፕሮግራም ማውጣቴን ቀጠልኩ። እንደ የወደብ ቁጥሮች እና አስተያየቶች ያሉ ግልጽ የሆኑ ነገሮችን ብጽፍም እኔ የማደርገውን ነገር አያውቅም ወደሚል ድምዳሜ ደረስኩ። // Прощай, жуткий шпион VNC.

ከጥቂት ቀናት በኋላ ኮዱ በትክክል እንዲሰራ ማድረግ አልቻልኩም። ይባስ ብሎ በስርዓት መሣቢያው ውስጥ ካለው ጥቁር ቪኤንሲ አዶ ጋር ያለማቋረጥ እየሠራሁ ነበር። ተገናኝቶ እያለ፣ ኮዴን ለመፈተሽ ወደቡ መልቀቅ አልቻልኩም።

ያኔ ባውቅ ኖሮ netcat!

በመጨረሻ፣ ነርቮቼ ጠፉ፤ ለነገሩ እኔ የ17 ዓመት ልጅ ትዕግስት አጥቼ ነበር። የነጩን የቪኤንሲ አገልጋይ አዶ እንደገና ወደ ጥቁር ሲቀየር እያየሁ፣ ደነገጥኩ፣ የመልእክቱን ወረፋ የያዘውን ኦርጅናሉን ኮድ ከፈትኩ እና በዓይኑ ፊት ሮጥኩት። ጠቅ ከማድረጌ በፊት እንኳን ሁለት ሰከንዶች ጠብቄአለሁ። End Process, ማየቱን ለማረጋገጥ ብቻ ነው.

ያንን ቁልፍ መጫኑ ዋጋ እንዳለው ሙሉ በሙሉ ካላሳመነኝ፣ እሱ ከተቆጣጣሪዎቹ ምሽግ ጀርባ ዘሎ እየዘለለ በፍጥነት ወደ እኔ ለመቅረብ እና ከክፍሉ አስወጣኝ።

በዚህ ምክንያት ለሁለት ሳምንታት ከአውታረ መረቡ ታገድኩ። ፍትሃዊ ቅጣት አሰብኩ። ከሶስት ሳምንታት በኋላ፣ የቪኤንሲ አገልጋይ ከቡት ስክሪፕቶች ጠፋ እና ሌላ ቦታ በጭራሽ አልታየም። የእኔ ክስተት በዚህ ውስጥ ምንም አይነት ሚና እንዳለው ወይም እንዳልሆነ አላውቅም ነበር፣ ነገር ግን የቪኤንሲ ሽጉጤን በመላ ሀገሪቱ ውስጥ ላሉ የኮሌጅ ኮምፒውተር አዳራሾች በመሸጥ እጅግ ሀብታም ለመሆን እቅዴን ሙሉ በሙሉ አበላሽቶታል።

ምንጭ: hab.com

አስተያየት ያክሉ