Showing posts with label Articles. Show all posts
Showing posts with label Articles. Show all posts

5/02/2014

[Article] Moore နိယာမႏွင့္ ကြန္ပ်ဴတာတုိ႔ရဲ႕အနာဂါတ္

ယေန႔ေခတ္မွာ ကြန္ပ်ဴတာေတြရဲ႕ processing power ဟာ ဟုိးအရင္ အဘဘုိးေတာ္ဖုရားေခတ္ကထက္စာရင္ အမ်ားၾကီးတုိးတက္ခဲ့ပါျပီ။ 1976 ခုႏွစ္က ဆူပါကြန္ပ်ဴတာျဖစ္တဲ့ Cray-1 ဟာ RAM 8 MB သာရွိျပီး CPU စြမ္းရည္က 160 million floating-point operations per second (flops) ရွိပါတယ္။ အဲဒီတုန္းကေတာ့ သူ႔ထက္ျမန္တာမရွိေတာ့ေပမယ့္ ယေန႔ေခတ္မွာေတာ့ ကြ်န္ေတာ္တုိ႔ သာမန္ PC တစ္လုံးေတာင္ CPU ပုိင္းေရာ Memory အပုိင္းပါ သူ႔ထက္ အဆတစ္ရာပုိမုိျမန္ဆန္သြားခဲ့ပါျပီ။ ဒါေၾကာင့္ Moore's Law ဆုိတာေပၚလာခဲ့ပါတယ္။ Gordon E. Moore က Intel ရဲ႕ co-founder တစ္ေယာက္ျဖစ္သလုိ electrical engineer လည္းျဖစ္ပါတယ္။ သူက 18 လၾကာတုိင္း ကြန္ပ်ဴတာေတြရဲ႕ Power ဟာႏွစ္ဆတုိးတက္လာတယ္လုိ႔ 1965 ခုႏွစ္မွာ Moore's law အျဖစ္ အဆုိတင္သြင္းခဲ့ပါတယ္။

တနည္းေျပာရရင္ တစ္လက္မမွာရွိတဲ့ Transistor အေရအတြက္ဟာ 18 လၾကာတုိင္း ႏွစ္ဆမ်ားလာပါတယ္။ ဒါကေတာ့ Moore ရဲ႕နိယာမေပါ့ေလ။ ဒါဆုိ Moore's Law အတုိင္း ကြန္ပ်ဴတာေတြရဲ႕ Power ဟာႏွစ္ႏွစ္ျပည့္တုိင္း ႏွစ္ဆတုိးတက္ေနခဲ့ပါသလား။ ေနာက္ထပ္လည္း ဒီအတုိင္းတုိးတက္ေနမွာလား?? ေသခ်ာတာကေတာ့ Moore's law ဟာ ေယဘုယ်အားျဖင့္ ယခုခ်ိန္ထိ မွန္ကန္ေနပါေသးတယ္။ ဒါေပမယ့္ အနာဂါတ္မွာ ဒီႏွဳန္းအတုိင္း ဆက္ျပီးတုိးတက္ေနအုံးမယ္လုိ႔ေတာ့ ေျပာမရပါဘူး။ အခ်ဳိ႕ကေတာ့ ေနာက္ႏွစ္ ၂၀ အၾကာေရာက္ရင္ 18 လကေန 24 လျဖစ္သြားႏုိင္တယ္လုိ႔လည္း ဆုိထားၾကပါေသးတယ္။ တခ်ဳိ႕ကေတာ့ တစ္လက္မအတြင္းမွာ မဟုတ္ဘဲ Transistor ေတြပုိမ်ားလာတာကုိပဲ သတ္မွတ္မယ္။ ဒါဆုိရင္ေတာ့ Moore's Law အတုိင္း 18 လၾကာတုိင္း ႏွစ္ဆတက္လာမွာေေတာ့ေသခ်ာတယ္။ 1 လက္မမဟုတ္ဘဲ 2 လက္မျဖစ္ခ်င္ျဖစ္မယ္ေပါ့။
ယေနေခတ္မွာ CPU ေတြရဲ႕ Circuit ဟာပုိမုိေသးလာျပီး CPU Power ကေတာ့တုိးတက္လာတာ အားလုံးအသိပါပဲ။ ကြ်န္ေတာ္တုိ႔ကုိင္ေနတဲ့ Laptop ေတြဆုိရင္ ဟုိးအရင္တုန္းကအေကာင္းဆုံး PC ထက္ေတာင္ စြမ္းေဆာင္ရည္မ်ားလာတာ ေတြ႕ရမွာပါ။ ဟုိးအရင္တုန္းက Laptop ၾကီးၾကီးေတြထက္ Notebook ေတြက ပုိမုိေပါ့ပါး၊ စြမ္းေဆာင္ရည္ပုိေကာင္းလာပါျပီ။ အနာဂါတ္မွာေရာ CPU ေတြရဲ႕ Power ဟာပုိေကာင္းလာမွာလား? Circuit ေတြေရာ ဒီထက္ပုိေသးလာမွာလား??  Moore's Law ဟာ အကုန္ေတာ့မမွန္ႏုိင္ပါဘူး။အေၾကာင္းကေတာ့ Law ရဲ႕ေနာက္ကြယ္မွာ တိတိက်က်ျပ႒ာန္းထားတဲ့ အျခခံရူပေဗဒနိယာမေတြမရွိလုိ႔ပါပဲ။ ကြ်န္ေတာ္တုိ႔ ခုေနာက္ဆုံး Circuit ေတြကုိေသးေအာင္လုပ္ဖုိ႔ရာ Nano နည္းပညာအဆင့္မွာပဲရွိပါေသးတယ္။ ခုေနာက္ဆုံး Intel ရဲ႕ CPU မွာပါတဲ့ transistor ရဲ႕ size ဟာ 45 nano meter ျဖစ္ပါသတဲ့။ ကြ်န္ေတာ္တုိ႔ ဆံပင္က 100,000 nanometer အထူရွိတာနဲ႔ခ်ိန္ၾကည့္ႏုိင္ပါတယ္။ ကြ်န္ေတာ္တုိ႔ မ်က္စိနဲ႔ျမင္ႏုိင္တဲ့ အလင္းရဲ႕ Wavelength ဟာ 400 နဲ႔ 700 nanometer ၾကားမွာရွိပါတယ္။ အဲဒီလုိ အလြန္ေသးငယ္တဲ့ size ကုိျမင္ႏုိင္ဖုိ႔ အထူးလုပ္ထားတဲ့ မွန္ဘီလူးနဲ႔ၾကည့္မွသာျမင္ႏုိင္တာမုိ႔ ကြ်န္ေတာ္တုိ႔ဟာ Special Equiment ေတြအေပၚမွီခုိေနရပါတယ္။ ဒီထက္ေသးလာမယ္ဆုိ (nano scale ထက္ပုိေသးလာမယ္ဆုိ) ရူပေဗဒသေဘာအရ Quantum Mechanic အခန္းေတြပါလာပါျပီ။ Quantum machanic ပုိင္းေရာက္လာရင္ ကြ်န္ေတာ္တုိ႔သိထားတဲ့ Micro Scale မွာအလုပ္လုပ္တဲ့ ရူပေဗဒနိယာမေတြဟာ ကဂ်ဳိးကေဂ်ာင္ျဖစ္သြားႏုိင္လုိ႔ပါပဲ။


ဒါေပမယ့္ Moore's law ကုိရွင္သန္ေစမယ့္အခ်က္ေတြလည္း ရွိပါေသးတယ္။ အဲဒါေတြထဲကတစ္ခုကေတာ့ Customer ေတြရဲ႕လုိအပ္ခ်က္ျဖစ္ပါတယ္။ ဘယ္ကုမၸဏီကမွ သူတုိ႔ထက္ေက်ာ္လြန္တဲ့ product ကုိလုိခ်င္မွာမဟုတ္ပါဘူး။ ဒီေတာ့ အခ်င္းခ်င္းယွဥ္ျပဳိင္မွဳကေန ပုိေကာင္းလာတဲ့ CPU Power ကုိျဖစ္လာေစမွာပါ။ ခုခ်ိန္ထိလည္း ဒီအတုိင္းပဲ မဟုတ္ပါလား။ ဟုိတစ္ႏွစ္က Dell မုိက္လွခ်ည္လားဆုိျပီး ဝယ္ထားတာ ေဟာဒီႏွစ္ အဲဒီေစ်းႏွဳန္းနဲ႔ပဲ ပုိေကာင္းတဲ့ CPU နဲ႕ ထြက္လာေတာ့ ရွိတာကုိပဲ လႊင့္ပစ္ရေတာ့မလုိလုိ၊ tongue ကြ်န္ေတာ္တုိ႔ မနက္ျဖန္မွာ ပုိေကာင္းတဲ့ Electronic Device ေတြထြက္မလာႏုိင္ေတာ့ဘူးလုိ႔ အတတ္ေျပာလုိ႔မရပါဘူး။ ဒါေပမယ့္ Moore's Law ကုိ အတားအဆီးျဖစ္ေစမယ့္အရာေတြလည္း ရွိပါေသးတယ္။ အဲဒါကေတာ့ ခုနကေျပာထားသလုိပါပဲ။ Customer ေတြက PC ဘက္ကုိေျခဦးမလွည့္ေတာ့တဲ့အခါ Computer ေတြရဲ႕ CPU Power တုိးတက္မွဳႏွဳန္းဟာ ရပ္တန္႔သြားႏုိင္ပါတယ္။ ခုဆုိ ဘာေျပာေျပာ ပုိမုိေပါ့ပါးတဲ့ Smart phone ကုိသာအလုိရွိၾကေတာ့တယ္။ Processing အတြက္ အင္တာနက္ခ်ိတ္ျပီး Cloud Computing ကုိသာအသုံးခ်ခ်င္ၾကေတာ့တယ္။ အဲဒီ smart Phone လုိ Device ေတြဟာ ဆူပါကြန္ပ်ဴတာမွာရွိရမယ့္ CPU ေတြမလုိပါအပ္ဘူး။ အဓိက အင္တာနက္ခ်ိတ္ထားရုံနဲ႔ အလုပ္ျဖစ္တာဆုိေတာ့ Super Computer ထုတ္မယ့္ဘယ္ကုမၸဏီကမွ ဆက္ျပီး Develop လုပ္မွာမဟုတ္ေတာ့ပါဘူး။ ဒါေၾကာင့္ ကြ်န္ေတာ္တုိ႔ Moore's law ဟာ မွန္ႏုိင္တယ္/မမွန္ႏုိင္ဘူးလုိ႔ လြယ္လြယ္ကူကူန႔ဲ ေျပာလုိ႔မရေသးပါဘူး။ အရာအားလုံးဟာ ေျပာင္းလဲေနပါတယ္။ မနက္ျဖန္ဆုိတာလည္း ဘာမဆုိျဖစ္ႏုိင္ပါတယ္။

Ref: Howstuffwork, Wiki
http://www.mmsecurity.net/forum/showthread.php?tid=3100
Read more »

4/02/2014

How to Detect RAT/Keyloggers

 
ကြ်န္ေတာ္လည္း ဘေလာ့ကုိ လွည့္မၾကည့္တာ ေတာ္ေတာ္ၾကာပါျပီ။ ကြ်န္ေတာ္တုိ႔ အင္တာနက္မွာ ဟုိဖုိင္ဒီဖုိင္ေဒါင္းလုတ္ေတြဆြဲတာ အခန္႔မသင့္ရင္ RAT/Keylogger ေတြပါလာႏုိင္တယ္။ သတိမထားမိရင္ေပါ့။ သာမန္ RAT/Keylogger ေတြေလာက္ေတာ့ AV ေတြက သိပါတယ္။ Avira Internet Security ကုိသာ အင္စေတာ့လုပ္ရင္ လုံျခဳံတယ္လုိ႔ဆုိႏုိင္ပါတယ္။ သူက အင္တာနက္ကုိ TCP establish လုပ္တာကအစ Warming ေပးပါတယ္။ ခုနည္းကေတာ့ လြယ္လြယ္ကူကူ ကုိယ့္စက္မွာ RAT ရွိေနသလားဆုိတာ သိႏုိင္တဲ့နည္းပါ။ ကြ်န္ေတာ္ကုိယ္တုိင္လည္း ေသခ်ာေတာ့ မေျပာတတ္ပါဘူး။ သူမ်ားဖုိရမ္ကေန ေရးထားတာေလးကုိေတြ႕မိလုိ႔ ဒီအတုိင္းပဲ screenshot ကအစ တုိက္ရုိက္ ျပန္ရွယ္လုိက္တာ။ :D

အရင္ဆုံး Windows ရဲ႕ Task Manager (Ctr+Alt+Del) ကုိေခၚလုိက္ပါ။ ျပီးရင္ Process tab ကုိေခၚျပီး View>Select Columns ကေန PID(Process Identifiers) ကုိေရြးထားပါ။
ဒါဆုိရင္ Windows မွာ Run ေနတဲ့ သက္ဆုိင္ရာ process အလုိက္ PID number နဲ႔တြဲျပီး ေအာက္ကလုိ ေတြ႕ႏုိင္ပါျပီ။
ျပီးရင္ CMD ကုိေခၚျပီး "netstat -ano" command ကုိေခၚလုိက္ပါ။
ဒါဆုိ ေအာက္ကလုိေတြ႕ရပါမယ္။ ဒီထဲက "ESTABLISHED" ဆုိတာကုိေတြ႕ရမယ္။ ေဘးနားက PID နဲ႔ပါတြဲျပီးမွတ္ထားပါ။ "ESTABLISHED" လုပ္တယ္ဆုိတာ ကုိယ့္စက္မွာ run ေနတဲ့ program က အင္တာနက္ဆီကုိ ေဒတာ establish လုပ္ေနတာပါ။ ဒါကေတာ့ ေျပာရရင္ program update လုပ္ေနတာ ဒါမွမဟုတ္ uploading တစ္ခုခုျဖစ္ႏုိင္ပါတယ္။
  ေကာင္းျပီ။ အဲဒါကုိ ခုနက Task manager ကုိျပန္သြားျပီး PID နဲ႔တုိက္ဆုိင္စစ္ၾကည့္လုိက္ပါ။
အင္း Established လုပ္ေနတာ PID 3464 နဲ႔ Task Manager နဲ႔ျပတာက Dropbox.exe ဆုိတာေတြ႕ရပါတယ္။ ဒီေတာ့ အဲဒီ run ေနတဲ့ Dropbox.exe ကုိေထာက္ျပီး Open File Location နဲ႔ဖြင့္လုိက္ပါ။ တကယ္အမွန္အကန္ dropbox ဖုိင္ဆုိရင္ သက္ဆုိင္ရာ Dropbox install လုပ္ထားတဲ့ Directory ဆီကုိေရာက္သြားပါမယ္။ မဟုတ္ရင္ Rat ဘာညာေပါ့။ ေနာက္ Establish မွာျပတဲ့ PID က Taskmanager မွာ svchost.exe ဘာညာျပတယ္ဆုိရင္ RAT/Keylogger အျဖစ္သိေစအပ္ပါတယ္။ :D
ဒီလုိဆုိရင္ေတာ့ Virustotal မွာ အဲဒီဖုိင္ကုိစစ္ေဆးၾကည့္ဖုိ႔ လုိပါလိမ့္မယ္။

Credit: Uber.org


Read more »

3/30/2014

TCP/IP Protocol Basic [articles]

ကြ်န္ေတာ္တုိ႔ IT ေလာကထဲမွာ TCP/IP ဆုိတာ မျဖစ္မေနသိထားသင့္တဲ့ အေျခခံ Concept တစ္ခုပါပဲ။ Networking သမားေတြဆုိရင္ သိကုိသိထားရမွာပါ။ ဟက္ကာျဖစ္ခ်င္ရင္လည္း ဒီ TCP/IP အေၾကာင္းကုိနားလည္ထားရမွာလုိ႔ ဖတ္ဖူးတယ္။ ဟုတ္/မဟုတ္ေတာ့ ကြ်န္ေတာ္လည္း မသိပါဘူး။ TCP/IP ရဲ႕အရွည္ေကာက္ကေတာ့ Transmission Control Protocol/Internet Protocol ျဖစ္ပါတယ္။ TCP/IP Protocol ေၾကာင့္သာ ကြ်န္ေတာ္တုိ႔ LAN မွသည္ Internet ဆီသုိ႕၊ Windows မွသည္ Linux ကြန္ပ်ဴတာေတြဆီ အဆင္ေျပေျပ Communication လုပ္ႏုိင္တာပါ။ TCP/IP သာမရွိခဲ့ရင္ Internet ဆုိတာလည္းရွိလာမွာ မဟုတ္ပါဘူး။ TCP/IP ကုိ ARPAnet (Advanced Research Project Agency) ကေန develop လုပ္ခဲ့တာျဖစ္ပါတယ္။ စစ္ဖက္ဆုိင္ရာက ကြန္ပ်ဴတာေတြအခ်င္းခ်င္း အဆင္ေျပေျပခ်ိတ္ဆက္ႏုိင္ဖုိ႔ တီထြင္ခဲ့တာျဖစ္ပါသတဲ့။ အဲဒီတုန္းကေတာ့ Network Control Protocol (NCP) လုိ႔သာေခၚပါေသးတယ္။ ေနာက္မွ TCP ျဖစ္လာတယ္ဆုိပါေတာ့။ ARPA ဆုိတာ Internet ရဲ႕ဖခင္ပါပဲ။ ဒါကေတာ့ TCP/IP ရဲ႕သမုိင္းအက်ဥ္းျဖစ္ပါတယ္။

TCP/IP Protocol Suite
Protocol ဆုိတာကေတာ့ ကြ်န္ေတာ္တုိ႔နားလည္လြယ္ေအာင္ေျပာရရင္ Standard (စံသတ္မွတ္ခ်က္) တစ္ခုပါပဲ။ ဥပမာ ျမန္မာႏုိင္ငံမွာ ေငြေၾကးအတြက္ က်ပ္(Kyat) ကုိ Standard အျဖစ္အသုံးျပဳတယ္။ ဒါေပမယ့္ သူမ်ားႏုိင္ငံမွာသြားျပီး ျမန္မာေငြက်ပ္ကုိအသုံးျပဳလုိ႔မရဘူး။ ႏုိင္ငံျခားမွာ ျမန္မာစကားနဲ႔သြားေျပာလုိ႔မရဘူး။ Global Language ျဖစ္တဲ့ English ကုိေျပာရတယ္။ ဟုိးအရင္တုန္းကေတာ့ Computer ေလာကမွာလည္း ဒီလုိေပါ့ဗ်ာ။ Apple ကလည္း Apple Talk ဆုိတဲ့ Protocol ကုိသုံးတယ္။ Novel အဖြဲ႕ကလည္း သူတုိ႔ရဲ႕ IPX/SPX (Internetwork Package Exchange/Sequence Package Exchange) ဆုိတဲ့ protocol ကုိတစ္ေယာက္တစ္မ်ဳိးစီအသုံးျပဳၾကတာ။ ဘာေတြျဖစ္လာသလဲဆုိေတာ့ Apple Device အခ်င္းခ်င္းဆက္သြယ္မယ္ဆုိရင္ OK တယ္။ အျခား Novel, Microsoft Device ေတြနဲ႔ခ်ိတ္မယ္မယ္ဆုိ မရေတာ့ဘူး။ ျမန္မာစကားကုိ ကုိရီးယားသြားေျပာလုိ႔ နားမလည္သလုိေပါ့ဗ်ာ။ ဒါေၾကာင့္ စံသတ္မွတ္ခ်က္ Protocol ဆုိတာလုိအပ္လာပါတယ္။
TCP/IP Protocol မေျပာခင္မွာ ကြ်န္ေတာ္တုိ႔အေျခံက်တဲ့ OSI 7 Layer အေၾကာင္းကုိ သိထားရမယ္။ OSI 7 Layer ကုိေအာက္ပါအတုိင္းေတြ႕ႏုိင္ပါတယ္။
Application Layer
Presentation Layer
Session Layer
Transport Layer
Network Layer
Data-Link Layer
Physical Layer


OSI 7 Layer အေၾကာင္းကုိ သေဘာေပါက္ဖုိ႔ ကြ်န္ေတာ္အရင္ ေရးထားတဲ့ OSI 7 Layer [Explain] ဆုိတဲ့ Thread မွာအေသးစိတ္ျပန္ဖတ္ဖုိ႔လုိပါလိမ့္မယ္။ OSI 7 Layer ကုိနားလည္သြားျပီဆုိရင္ TCP/IP ကုိဆက္သြားမယ္။ OSI 7 Layer မွာတုန္းက layer 7 ခုျဖစ္ေပမယ့္ TCP/IP Protocol မွာ Layer 4 ခုပဲျဖစ္သြားပါတယ္။ ဒါေတြကေတာ့ ေအာက္ပါအတုိင္းျဖစ္ပါတယ္။
Application Layer (Application+Prensation+Session)
Transport Layer
Network Layer
Data-Link Layer (Data-Link+Physical)


Application, Prensation, Session Layer 3 ခုေပါင္းျပီး Application Layer အျဖစ္သတ္မွတ္ပါတယ္။ ေနာက္ Data-Link, Physical Layer 2 ခုကုိ Data-Link Layer အျဖစ္သတ္မွတ္လုိက္ပါတယ္။ ဒါေၾကာင့္ TCP/IP Protocol Suite မွာ layer 4 ခုရွိတယ္လုိ႔ ေျပာႏုိင္ပါျပီ။ ေအာက္မွာ Layer 4 ခုအေၾကာင္းကုိ ေဆြးေႏြးၾကည့္ရေအာင္။

Application Layer
ဒီ Layer ကေန ကြ်န္ေတာ္တုိ႔ အစျပဳရတာေပါ့ဗ်ာ။ ဥပမာ ကြ်န္ေတာ္တုိ႔ Gmail ကေန Mail တစ္ေစာင္ပုိ႔လုိက္တာမ်ဳိး။ FTP ကေန ဖုိင္တစ္ခု Download ဆြဲလုိက္တာမ်ဳိး၊ Facebook သုံးေနတာမ်ဳိး၊ တစ္ခုခုျဖစ္ႏုိင္ပါတယ္။ Application Layer အတြက္ နာမည္ၾကီး protocol ေတြကေတာ့ ေအာက္ပါအတုိင္းေတြ႕ရမွာပါ။
HTTP (Hypertext Transfer Protocol)
FTP (File Transfer Protocol)
SMTP (Simple Mail Transfer Protocol)
SNMP (Simple Network Management Protocol)


Transport Layer
Transport Layer ဆုိတာ host ႏွစ္ခုၾကားက data ေတြစီးဆင္းဖုိ႔ ပင္မေက်ာရုိးလုိ႔ေျပာရမွာပါ။ Application Layer ကေနပုိ႔လုိက္တဲ့ data ေတြကုိ ဒီ layer ကပုိ႔ေဆာင္ေပးရပါတယ္။ Transport Layer အတြက္ protocol ေတြအမ်ားၾကီးရွိတဲ့အထဲက အသုံးမ်ားဆုံး protocol ကေတာ့ TCP နဲ႔ UDP (User Datagram Protocol) ပဲျဖစ္ပါတယ္။ ဒီေနရာမွာTCP protocol ဆုိတာ ‘reliable connection’ လုိ႔သတ္မွာတ္ျပီး ဥပမာ ကြ်န္ေတာ္တုိ႔ ဖုိင္ေတြကုိ ေဒါင္းလုတ္ဆြဲေနရင္ တကယ္လုိ႔ၾကားထဲက package ေတြပုိ႔ရာမွာ error ရွိခဲ့ရင္ ျပန္စစ္ျပီး ၾကားမွာ ေဒတာဆုံးရွဳံးမွဳမရွိေအာင္ ကုိင္တြယ္ေပးပါတယ္။ UDP ဆုိတာကေတာ့ ခုနကလုိ ၾကားထဲမွာ တစ္ခုခု error ရွိေနေပမယ့္လည္း Ignore လုပ္ပစ္ျပီး လက္ခံတဲ့ protocol အျဖစ္သတ္မွတ္ေစပါတယ္။ ဒါကုိ ‘unreliable connection’ လုိ႔ေခၚပါတယ္။

Network Layer
ဒီ Layer ကေတာ့ Internet Layer အျဖစ္လူသိမ်ားပါတယ္။ Network Layer မွာ IP Address ေတြပါလာမယ္။ ေနာက္အက်ယ္ခ်ဲျပီး ARP လုိ႔ေခၚတဲ့ Address Resolution Protocol ေတြပါလာမယ္။ ေနာက္ Internet Control Message Protocol (ICMP), Internet Group Management Protocol (IGMP) ဒါေတြပါလာမယ္။ ICMP Protocol ဆုိတာ ကြ်န္ေတာ္တုိ႔သုံးေနက် ping Command ျဖစ္ပါတယ္။

Data-Link Layer
Network Interface Layer လုိ႔လည္းေခၚပါတယ္။ ဒီ layer မွာ OS မွာပါတဲ့ Device Driver ေတြပါဝင္မယ္။ Network Interface Card (NIC) ေတြပါဝင္မယ္။ Device Driver နဲ႔ NIC ေတြက Cable ကေနပုိ႔လုိက္တဲ့ ေဒတာေတြကုိ အျခား ကြန္ပ်ဴတာေတြဆီကုိ Communication လုပ္ရမွာ အဆင္ေျပေစဖုိ႔ ထိန္းေက်ာင္းတာျဖစ္ပါတယ္။

TCP/IP Model
ကြ်န္ေတာ္တုိ႔ ေပၚမွာ layer ေတြအေၾကာင္း ေလ့လာျပီးေနာက္ Computer ႏွစ္ခု TCP/IP Model အေနနဲ႔ ဘယ္လုိဆက္သြယ္သလဲဆုိတာ ေလ့လာၾကည့္မယ္။ ဒါကေတာ့ client-server architecture အျဖစ္လူသိမ်ားတဲ့ ပုံစံပါပဲ။ 

ပုံမွာအတုိင္း ကြ်န္ေတာ္တုိ႔ PC ကေန data ေတြ http protocol ကေန Transport layer ဆီကုိသြားပါမယ္။ ေနာက္ TCP ကေန destination port, sequence number, စတဲ့ information ေတြကုိ assign လုပ္ပါမယ္။ IP Layer မွာေတာ့ Transport layer ကေနလာတဲ့ information ေတြကုိသူရဲ႕ သက္ဆုိင္ရာ information ေတြထပ္ေပါင္းလုိက္ပါတယ္။ source IP Address, Destination IP ဘာညာေပါ့။ ကဲ ေနာက္ဆုံး NIC ေတြက သက္ဆုိင္ရာ MAC Address ေတြကုိ Ethernet Network ကေန data ေတြပုိ႔မယ္။ ဟုိလက္ခံမယ့္ server ဘက္မွာလည္း အရင္ဆုံး Data-link layer ကေန information ေတြကုိအရင္ဖတ္မွာေပါ့ေနာ္။ ဒီလုိပဲ Network Layer, Transport Layer, Application layer ကုိျဖတ္ျပီး ေနာက္ဆုံး target (webserver) ဆီကုိေရာက္သြားပါျပီ။ ေနာက္တဖန္ server ကေန ခုနကလုိပဲ layer အဆင့္ဆင့္ကုိျဖတ္ျပီး webserver ကေန PC ဆီကုိျပန္သြားပါမယ္။ ဒါကေတာ့ TCP/IP အလုပ္လုပ္တဲ့ပုံစံအတုိခ်ဳပ္ေပါ့ဗ်ာ။ အေသးစိတ္ေျပာမယ္ဆုိရင္ ဒီပုိ႔စ္နဲ႔လုံေလာက္မွာမဟုတ္လုိ႔ပါ။ ဒီေလာက္ဆုိရင္ TCP/IP အေျခခံသေဘာတရားကုိ နားလည္သြားမယ္လုိ႔ေမ်ာ္လင့္ပါတယ္။

Ref: TCP/IP Foundations (Andrew G. Blank), thegeekstuff.com
http://www.4sectors.com/forum/showthread.php?tid=1765
Read more »

Reverse Engineering [article]

In Brief
Reverse Engineering ဆုိတာကုိ Reverse Engineering လုိ႔ပဲမွတ္ထားတာေကာင္းပါတယ္။ တခါတေလ Computer Term ေတြကုိျမန္မာလုိတုိက္ရုိက္ျပန္ရင္ ကဂ်ဳိးကေဂ်ာင္ႏုိင္လြန္းပါတယ္။ Reverse Engineering ဆုိတာ Device ဒါမွမဟုတ္ System တစ္ခုရဲ႕ Structure ကုိ Analysis လုပ္ျခင္းလုိ႔ ေယဘုယ်အားျဖင့္သတ္မွတ္ႏုိင္ပါတယ္။ဥပမာဗ်ာ ေလယာဥ္တစ္ခုရဲ႕တည္ေဆာက္ပုံကုိ ေသခ်ာနားလည္ဖုိ႔ အဲဒီေလယာဥ္ကုိ ျဖဳတ္ျပီး Analysis လုပ္မယ္။ disassembling လုိ႔ေခၚပါတယ္။ ေဆာ့ဝဲလ္ေတြကုိ Crack တယ္ဆုိတာလည္း ဒီသေဘာတရားပါပဲ။ ရည္ရြယ္ခ်က္ကေတာ့ အဲဒီ Hardware, Device, Tool တစ္ခုရဲ႕ အားနည္းခ်က္ (bug) ကုိရွာေဖြဖုိ႔၊ ပုိေကာင္းတဲ့ေနာက္တစ္ခုထပ္ထြင္ႏုိင္ဖုိ႔အတြက္ပါ။ Reverse Engineering ေၾကာင့္ ကြ်န္ေတာ္တုိ႔ ပုိေကာင္းတဲ့ ေမာ္ဒယ္ျမင့္ေလယာဥ္ေတြ။ ေဆာ့ဝဲလ္ဗားရွင္းေတြ၊ ထြက္လာတာေပါ့ေနာ္။


Reasons for reverse engineering:
Interfacing- မတူညီတဲ့ System ႏွစ္ခုကုိ ဆက္သြယ္ေပးဖုိ႔ ၾကားခံစနစ္အျဖစ္အသုံးခ်ရာမွာ Reverse Engineering ကုိအသုံးခ်ပါတယ္။ ဥပမာ iPod Device ကုိ Windows ကြန္ပ်ဴတာမွာ သိေအာင္ ဘာညာ။
Military or commercial espionage- စစ္ဘက္ဆုိင္ရာေတြမွာဆုိရင္ ရန္သူေတြရဲ႕ နည္းပညာနမူနာ prototype ေတြကုိ ခုိးျပီး dismantling လုပ္မယ္။ ျပီးရင္ အဲဒီထက္ပုိေကာင္းတဲ့ Device ကုိထြင္မယ္။ ဥပမာ အေမရိကန္က F35 ေလယာဥ္ထြင္ထားတယ္ဆုိရင္ ျမန္မာႏုိင္ငံက အဲဒီထက္အဆင့္ျမင့္တဲ့ ကုိယ္ေပ်ာက္ေလယာဥ္ အသံထက္ 50 ဆျမန္တဲ့ေလယာဥ္ထြင္မယ္။ သူတုိ႔နမူနာေလယာဥ္ရဲ႕ နည္းပညာေတြကုိ Reverse လုပ္ျပီးေတာ့။ ဟီး biggrin
Improve documentation shortcomings-အခ်ဳိ႕ေသာ Original designer ေတြက သူတုိ႔ရဲ႕ System ဒါမွမဟုတ္ Operation အတြက္ ထပ္ျပီး Develop လုပ္ဖုိ႔ Function မပါလာဘူး။ ဒီေနရာမွာ Reverse Engineering Software ေတြနဲ႔ Develop လုပ္ႏုိင္ေစတယ္။
Obsolescence-တခါတေလမွာ Integrated circuits ေတြဟာ design obsolete ျဖစ္လာတယ္။ နည္းပညာ ပေပ်ာက္ကုန္တာေပါ့ေနာ္။ သူကုိေနာက္ထပ္ develop လုပ္ဖုိ႔မလြယ္ကူေတာ့ဘူး။ အဲဒီအခ်ိန္မွာ Reverse Engineering နဲ႔ Design အသစ္ဆြဲႏုိင္ေစတယ္။
Product Security Analysis-ကုိယ္ေရးထားတဲ့ Tool/Software တစ္ခုရဲ႕ Security ကုိစစ္ေဆးဖုိ႔ အသုံးခ်ႏုိင္ပါတယ္။ ဥပမာ Copy Protection လုပ္ထားတာမ်ဳိး။
Bug fixing-ဒါေတာ့ အားလုံး သိထားၾကတဲ့အတုိင္းပါပဲ။ Tool/Software/Device ေတြဆုိတာ 100% perfect ဆုိတာမရွိဘူးေလ။ ဒီေတာ့ bug fix လုပ္ဖုိ႔လုိအပ္ပါတယ္။
Creation of unlicensed/unapproved duplicates-ဒါကုိေတာ့ Computer ေလာကမွာ Clone လုိ႔ေခၚပါတယ္။ ဥပမာ iPhone 5 အတု၊ Galaxy s4 အတု ဘာညာေပါ့။
Competitive technical intelligence-ကုိ္ယ့္ျပိဳင္ဖက္က ဘာေတြလုပ္ေနသလဲဆုိတာသိရဖုိ႔ အသုံးခ်ပါတယ္။ ဥပမာ Samsung က iPhone 5 နည္းပညာကုိခုိးခ်ပါတယ္။ iPhone ကလည္း Samsung နည္းပညာကုိခုိးခ်ပါတယ္ ေျပာသံေတြၾကားေနရတာပဲ။ ဒါပဲေနလိမ့္မယ္။


Usage of Reverse engineering
Reverse engineering ကုိအသုံးခ်တဲ့ေနရာေတြအမ်ားၾကီးပါပဲ။ အလြယ္ကူဆုံးဥပမာကေတာ့ ကြ်န္ေတာ္တုိ႔ Tool ေတြကုိ Crack လုပ္ထားတာပါပဲ။ Windows 8 ထြက္တာမၾကာေသးဘူး။ Crack Version ကထြက္လာျပီ။ Adobe Photoshop CS6 လာထား Crack version ရွိတယ္။ အဲသလုိေပါ့ဗ်ာ။ ဟီး။ ဒုတိယ ကမၻာစစ္တုန္းက အေမရိကန္ေတြ ဂ်ပန္ႏုိင္ငံေပၚကုိ ဗုံးၾကဲခဲ့တဲ့ B-29 ဗုံးၾကဲေလယာဥ္ဆုိတာ နာမည္ၾကီးပါပဲ။ အဲဒါကုိ ဆုိဗီယက္ေတြမွာမရွိေပမယ့္ ေကာ္ပီကူးျပီး Tu-4 ကုိထြင္လုိက္တယ္။ အားလုံးနီပါးတူပါသတဲ့။ Reverse Engineering နည္းနဲ႔ေပါ့။ တရုတ္ေတြဆုိ Reverse Engineering နဲ႔ အေနာက္တုိင္းက နည္းပညာေတြကုိ ခုိးခ်တာ ကမၻာအသိပါပဲ။ Cracking စာအုပ္ေတြဖတ္ၾကည့္လုိက္ဗ်ာ။ Tool တစ္ခုကုိဘယ္လုိ Crack ရမလဲဆုိတာ Tool ေတြ၊ နည္းေတြအမ်ားၾကီးေတြ႕ရလိမ့္မယ္။ decompiler, disassembler ေတြေနာက္ထပ္ အမ်ားၾကီးပါပဲဗ်ာ။

Legality
Reverse Engineering နည္းပညာကုိ မဟုတ္တဲ့ေနရာမွာ သုံးဖုိ႔ သူမ်ားႏုိင္ငံေတြမွာေတာ့ ခြင့္မျပဳပါဘူး။ ဒီအတြက္ Copyright Law ေတြရွိပါတယ္။ ကုိယ့္ျမန္မာႏုိင္ငံမွာေတာ့ ေသခ်ာမရွိေသးဘူးထင္တာပဲ။ ကုိယ္လုပ္လုိက္တဲ့ Tool ကုိ သူမ်ား Crack လုိက္ရင္ ဘယ္နား Complain တက္ရမယ္မသိဘူး။ ဒါကေတာ့ အမ်ားၾကီးလုိအုံးမယ္။ ထားပါေတာ့။ ေအာက္မွာ US ႏုိင္ငံမွာ သတ္မွတ္ထားတဲ့ အေျခေနတစ္ခုအတြင္း Reverse Engineering နည္းပညာကုိ အသုံးခ်ႏုိင္ပုံကုိ ေလ့လာႏုိင္ပါတယ္။ စာေတြကမ်ားလုိ႔ ဘာသာမျပန္ႏုိင္ေတာ့ဘူး။ ဟီး။

(f) Reverse Engineering.—
(1) Notwithstanding the provisions of subsection (a)(1)(A), a person who has lawfully obtained the right to use a copy of a computer program may circumvent a technological measure that effectively controls access to a particular portion of that program for the sole purpose of identifying and analyzing those elements of the program that are necessary to achieve interoperability of an independently created computer program with other programs, and that have not previously been readily available to the person engaging in the circumvention, to the extent any such acts of identification and analysis do not constitute infringement under this title.
(2) Notwithstanding the provisions of subsections (a)(2) and (b), a person may develop and employ technological means to circumvent a technological measure, or to circumvent protection afforded by a technological measure, in order to enable the identification and analysis under paragraph (1), or for the purpose of enabling interoperability of an independently created computer program with other programs, if such means are necessary to achieve such interoperability, to the extent that doing so does not constitute infringement under this title.
(3) The information acquired through the acts permitted under paragraph (1), and the means permitted under paragraph (2), may be made available to others if the person referred to in paragraph (1) or (2), as the case may be, provides such information or means solely for the purpose of enabling interoperability of an independently created computer program with other programs, and to the extent that doing so does not constitute infringement under this title or violate applicable law other than this section.
(4) For purposes of this subsection, the term 「interoperability」 means the ability of computer programs to exchange information, and of such programs mutually to use the information which has been exchanged.


Ref: Wekipedia
Read more »