கோடர் போர்: எனக்கு எதிராக அந்த VNC கை

В இந்த வலைப்பதிவு சில புரோகிராமர் கதைகள் வெளியிடப்பட்டுள்ளன. எனது பழைய முட்டாள்தனமான விஷயங்களை நினைவுபடுத்த விரும்புகிறேன். சரி, இதோ அப்படிப்பட்ட இன்னொரு கதை.

நான் முதன்முதலில் கணினியில் ஆர்வம் காட்டினேன், குறிப்பாக நிரலாக்கத்தில், நான் சுமார் 11 வயதில் இருந்தேன். உயர்நிலைப் பள்ளியின் தொடக்கத்தில் பிоஎனது ஓய்வு நேரத்தின் பெரும்பகுதியை எனது C64 உடன் டிங்கரிங் செய்து பேசிக் எழுதினேன், பின்னர் மோசமான குறியீட்டை கத்தரிக்கோலால் வெட்டினேன். நான் கேலி செய்யவில்லை, கத்தரிக்கோல்.

பள்ளிக்குப் பிறகு (16 வயது வரை), பிரிட்டிஷ் குழந்தைகள் வழக்கமாக கல்லூரிக்குச் செல்வார்கள், அங்கு அவர்கள் பல்கலைக்கழகத்திற்குச் செல்வதற்கு முன் மூன்று அல்லது நான்கு பாடங்களைப் படிக்கத் தேர்வு செய்கிறார்கள். வீட்டில் பீஜ் பாக்ஸ் மற்றும் டேப் ரெக்கார்டர் மீது எனக்கு இருந்த அன்பைக் கருத்தில் கொண்டு, கல்லூரியில் "கணினி அறிவியல்" படிப்பதே சரியான தேர்வு என்று முடிவு செய்தேன்.

நான் எதிர்பார்த்ததை விட படிப்பை ரசித்தேன்; அங்கு நான் முதலில் பாஸ்கலையும் டெல்பியையும் சந்தித்தேன்.

வகுப்புகளுக்கு இடையே இடைவேளையின் போது, ​​மாணவர்கள் கணினி அறையில் எந்த இலவச இயந்திரத்திலும் வேலை செய்யலாம். கற்பனை செய்து பாருங்கள்: ஒரு பெரிய அறை, சுமார் நூறு பேருக்கு வடிவமைக்கப்பட்டுள்ளது, கணினி அலகுகளில் மானிட்டர் நிற்கும் இடம் போன்ற இயந்திரங்களால் நிரப்பப்பட்ட அட்டவணைகளின் வரிசைகள். ரசிகர்கள் தொடர்ந்து முனகுகிறார்கள், மவுஸ் பந்துகள் மேசைகளில் ஒலிக்கின்றன, ஒரு நொடி கூட நிற்கவில்லை. 50-100 ஹார்மோன் இளைஞர்கள் நூற்றுக்கணக்கான பென்டியம் III சில்லுகளை குளிர்விக்க அவ்வப்போது மாற்றுவது போல் காற்றில் ஒரு விசித்திரமான வாசனை உள்ளது.

உடல்நல அபாயங்கள் இருந்தபோதிலும், எனக்கு ஒரு இலவச நிமிடம் இருக்கும்போது கணினியில் உட்கார விரும்புகிறேன்.

அறையில் பணியில் இருந்த நிர்வாகி ஒரு குட்டையான, நடுத்தர வயதுடையவர், அவர் தீய சர்வாதிகாரியாக மாற வேண்டும் என்ற தீராத விருப்பத்தின் காரணமாக இந்த பாத்திரத்திற்கு தேர்ந்தெடுக்கப்பட்டார். நான் நினைக்கிறன். கடமை என்பது குறைத்து மதிப்பிடப்பட்டுள்ளது; பையன் தனது வேலையை மிகவும் விரும்பினான். பள்ளிக் கணினியை தகாத எதற்கும் யாரும் பயன்படுத்தாதபடி ஒழுங்கைக் கடைப்பிடிக்க அவர் பணிக்கப்பட்டார்.

இன்றுவரை, நிர்வாகியின் போனஸ் நேரடியாக அவர் கையால் பிடித்து கணினி அறைக்கு வெளியே அழைத்துச் செல்லும் மாணவர்களின் எண்ணிக்கையைப் பொறுத்தது என்று என் உள்ளுணர்வு என்னிடம் கூறுகிறது. இந்த நபர் தனது அடமானத்தை முன்கூட்டியே செலுத்திவிட்டார் என்று நான் உறுதியாக நம்புகிறேன்.

கம்ப்யூட்டர் அறையின் தூர மூலையில் ஒரு மூலை மேசையில் அமர்ந்தான். அவரது கருவுறுதல் கண்காணிப்பாளர்கள் ஒரு குறுகிய கர்ப்ப காலத்தில் இனப்பெருக்கம் செய்வதற்கான வழியைக் கண்டுபிடித்துள்ளனர் என்று கருதுவது பாதுகாப்பானது, அவற்றில் பல இருந்தன. அவை அனைத்தையும் கண்காணிக்க அவருக்கு உண்மையில் நேரம் இருக்கிறதா என்று ஒருவர் ஆச்சரியப்படலாம். நிச்சயமா நான் கிண்டல் பண்றேன்... அவங்க வேலையை ரொம்ப சீரியஸாக எடுத்தார்னு சொன்னேனா?

அந்த நேரத்தில், கணினி நெட்வொர்க்கில் விண்டோஸ் 2000 இயங்குகிறது. ஒவ்வொரு முறையும் நான் கணினியில் உள்நுழையும்போது, ​​டெஸ்க்டாப்பிற்கான தொலைநிலை அணுகலுக்காக நிர்வாகி கணக்கிலிருந்து VNC சேவையகத்தைத் தொடங்கும் ஸ்கிரிப்ட் தொடங்கப்பட்டது என்பதை நான் விரைவில் கண்டுபிடித்தேன். இந்த நபர் உங்களை உளவு பார்க்க விரும்பும் போதெல்லாம், அவர் உங்கள் இயந்திரத்துடன் நேரடியாக இணைத்து பார்ப்பார். இது பயமாக இருந்தது, இப்போது நான் அதைப் பற்றி நினைக்கும்போது, ​​அநேகமாக சட்டவிரோதமானது.

BASIC மற்றும் C64 இல் பற்களை வெட்டியதால், இப்போது C மற்றும் கொஞ்சம் C++ இல் எழுதினேன். அப்போது நான் பார்த்தது போல் C++ இன் சில குறைகளை சரி செய்யும் D மொழியின் மீது எனக்கு இன்னும் ஆர்வம் இருந்தது.

நான் கணினி அறைக்குள் சென்று புதிதாக D இல் எதையாவது படிக்க வேண்டும் அல்லது Digital Mars D கம்பைலரில் விளையாடுவேன். சில சமயங்களில், D இன் சிறந்த எதிர்காலத்தைப் பற்றி யோசிப்பதில் இருந்து நான் திசைதிருப்பப்பட்டபோது, ​​​​மற்ற Win32 நிரல்களை அவற்றின் சாளரத்தில் ஹேக் செய்ய C குறியீட்டை எழுதினேன். கையாளுகிறது.

Win32 நிரலாக்கத்தின் பழைய நாட்களில், பிற நிரல்களை ஹேக் செய்ய ஒரு சாளர கைப்பிடியைக் கண்டுபிடிப்பது எளிதான முறையாகும். வெளிப்படையாக, விண்டோஸில் உள்ள அனைத்து GUI நிரல்களும் திரையில் தோன்றாவிட்டாலும் ஒரு சாளரத்தைக் கொண்டிருந்தன. மற்றொரு செயல்முறைக்கு ஒரு கைப்பிடியை மீட்டெடுக்க ஒரு நிரலை எழுதுவதன் மூலம் (அடிப்படையில் அதற்கான இணைப்பு), நீங்கள் அதற்கு செய்திகளை அனுப்பலாம். இது ஒரு நிரல் சாளரத்தை மறைத்தல்/காண்பித்தல் போன்ற சில அடிப்படை செயல்பாடுகளுக்கு அனுமதித்தது, அத்துடன் ஒரு தன்னிச்சையான DLL ஐ அதன் நினைவகத்தில் ஏற்றி குறியீட்டை இயக்கத் தொடங்கும் செயல்முறையை கட்டாயப்படுத்துவது போன்ற மிகவும் அருமையான விஷயங்களை இது அனுமதித்தது. DLL ஊசிக்குப் பிறகு, வேடிக்கை தொடங்கியது.

முதல் ஒன்றரை மாதங்களில், இந்த துப்பறியும் நபர் என்னை அதிகம் தொந்தரவு செய்யவில்லை; இது எனது கணினியில் உள்ள VNC சேவையகத்துடன் ஒன்று அல்லது இரண்டு முறை மட்டுமே இணைக்கப்பட்டது. ஆனால் ஒரு குறிப்பிட்ட அமர்வு அவரது ஆர்வத்தைத் தூண்டியிருக்கலாம். வகுப்பில் விளையாடுவதை எளிதாக்குவதற்காக மைன்ஸ்வீப்பர் ஜன்னல்களை (அவற்றை மூடாமல்) மறைக்க சில C குறியீட்டை எழுதிக் கொண்டிருந்தேன், சிஸ்டம் ட்ரேயில் உள்ள வெள்ளை VNC ஐகான் கருப்பு நிறமாக மாறியிருப்பதைக் கவனித்தேன். அவர் இப்போது என்னைப் பார்த்துக் கொண்டிருக்கிறார் என்று அர்த்தம்.

நான் வழக்கம் போல் குறியீட்டைத் தொடர்ந்தேன், அவரைப் புறக்கணிக்க முயன்றேன். இதற்கிடையில், இயந்திரம் மெதுவாகத் தொடங்கியது, அதிகபட்ச பிரேம் வீதத்தை அறையின் மூலையில் உள்ள எண்ணற்ற மானிட்டர்களில் ஒன்றிற்கு அனுப்ப முயற்சித்தது. விண்டோஸ் பதிலளிப்பதை கிட்டத்தட்ட நிறுத்தியது, என் பொறுமை தீர்ந்ததும், நான் வெளியேறி அன்றைய தினத்தை முடித்தேன்.

கணினி அறைக்கு அடுத்தடுத்த வருகைகளின் போது, ​​ஒவ்வொரு முறையும் நான் என்ன செய்து கொண்டிருந்தேன் என்பதில் கொழும்பு மிகுந்த ஆர்வம் கொண்டிருந்தது. நான்காவது முறைக்குப் பிறகு, நான் முடிவு செய்தேன்: இதைப் பற்றி நான் ஏதாவது செய்ய வேண்டும்.

ஒரு நியாயமான, பகுத்தறிவு கொண்ட ஒருவர் இந்தப் பிரச்சினையை அவரிடமோ அல்லது அவருடைய முதலாளியிடமோ நேரடியாக எழுப்பியிருக்க முடியும் என்பதை நான் ஒப்புக்கொள்கிறேன். இருப்பினும், நான் எப்பொழுதும் சலனத்திற்கு அடிபணிந்தேன் மற்றும் முற்றிலும் மாறுபட்ட உத்தியைக் கடைப்பிடிக்க விரைவாகப் பேசினேன்.

- இந்த VNC சர்வர் இல்லாமல் உங்களால் எதுவும் செய்ய முடியாது! - நான் நிதானமாகவும் தீர்க்கமாகவும் பலமுறை என்னிடம் சொன்னேன்.

VNC ஐக் கொல்ல வேண்டியது அவசியம்.

மாணவர்களின் பெரிய குழுக்களுடன் கணினி அறைக்குள் சென்று மானிட்டருடன் முடிந்தவரை மூலையில் இருந்து வெகு தொலைவில் அமர்ந்தேன். இது சிறிது நேரம் வேலை செய்தது மற்றும் யோசனைகளை சோதிக்க எனக்கு சிறிது நேரம் கொடுத்தது.

எனது முதல் முயற்சி, நீங்கள் ஒப்புக் கொள்வீர்கள் என்று நினைக்கிறேன், மிகவும் பலவீனமாக இருந்தது. சிஸ்டம் ட்ரேயில் உள்ள VNC ஐகானில் ரைட் கிளிக் செய்தால், EXIT என்ற மேஜிக் எழுத்துக்களைக் கொண்ட மெனுவைக் கண்டேன். துரதிர்ஷ்டவசமாக, கடிதங்கள் சாம்பல் நிற அவுட்லைன் உரையில் எழுதப்பட்டுள்ளன. குழு கொள்கை எடிட்டர் மூலம் நிர்வாகி "வெளியேறு" மெனு உருப்படியை முடக்கியுள்ளார். நான் பணி நிர்வாகியிடமிருந்து செயல்முறையை அழிக்க முயற்சித்தேன், ஆனால் அது வேறு, அதிக சலுகை பெற்ற கணக்கின் கீழ் இயங்குவதால், நிச்சயமாக அது எனக்குப் புலப்படவில்லை. அது பலிக்கவில்லை.

VNC சர்வர் TCP போர்ட் 5900 இல் இயங்குகிறது, எனக்கு நினைவிருக்கிறது. எனது அடுத்த திட்டம் சிதைந்த பாக்கெட்டுகளை இந்த துறைமுகத்திற்கு அனுப்புவதே ஆகும்.

5900 போர்ட் க்கு பலவிதமான நன்கு கட்டமைக்கப்பட்ட தந்திரங்களை அனுப்பி, அது உடைந்து விடும் என்ற நம்பிக்கையில், குறைந்தபட்சம் சில நாட்களை நான் நெறிமுறையுடன் டிங்கரிங் செய்தேன். கடைசியில் அதுவும் பலிக்கவில்லை.

இந்த விஷயத்திலிருந்து விடுபட முடியாது என்று நான் ஏற்கனவே நினைக்க ஆரம்பித்தேன், திடீரென்று அது எனக்குப் புலர்ந்தபோது: அங்கே ஒரு ஜன்னல் இருக்க வேண்டும்! நாம் அதைக் காட்ட வேண்டும். ஒருவேளை இது ஒரு நல்ல ஜூசி "முடக்கு" பொத்தானைக் கொண்டிருக்கும், அதை நான் நன்றாகப் பயன்படுத்த முடியும்!

மற்றொரு செயல்பாட்டின் பிரதான சாளரத்தில் கைப்பிடியைக் கண்டறிய நான் இப்போது கிட்டத்தட்ட சரியான C குறியீட்டை இயக்கினேன் - மற்றும் நிச்சயமாக, VNC கண்டுபிடிக்கப்பட்டது. என் விரல்கள் தட்டச்சு செய்யும் போது நான் ஈர்க்கப்பட்டேன் WM_SHOWWINDOW. எனக்கு முன்னால் நான் பார்த்ததை யூகிக்க முயற்சிக்கிறீர்களா?

ஒன்றுமில்லை!

இப்போது நான் ஆர்வமாக இருந்தேன்... அதில் ஒரு சாளரம் இருந்தது, ஆனால் அது எனது செய்திகளைப் புறக்கணித்தது. எனது குறியீட்டை இருமுறை சரிபார்த்தேன். பல செயல்முறைகளில் அதைச் சோதித்து, அது நன்றாக வேலை செய்தது. நான் VNC சாளரத்திற்கு மற்ற செய்திகளை அனுப்ப முயற்சித்தேன், இன்னும் எதுவும் இல்லை.

பின்னர் அது மீண்டும் எனக்குப் புரிந்தது!

மிகவும் தடித்த நன்றி புத்தகம் சார்லஸ் பெட்ஸோல்ட் கணினியில் Win32 செயல்முறைகள் எவ்வாறு செயல்படுகின்றன என்பதை நான் கவனமாகப் படித்தேன். ஒவ்வொரு Win32 பயன்பாட்டிலும் ஒரு சாளரம் மற்றும் "செய்தி வரிசை" உள்ளது. பயனர் தொடர்பு மூலம் தூண்டப்படும் செய்திகளும், விண்டோஸாலேயே அனுப்பப்படும் செய்திகளும் வரிசையில் வந்து சேரும், மேலும் அவற்றை எவ்வாறு செயலாக்குவது என்பதை பயன்பாட்டே தீர்மானிக்கிறது.

மிகவும் சுவாரஸ்யமானது அல்ல. ஆனால், போதுமான அளவு செயலாக்கப்படாத மெசேஜ் வரிசையானது, விண்டோ ப்ராசஸ் மேனேஜருக்குத் தொங்கவிடப்பட்ட செயல்பாட்டில் தலையிட ஒரு ஹூரிஸ்டிக் ஆகச் செயல்படுகிறது என்பதை நான் உணர்ந்தபோது, ​​நான் சுத்தமான செரோடோனின் வியர்க்க ஆரம்பித்தேன்.

ஒரு நொடி கூட வீணடிக்காமல், எனது C குறியீட்டிற்கு திரும்பினேன், முக்கிய VNC சாளரத்திற்கு மற்றொரு செய்தியை அனுப்ப தயாராகிவிட்டேன் WM_SHOWWINDOW. ஒரு சுழற்சியில். நித்தியம். எனவே, நிறைய செய்திகள். WM_SHOWWINDOW, VNC முற்றிலும் புறக்கணிக்க முயற்சிக்கும் என்று எனக்குத் தெரியும்... அதன் ஆபத்தில்.

என் வாழ்க்கையின் மிகவும் சுதந்திரத்தை விரும்பும் குறியீட்டை 4KB தொகுத்து இயக்கினேன். சுமார் மூன்று வினாடிகளுக்குப் பிறகு, செயல்முறை என்று விண்டோஸ் தெரிவித்தது vncserver.ехе பதிலளிக்கவில்லை, மேலும் என்னால் மறுக்க முடியாத ஒரு வாய்ப்பை வழங்கினேன்:

இந்த செயல்முறையை முடிக்க விரும்புகிறீர்களா?

நரகம் ஆம்!

அந்த நாள் முழுவதும் நான் தாங்க முடியாத மகிழ்ச்சியாக இருந்தேன் என்பதை ஒப்புக்கொள்கிறேன்.

எனது புதிய வல்லரசைச் செரித்த சில மணிநேரங்களுக்குப் பிறகு, அதை எப்படிப் பயன்படுத்துவது என்று முடிவு செய்தேன். அவருக்கு முன்னால் அமர்வைக் கொல்வது மிகவும் எளிதானது. எனக்கு ஒரு நல்ல யோசனை இருந்தது - முற்றிலும் மறைந்துவிடும்.

பிறகு சாக்கெட் நிரலாக்கத்துடன் நெருப்பின் ஞானஸ்நானம் இரண்டு விஷயங்களைச் செய்யும் குறியீட்டை என்னால் எழுத முடியும் என்பதை உணர்ந்தேன். இது முதலில் புதிதாக விடுவிக்கப்பட்ட TCP போர்ட் 5900 ஐ ஆக்கிரமிக்கும், முன்பு க்ளூலெஸ் VNC சர்வர் செயல்முறையால் ஆக்கிரமிக்கப்பட்டது. பின்னர் அது குறிப்பிட்ட இயந்திரத்தின் VNC சேவையகத்திற்கு ஒரு புதிய TCP இணைப்பை உருவாக்கும். குறியீடு இரண்டு சாக்கெட்டுகளுக்கு இடையே உள்ள எல்லா தரவையும் ப்ராக்ஸி செய்யும், மேலும் கொலம்போ என்னுடன் இணைக்கிறார் என்று நினைப்பார், உண்மையில் அவர் முற்றிலும் மாறுபட்ட VNC சேவையகத்துடன் இணைக்கப்படுவார்.

எனது குறியீடு எனக்கும் நான் தேர்ந்தெடுக்கும் வேறு சில ஏழை ஆன்மாவிற்கும் இடையே ஒரு ரகசிய பாலமாக செயல்படும். அற்புதமாக இருந்தது.

நான் உடனடியாக என் போலி VNC பிரிட்ஜ் எழுத ஆரம்பித்தேன். கொலம்போ என்னுடன் பலமுறை தொடர்பு கொண்டார், ஆனால் நான் அவருக்கு முன்னால் நிகழ்ச்சியைத் தொடர்ந்தேன். போர்ட் எண்கள் மற்றும் கருத்துகள் போன்ற வெளிப்படையான விஷயங்களை நான் எழுதியிருந்தாலும், நான் என்ன செய்கிறேன் என்று அவருக்குத் தெரியாது என்ற முடிவுக்கு வந்தேன். // Прощай, жуткий шпион VNC.

இரண்டு நாட்களுக்குப் பிறகு, குறியீடு சரியாக வேலை செய்ய முடியவில்லை. விஷயங்களை மோசமாக்க, நான் கணினி தட்டில் உள்ள கருப்பு VNC ஐகானுடன் கிட்டத்தட்ட தொடர்ந்து வேலை செய்து கொண்டிருந்தேன். அது இணைக்கப்பட்டிருந்தபோது, ​​எனது குறியீட்டைச் சோதிக்க போர்ட்டை வெளியிட முடியவில்லை.

அப்போது நான் அறிந்திருந்தால் netcat!

இறுதியில், என் நரம்புகள் வழிவகுத்தன; எல்லாவற்றிற்கும் மேலாக, நான் ஒரு பொறுமையற்ற 17 வயது பையன். வெள்ளை VNC சர்வர் ஐகான் மீண்டும் கருப்பு நிறமாக மாறுவதைப் பார்த்து, நான் பதற்றமடைந்தேன், செய்தி வரிசையை நிரப்பிய அசல் குறியீட்டைத் திறந்து, அதை அவரது கண்களுக்கு முன்னால் இயக்கினேன். கிளிக் செய்வதற்கு முன் சில வினாடிகள் கூட காத்திருந்தேன் End Process, அவன் பார்த்ததை உறுதி செய்யத்தான்.

அந்த பொத்தானை அழுத்தி அது மதிப்புக்குரியது என்று என்னை முழுமையாக நம்பவில்லை என்றால், அவர் தனது மானிட்டர் கோட்டையின் பின்னால் இருந்து விரைவாக என்னை அணுகி என்னை அறைக்கு வெளியே அழைத்துச் சென்றார்.

இதன் விளைவாக, நான் இரண்டு வாரங்களுக்கு நெட்வொர்க்கில் இருந்து தடை செய்யப்பட்டேன். நியாயமான தண்டனை, நான் நினைத்தேன். சுமார் மூன்று வாரங்களுக்குப் பிறகு, VNC சர்வர் பூட் ஸ்கிரிப்ட்களில் இருந்து மறைந்து வேறு எங்கும் தோன்றவில்லை. எனது சம்பவம் இதில் ஏதேனும் பங்கு வகிக்கிறதா இல்லையா என்பது எனக்குத் தெரியாது, ஆனால் நாடு முழுவதும் உள்ள கல்லூரி கணினி அரங்குகளில் மனச்சோர்வடைந்த மாணவர்களுக்கு எனது VNC துப்பாக்கியை விற்று அபரிமிதமாக பணக்காரர் ஆவதற்கான எனது திட்டத்தை அது முற்றிலும் அழித்துவிட்டது.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்