ဒီအပိုင္းကေတာ့ Virus ဖန္တီးျခင္း posts နဲ႔ပတ္သတ္ျပီး ေနာက္ဆံုးအပိုင္းပါ။ ေသခ်ာေလ့လာၾကည့္မယ္ဆိုရင္ Virus တစ္ခုကို ဖန္တီးဖို႔အတြက္ အစိတ္အပိုင္း ၂၅ ပိုင္း ပါ၀င္တယ္ဆိုတာကို ေတြ႔ရပါလိမ့္မယ္။ ျပီးေတာ့ Virus ကူးစက္ျခင္းအဆင့္ ၅ ဆင့္ရွိတဲ႔အထဲမွာ
အဆင့္ (၁)၊ (၂)၊ (၃) ကို ေဖာ္ျပခဲ႔ျပီးပါျပီ။ ဒီ post မွာေတာ့ အဆင့္ (၄) နဲ႔ (၅) အျပင္ Virus ဖန္တီးျခင္းအတြက္ သိထားရမယ့္ Virus ရဲ႕အဓိက အစိတ္အပိုင္း (၃) ပိုင္းကို ေဖာ္ျပထားပါတယ္။ ဒီအပိုင္းက နဲနဲရႈပ္ေထြးပါတယ္။ ၾကိဳးစားျပီး ဖတ္ရပါလိမ့္မယ္။
Virus ကူးစက္ျခင္း : အဆင့္ (၄)Virus ကူးစက္ဖိုင္ဖိုင္ attributes မ်ားကို သိမ္းဆည္းျခင္း- virus ကူးစက္ဖို႔အတြက္ ဖိုင္တစ္ခုကို ရွာေဖြျပီးတဲ႔ ေနာက္မွာ အဲဒီဖိုင္ရဲ႕ attributes ၊ အခ်ိန္ ၊ ေန႔ရက္ နဲ႔ ဖိုင္ဆိုဒ္ ေတြကို ဖတ္သားထားလိုက္ပါတယ္။
- အဲဒီ attributes ေတြကို variable memory space မွာ သိမ္းဆည္းထားျပီး ျပန္လည္ခြဲေ၀သတ္မွတ္ေပးပါတယ္။
-ေအာက္မွာျပထားတဲ႔ code ေတြကေတာ့ အဲဒီ attributes အားလံုးကို သိမ္းဆည္းေပးဖို႔အတြက္ အသံုးျပဳပါတယ္။
Virus ကူးစက္ျခင္း : အဆင့္ ( ၄) ( ဆက္လက္၍)ဖိုင္ attributes မ်ားကို လိုအပ္သလို ျပင္ဆင္ေျပာင္းလဲျခင္း- ဒီအပိုင္းကေတာ့ systemရဲ႕ virus ကူးစက္ျခင္း၊ ဖံုးကြယ္ျခင္း နဲ႔ read only ဖိုင္ မ်ားျဖစ္လာဖို႔အတြက္ ကူညီေပးပါတယ္။
- ေအာက္မွာ ဥပမာ ျပထားတဲ႔ code ေတြကေတာ့ အခုေျပာခဲ႔တဲ႔ဟာေတြကို လုပ္ေဆာင္ေပးဖို႔အတြက္ အသံုးျပဳပါတယ္။
read/write mode မွာ ဖိုင္ကိုဖြင့္ျခင္း- handler တစ္ခုနဲ႔ ဖိုင္ကို ဖြင့္ဖို႔အတြက္ အသံုးျပဳႏိုင္ပါတယ္။
- ဖိုင္တစ္ခုကို ဖြင့္ႏိုင္တဲ႔ ဥပမာ code ေတြပါ။
Virus ကူးစက္ျခင္း : အဆင့္ (၄) ( ဆက္လက္၍)Virus ရဲ႕ လုပ္ငန္းမ်ားကို Run ျခင္း- ဒီအဆင့္မွာေတာ့ Virus ဟာ သူရဲ႕ main action ကို ေဆာင္ရြက္ပါတယ္။
- အစိတ္အပိုင္း အမ်ိဳးမ်ိဳး နဲ႔ သူတို႔ရဲ႕ actions ေတြကို ေနာက္ပိုင္းမွာ ေဖာ္ျပေပးသြားပါမယ္။
Virus ကူးစက္ျခင္း : အဆင့္ (၅)လမ္းေၾကာင္းမ်ားကို ကာကြယ္ျခင္း- ဖိုင္ attribute ေတြ ၊ အခ်ိန္ နဲ႔ ေန႔ရက္ေတြကို ေျပာင္းလဲသြားမွန္ မသိေအာင္ Restore ျဖစ္လုပ္ပါတယ္။
- ေအာက္ပါ code ေတြကေတာ့ ဖိုင္ attribute ေတြကို restore လုပ္ဖို႔အတြက္ အသံုးျပဳပါတယ္။
Virus မ်ား၏ အစိတ္အပိုင္းမ်ားVirusေတြမွာ ေအာက္ပါအတိုင္း အပိုင္း ( ၃ ) ပိုင္း ပါ၀င္ ပါတယ္။ အဲဒါေတြကေတာ့...
(၁) Replicator ( Copier)
Replicator ဆိုတာကေတာ့ Virus ေရာက္ရွိသြားတဲ႔ system တစ္ခုလံုးမွာ Virus ျပန္႔ႏွံ႕ သြားဖို႔ ေဆာင္ရြက္ရတဲ႔ အပိုင္းပါ။
(၂) Conceler (ဖံုးကြယ္ျခင္း)
Conceler ကေတာ့ ေန႔စဥ္အသံုးျပဳေနတဲ႔ user ေတြ၊ Virus scanner ေတြက Virus program ကို ေတြ႔မသြားေအာင္ ကာကြယ္ထားေပးပါတယ္။
(၃) Bomb/Payload
Virus ရဲ႕ ဒီအပိုင္းကေတာ့ deletion အားလံုး ၊ slowdown အားလံုး စသျဖင့္ Virus ရဲ႕ ဖ်က္ဆီးျခင္းအပိုင္းေတြကို လုပ္ေဆာင္ပါတယ္။
Replicator အပိုင္း ရဲ႕ Function မ်ား
- Replicator ဟာ ေအာက္က အဆင့္ ႏွစ္ခု အတိုင္း အလုပ္လုပ္ပါတယ္...
- ၄င္းဟာ ကူးစက္ခံရတဲ႔ ဖိုင္ရဲ႕ ပထမဆံုး bytes အနည္းငယ္ကို အရင္ဆံုး saves လိုက္ပါတယ္။
- အဲဒီေနာက္မွာေတာ့ Virus code အပိုင္းေလးတစ္ခုကို ဖိုင္ ရဲ႕ အစ နဲ႔ အဆံုး ပိုင္းမွာ copy ကူးထည့္ေပးလိုက္ပါတယ္။
ေအာက္မွာျပထားတဲ႔ Diagram ကို ၾကည့္လိုက္ရင္ ရွင္းသြားပါလိမ့္မယ္။
Diagrammatical representation
Replicator ရဲ႕ Writing ပိုင္းအဆင့္ (၁) : program ရဲ႕ V2 သို႔ V1 transfers control
Replicator ရဲ႕ Writing ပိုင္း (ဆက္လက္၍)အဆင့္ (၂) :
- V2 မွာ main virus code ကိုထည့္ပါတယ္။
- V2 ရဲ႕ ေနာက္ဆံုးအပိုင္းမွာ V1 ရဲ႕ ေနရာကေနထြက္လာတဲ႔ P1 ကို copy လုပ္ပါတယ္။
- ဖိုင္ ရဲ႕ အစပိုင္းကို Transfers control လုပ္ပါတယ္။
အထက္ပါ အလုပ္ေတြကို ျပဳလုပ္ေဆာင္ရြက္ေပးမယ့္ Sample Code ေတြျဖစ္ပါတယ္ :
Concealer ရဲ႕ Writing ပိုင္း
- Concelar က user ေတြ နဲ႔ Virus scanner ေတြ မေတြ႔ေအာင္ Virus codes ကို ဖံုးကြယ္လုိက္ပါတယ္။
- Virusေတြကို ဖံုးကြယ္ေပးဖို႔အတြက္ Encryption ဟာ အတြင္က်ယ္ဆံုးသံုးေနတဲ႔ methodတစ္ခုပါ။
XOR encryption တစ္ခု အတြက္ ဥပမာ code ေတြ ျဖစ္ပါတယ္...
DispatcherDispatcher ဆိုတာကေတာ့ Virus ကူးစက္တဲ႔ program ဆီကို control ျပန္လုပ္ႏိုင္ဖို႔အတြက္ restore လုပ္ေပးတဲ႔ Virus ရဲ႕ အစိတ္အပိုင္းတစ္ခုျဖစ္ပါတယ္။
COM virus တစ္ခုအတြက္ Dispatcher ပါ...
Bomb/Payload ရဲ႕ Writing ပိုင္းဒီအပိုင္းကေတာ့ virus တစ္ခုရဲ႕ အဓိက အခန္းက႑ျဖစ္ပါတယ္။
Bomb အပိုင္းမွာ ေအာက္မွာ ျပထားတဲ႔ problem ေတြကို ဖန္တီးဖို႔အတြက္ ေရးသားႏိုင္ပါတယ္ :
- System slowdown
- File deletion
- မေကာင္းေသာ/ရုိင္းစိုင္းေသာ message မ်ား ေဖာ္ျပေစျခင္း
- hard drive ရဲ႕ Partion Table/Boot Sector/FAT မ်ားကို ဖ်က္ဆီးပစ္ျခင္း/အစားထိုးျခင္း(သို႔)အသစ္လဲလွယ္ျခင္း
Virus ရဲ႕ Payload အပိုင္းမွာ ပါ၀င္တာေတြကေတာ့ :
- Trigger mechanism (အစပ်ိဳးေပးေသာ စနက္ပိုင္း)
- Destructive code (ပ်က္စီးေစေသာ code )
Trigger MechanismTrigger Mechanism ဟာ Virus တစ္ခု activation ျဖစ္ဖုိ႔အတြက္ logical condition ကို ဖန္တီးေပးပါတယ္။
Trigger ေတြရဲ႕ type ေတြကေတာ့ ေအာက္ပါအတိုင္းျဖစ္ႏိုင္ပါတယ္ :
- Counter trigger
- Keystoke trigger
- Time trigger
- Replication trigger
- System parameter trigger
- Null trigger
Bombs/ PayloadsPayloads ရဲ႕ logics မွာ ေအာက္ပါ action ေတြအတိုင္း ေဆာင္ရြက္ေအာင္ code ေရးသားႏိုင္ပါတယ္ :
- Brute force attacks
- Hardware failure
- Stealth attack
- Indirect attack
Brute Force Logic Bombsဒီ bombs ေတြကေတာ့ system resources ေတြကို ပ်က္ဆီးေစျခင္း မရွိပါဘူး။ ဒါေပမယ့္ စိတ္အေႏွာင့္အယွက္ ျဖစ္ေအာင္ေတာ့ ဖန္တီးႏိုင္ၾကပါတယ္။
ေအာက္မွာ ဥပမာ ျပထားတဲ႔ code ေတြကေတာ့ system speaker ကို turn on လုပ္ေပးတဲ႔ code ေတြျဖစ္ပါတယ္...
Virus Code မ်ားကို စမ္းသပ္ျခင္း
- back up လုပ္ထားတဲ႔ Virus codes ေတြကို ယူပါ။
- RamDrives မ်ားကိုသံုးပါ။
- anti-virus utilitie မ်ားကိုသံုးပါ။
အေကာင္းမြန္ဆံုး Virus ေရးသားျခင္းအတြက္ အၾကံေပးခ်က္
- heap memory ကိုသံုးပါ။
- procedure call မ်ားကိုအသံုးျပဳပါ။
- ေကာင္းမြန္တဲ႔ assembler နဲ႔ debugger တစ္ခုကို သံုးပါ။
- LEA အစား MOV ကို အသံုးမျပဳပါနဲ႔။
အတိုခ်ဳပ္အေနနဲ႔ ေျပာရရင္ေတာ့...
- ကြန္ျပဴတာ virus ဆိုတာ self-replicating computer program တစ္ခုျဖစ္ျပီးေတာ့ အျခား executable code ( သို႔) documents မ်ားထဲကို သူ႔ကိုယ္သူ copy ကူးထည့္ျခင္း အားျဖင့္ ကူးစက္ျပန္႔ႏွံ႕ေစပါတယ္။
- Virus ေရးသားျခင္းအတြက္ အေျခခံက်တဲ႔ လိုအပ္ခ်က္ကေတာ့ assembly language ကို မခၽြင္းမခ်န္ သိထားရမွာပဲျဖစ္ပါတယ္။
- Utilitie ေတြအေနနဲ႔ကေတာ့ turbo C compiler နဲ႔ Norton utilitie ေတြက virus ေရးသားျခင္း process အတြက္ လြယ္ကူေခ်ာေမြ႔ေစပါတယ္။
- Virus မွာ replicator , concealer နဲ႔ payload ဆိုျပီး အပိုင္း (၃) ပိုင္းပါ၀င္ပါတယ္။
နားလည္မယ္လို႔ေတာ့ ထင္ပါတယ္။ ဒါေပမယ့္ beginner ေတြအတြက္ေတာ့ နဲနဲခက္ပါတယ္။ ေနာက္ထပ္ Virus Guide ေတြကိုလည္း အဆင္ေျပရင္ ေျပသလို (က်ေနာ္ မပ်င္းရင္ေပါ့ေလ...:P ) တင္သြားေပးပါ့မယ္။