Wednesday, August 13, 2008

வைரஸுடனான முதல் அனுபவம் (பாகம் 5)

(இதைப்படித்து விட்டு இங்கு வரவும் ( விஜய் கம்ப்யூட்டர்ஸ் உசிலம்பட்டி )

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

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

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

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

சரி ஒரு பிரச்சினை விட்டது நாளைக்கு செய்முறை விளக்கம் காட்டிவிடலாம். ஆனால் மெகாஃபி வைரஸ் நீக்கி இந்த வைரஸை நீக்கவில்லை, இருக்குன்னு மட்டும் சொல்லுது. இந்த வைரஸை எப்படி நீக்குவது

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

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

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

BDPS பயிலகத்தில் படிக்கும்பொழுது GWBASIC என்ற மொழியில் Basic நிரலாக்கம் பயின்று கொன்டிருந்தேன், அப்பொழுது GWBASIC இல் உள்ள அனைத்து கட்டளைகளையும் படித்து செயற்படுத்தி பார்த்துக்கொன்டிருப்பேன்.
அதில் உள்ள DEFSEG , CALL, PEEK மற்றும் POKE கட்டளைகள் எதுக்குன்னே புரியலை அவைகள் எல்லாம் சற்று உயர் நுட்பத்துக்கனவை மற்றும் அசெம்பிளி( ASSEMBLY language ) மொழி சம்பத்தப்பட்டவை என்று தெரிந்தது உடனே அசெம்பிளிமொழி பற்றிய புத்தகங்கள் வாங்கி படித்தேன்.

1). பீட்டர் நார்டன் ( Peter Norton ) அவர்கள் எழுதிய Assembly Language Book for the IBM PC

2). பீட்டர் ஏபெல்(Peter Abel ) அவர்கள் எழுதிய Assembly Language and Programming

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

ஆமாம், கணணி உயர் நுட்பப் பிதா மகன் பீட்டர் நார்டன் ( Peter Norton ) அவர்கள் எழுதிய Assembly Language Book for the IBM PC ..என்ற புத்தகத்தில் பூட்செக்ட்டாரை அசெம்பிளி மொழி பயன்படுத்தி, எப்படிப்படிப்பது என்று விளக்கப்பட்டிருந்தது. அதை வழியாகக்கொன்டு ஒரு நிரலை GWBASIC மூலம் எழுதி இயக்கி பூட்செக்டாரை படிக்கும் வழியறிந்தேன்.

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

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

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

உடனே செயலில் இறங்கி கீழ்கன்டவைகளை செயற்படுத்தினேன்.

1). ஒரு பிளாப்பி NewBug வைரஸால் பாதிக்கப்பட்டதா? என்று கன்டுபிடிக்க:
ஆந்த பிளாப்பியின் பூட் செக்டாரில் குறிப்பிட்ட அந்த ( NewBug வைரஸ் சம்பதப்பட்ட) விவரங்கள் இருந்தால் NewBug வைரஸால் பாதிக்கப்பட்டது என்றாகும்.

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

3). வைரஸ் இயக்கத்தில் உள்ளபோது கன்டுபிடிக்க முடியாதே அப்பொழுது என்ன செய்வது?
கணணியின் நினைவகத்தில் குறிப்பிட்ட அந்த ( NewBug வைரஸ் சம்பதப்பட்ட) விவரங்கள் இருந்தால், வைரஸ் இயக்கத்தில் உள்ளது என்றறிந்து வைரஸ் இல்லாத பிளாப்பி வழியாக கணியை ஆரம்பிக்க அறிவுறுத்தி எச்சரிக்கை செய்தி வெளியிடலாம். (கணணியின் நினைவத்தில் உள்ளவைகளி படித்து சோதிக்க மற்றும் மாற்றியமைக்க GWBASIC மொழியில் PEEK மற்றும் POKE கட்டளைகள் பயன்படுத்தப்படுகின்றன.

எனது வைரஸ் நீக்கி பற்றி அடுத்து பார்ப்போம்.

தொடர்ச்சி இங்கே (எனது VAV மற்றும் VVN வைரஸ் நீக்கிகள்)

4 comments:

Kasi Arumugam said...

சுவையான அனுபவங்கள்தான். பீட்டர் நார்ட்டனின் Inside the IBM PC ஐ பலமுறை படித்திருக்கிறேன். பழைய நினைவுகளைக் கொண்டுவருகிறீர்கள்.:))

உசிலை விஜ‌ய‌ன் said...

ஆமாம் காசி அவர்களே, DOS அழைப்புகளை எப்படிப்பயன்படுத்துவது என்று நன்றாக, எடுத்துக்காடுகளுடன் அந்த புத்தகத்தில் பீட்டர் நார்டன் அவர்கள் விளக்கியிருப்பார். ஆனால் அச்செம்பிளி மொழி விளக்கத்துக்கு பீட்டர் ஏபெல்(Peter Abel ) அவர்கள் எழுதிய Assembly Language and Programming என்ற புத்தக்கம் மிக நனேஆக இருக்கும். அந்த புத்தகத்தை முழுவதுமாக கரைத்து குடித்திருக்கின்றேன். ஒருமுறை மதுரையில் உள்ள ஆல்பிரெட் நோபல் பள்ளிக்கு எனது மென்பொருட்களை விற்பனை செய்த பில்லில் பள்ளியின் பெயரை தவறாக பீட்டர் ஏபல் ஸ்கூல் என்று தவறாக போட்டு கொடுத்து விட்டேன். அந்த அளவுக்கு அதன் தாக்கம் என்னுள் இருந்தது. அதை இப்போது நினைத்தாலும் சிரிப்பு வருகிறது.

S.Lankeswaran said...

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

உசிலை விஜ‌ய‌ன் said...

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

உங்களை சந்திப்பதில் மிக்க மகிழ்ச்சியோடு ஆர்வமாக உள்ளேன்.