Today is Cyber Security Era.

If you wish to study Cyber Security, Web Security, Ethical Hacking, Peneterating Testing, you can join with AiO, All in One Hacking Training. AiO is Online Training Class in Myanmar and teaches All subjects in One Place. You can study every time you can use internet from everywhere. Contact Phone Number: 09 799 535 021 and 09 69 806 4912

Welcome to our Hacking Training Online Class

If you wish to study Cyber Security, Web Security, Ethical Hacking, Peneterating Testing, you can join with AiO, All in One Hacking Training. AiO is Online Training Class in Myanmar and teaches All subjects in One Place. You can study every time you can use internet from everywhere. Contact Phone Number: 09 799 535 021 and 09 69 806 4912

Cyber Security is needed for everywhere nowadays.

If you wish to study Cyber Security, Web Security, Ethical Hacking, Peneterating Testing, you can join with AiO, All in One Hacking Training. AiO is Online Training Class in Myanmar and teaches All subjects in One Place. You can study every time you can use internet from everywhere. Contact Phone Number: 09 799 535 021 and 09 69 806 4912

Thanks For Visiting Here.

If you wish to study Cyber Security, Web Security, Ethical Hacking, Peneterating Testing, you can join with AiO, All in One Hacking Training. AiO is Online Training Class in Myanmar and teaches All subjects in One Place. You can study every time you can use internet from everywhere. Contact Phone Number: 09 799 535 021 and 09 69 806 4912

You can hear the news about hacking and cyber crimes.

If you wish to study Cyber Security, Web Security, Ethical Hacking, Peneterating Testing, you can join with AiO, All in One Hacking Training. AiO is Online Training Class in Myanmar and teaches All subjects in One Place. You can study every time you can use internet from everywhere. Contact Phone Number: 09 799 535 021 and 09 69 806 4912

Tuesday, October 31, 2017

Python2 Lesson 8


Lesson 1 ၾကည့္ရန္ link  >> Click Here
Lesson 2 ၾကည့္ရန္ link  >> Click Here
Lesson 3 ၾကည့္ရန္ link  >> Click Here
Lesson 4 ၾကည့္ရန္ link >> Click Here
Lesson 5 ၾကည့္ရန္ link >> Click Here
Lesson 6 ၾကည့္ရန္ link >> Click Here
Lesson 7 ၾကည့္ရန္ link >> Click Here

Python Programming
Clipping and Editing
တစ္ေန့ထက္တစ္ေန့ေတာ့ ပိုပိုျပီးေရာလာျပီေနာ္။ ဒါေျကာင့္ တစ္ခုစီ ပိုင္ရံုလိုက္လုပ္တာထက္ ျပီးခဲ့တာေတြကို တစ္ခုစီ တစ္ျကိမ္ေလာက္ ျပန္လုပ္ျကည့္ဖို့
အဲလိုျပန္လုပ္တဲ့အခါ သင္ခန္းစာကို ျပန္ျကည့္ေနတာမ်ိုး မဟုတ္ဘဲ အလြတ္ လုပ္ေဆာင္ဖို့ မွာထားခဲ့တာ ျဖစ္ပါတယ္။
......
ဒီေန႔အတြက္ Clipping and Editing အပိုင္းေလးကို ေျပာျပေပးသြားပါမယ္။
Sequence Lists ေတြကို ျဖတ္ထုတ္တာနဲ့ လိုအပ္သလို တည္းျဖတ္တာကို Clipping and Editing လို့ ေခၚပါတယ္။
Sequence lists ေလးေတြ တည္ေဆာက္အသံုးျပဳနိုင္ဖို႔အတြက္ python ကို ေခၚလိုက္ပါ။
.........
>>> aaa = [ 'car' , 'war' , 'cow' , 'dog' , 'cat' , 'pig' ]
>>> bbb = [ 'book' , 'beer' , 'brick' , 'boat' , 'ball' , 'bow' ]
အထက္ပါအတိုင္းပဲ sequence lists ၂ခု တည္ေဆာက္လိုက္ပါတယ္။
>>> aaa += bbb  လို့ ထားလိုက္ျပီး
>>> aaa      ကို enter ေခါက္ျကည့္တဲ့အခါ
['car', 'war', 'cow', 'dog', 'cat', 'pig', 'book', 'beer', 'brick', 'boat', 'ball', 'bow']
ဆိုျပီး ထြက္လာျပီျပီ။ += နဲ့ပတ္သက္ျပီး ေရွ့ပိုင္း သင္ခန္းစာေတြမွာ ပါခဲ့ျပီမို႔ ထပ္မေျပာေတာ့ပါဘူး။
ဒီေနရာမွာ ေျပာခ်င္တာက aaa ဟာ ခုဆိုရင္ တန္ဖိုး 12 ခု ျဖစ္သြားပါျပီ။ သုညကေန ၁၁ ထိေပါ့။
>>> aaa [6:9]
လို့ ေခၚၾကည့္ရေအာင္။
>>> aaa [6:9]
['book', 'beer', 'brick']
အမွတ္စဥ္ ၆ ကေန ၉ အထိ ေလးခု ထုတ္ေပးရမွာ ခုေတာ့ အမွတ္စဥ္ ၉ ျဖစ္တဲ့  boat ပါမလာဘူး။ ဘာျဖစ္လို့လဲ။
အမွတ္စဥ္ ေရတြက္တဲ့အခါ စမွတ္ သုည ကေန စတယ္ဆိုတာေတာ့ သိျပီးပါျပီ။ ဒါေျကာင့္မို႔ အမွတ္စဥ္ သုညကေန ေရတြက္ရင္
book ဆိုတာ အမွတ္စဥ္ ၆ပါ။ မွန္ေနတာေပမယ့္ အမွတ္စဥ္ ၉ ကို ေဖာ္ျပမထားတာကေတာ့ Clipping ဆုိတဲ့ ျဖတ္ေတာက္ျခင္း သေဘာတရားကိုပဲ ျပန္ျပီး ေျပာျပရပါမယ္။
၆ ကေန စျပီး ၉ အထိ ျဖတ္ထုတ္လိုက္တယ္ ဆိုရာမွာ
6<= x <9 p="">အဆံုးမွတ္ကို ျဖတ္ထုတ္လိုက္တယ္လို့ ဆိုလိုပါတယ္။ ျဖတ္ထုတ္လိုက္မွေတာ့ ဘယ္ပါပါေတာ့မလဲ။ ဒါေျကာင့္ အဆံုးမွတ္ 9 ထိ လိုခ်င္ရင္ တစ္ခုပိုျပီး 10 ကို ျဖတ္ထုတ္ခိုင္းရပါမယ္။
>>> aaa [6:10]
['book', 'beer', 'brick', 'boat']
ဒါဆိုရင္ေတာ့ ကြ်န္ေတာ္တို့ လိုခ်င္တဲ့အတိုင္း အမွတ္စဥ္ ၆ မွ ၉ အထိ ရပါျပီ။
ဒီေလာက္ဆိုရင္ ဒီအပိုင္းကို နားလည္ျပီလို့ ယူဆပါတယ္။
..........
ကဲ ဆက္ေျပာရေအာင္။
ခုန ထုတ္လိုက္တဲ့ အေျဖက အစဥ္လိုက္အေျဖျကီးျဖစ္ေနတယ္။ အစဆံုး သုညမွတ္ကေန ၂ခုေက်ာ္စီ ထုတ္သြားခ်င္တယ္ဆိုပါေတာ့။ ကြ်န္ေတာ္တို့ ဘာသံုးျကမလဲ။
ဒီေနရာမွာ ေရွ့ သင္ခန္းစာေတြကို ေျကခဲ့သူေတြက ေတြးမိလိမ့္မယ္ဗ်။ Auto increase ကိုေလ။ ကိုယ္တိုးသြားခ်င္တဲ့ကိန္းကို ေနာက္ဆံုးမွာ ထပ္ထည့္ေပးလိုက္တာမို့လား။
အဲဒါ ရ မရ စမ္းျကည့္လိုက္ရင္ အေျဖထြက္ျပီေပါ့ေနာ
>>> aaa [0:10:2]
['car', 'cow', 'cat', 'book', 'brick']
ေဟာ လိုခ်င္တဲ့အတိုင္း အစကေန တစ္ခုေက်ာ္စီ သြားတယ္။ ၁၀ ေအာက္ဆိုေတာ့ သုညကေနစ ကိုးအထိ တစ္ခုေက်ာ္မို့ ၅ခု အေျဖရတယ္။
တစ္ခုေက်ာ္စီဟုတ္မဟုတ္ ျပန္တိုက္စစ္ျကည့္လိုက္ပါဦး။ ခုေလာက္ဆို ၂ခုေက်ာ္လိုခ်င္ရင္ ေနာက္မွာ ၃ ထည့္ရံုပဲဆိုတာ သိသြားပါျပီ။ ေရွ့သင္ခန္းစာေတြနဲ့ အလ်ဥ္းသင့္သလို ေပါင္းေပးေနတယ္ေနာ္။ စာ ေက် မေက် စစ္ေဆးေနတာ :)
..
ကဲ ဒီခါ အဲသည္အမွတ္စဥ္ေတြကို ေနာက္ကေန ျပန္ေရရေအာင္ဗ်ာ။ ဒါက နမူနာျပထားတာမို့သာ။ တကယ္တမ္း list မွာ အရမ္းမ်ားေနရင္ ေနာက္ကေန ျပန္ေရမွ အဆင္ေျပတာေတြလည္း ရွိတယ္ဗ်။
ဥပမာေပးရရင္ list 100 ေလာက္ ရွိတယ္ဆိုျကစို့။ list 100 ေလာက္ ထဲကမွ ေနာက္ဆံုးက ၇ လံုးေလာက္ကို လိုခ်င္တဲ့အခါ 100 ေလာက္ဆိုတာလည္း ခန့္မွန္းေျခပဲ တစ္ကယ္က ဘယ္ေလာက္မွန္း အတိအက်မသိဘူးဆိုပါစို့။ ေရွ့ကေန90 ေက်ာ္ထိ မ်က္စိရွုပ္ခံျပီး ေရတြက္ေနမလား။
ဘယ္တြက္ပါ့မတုန္း ေနာက္ကပဲ ျပန္ေရရင္ ပိုျမန္တာေပါ့ ေနာ။
ကဲ ခုလည္း ေနာက္ဆံုးကေန ျပန္လည္ေရတြက္ရေအာင္ပါ။ ေနာက္ဆံုးလံုးကေန ေရွ့ ဆယ္လံုးထိ ျပန္ယူမယ္ ဆိုပါစို့။
ဘယ္လိုေရးမလဲ။
>>> aaa [-1:10]
[]
>>> aaa [-1:-10]
[]
>>> aaa [-1 : -10]
[]
ထုတ္ျကည့္လိုက္တဲ့ အေျဖေတြလည္း တစ္ခုမွ မထြက္ပါလား။ ဘာမွားေနလို့ပါလိမ့္။
ေအာက္က ေျပာျပတာကို ဆက္မျကည့္ဘဲ အေျဖကို ရွာနိုင္ရင္ေတာ့ အေတာ့္ကို ေတာ္သြားျပီလို့ ေျပာလို့ရပါျပီ။
ကိန္းေတြကို ေနာက္ျပန္ျပန္ေရတဲ့အခါ ရွိသေလာက္ ထုတ္ေစခ်င္လို့ ရပါတယ္။
ဒါေပမယ့္ အဆံုးမွတ္ ကိုပဲ ေရးရတာ သတိျပုရမယ္။
ျကည့္ျကည့္ပါ။
>>> aaa [-1: ]
['bow']
ေနာက္ကေန တစ္ခုပဲယူထားျခင္းပါ။
>>> aaa [-10: ]
['cow', 'dog', 'cat', 'pig', 'book', 'beer', 'brick', 'boat', 'ball', 'bow']
ေနာက္ကေန ျပန္ေရရင္ ဆယ္ခု ယူထားတာျဖစ္တယ္။
အဲသည္မွာပဲ ခုနလုိ auto increase သံုးျကည့္ရေအာင္။
>>> aaa [-10: :2]
['cow', 'cat', 'book', 'brick', 'ball']
ဆယ္ခုအထိပဲ ေနာက္ဆံုးကေန တစ္ခုေက်ာ္ ျပန္ထည့္ျပထားတာပါ။ အလယ္ေခါင္ ေနရာမွာ space ျခားရံုေလးပဲ ျခားခဲ့ရင္ ရပါျပီ၊
ေနာက္ဆံုးကေန တစ္ခုေက်ာ္စီ အားလံုးလိုခ်င္ရင္ေတာ့ ဒီလိုေလး ေရးလို့ရပါတယ္ဗ်
>>> aaa [ : :2]
['car', 'cow', 'cat', 'book', 'brick', 'ball']
ေနာက္ဆံုးကေန တစ္ခုေက်ာ္္စီ အကုန္ယူခိုင္းလိုက္တာပါ။
............
............
အသစ္မစခင္ Sequence Lists and Tuple ကို ယွဥ္တြဲျပီး ျပန္ေနြွးရေအာင္ပါ။
အဲသည္၂ခုက အမွတ္တမဲ့ဆို တူသေယာင္ ထင္ရတဲ့အတြက္ျဖစ္ပါတယ္။
Sequence Lists ကို ေရးတဲ့အခါ ကြ်န္ေတာ္တို့ သံုးတာက [ေထာင့္ကြင္း] ေနာ္။
Tuple ကိုေရးတဲ့အခါမွာ သံုးရတာက (လက္သည္းကြင္း) ေနာ္။
မတူတာကို ေျပာျပတာပါ။ ျပန္မွတ္မိေအာင္ေပါ့။
Adding and Slicing ကို ဆက္သင္မွာမို့ Sequence Lists and Tuple ကို ျပန္ေဖာ္ရံုေလးပဲ သတိရေအာင္ေျပာေပးတာပါ။
Adding and Slicing ကို ဆက္လက္ ေလ့လာျကပါစို့။
သိပ္မကြာဘူးေနာ္။
ခုနလိုပဲမို့ အလြယ္ပဲ ျပန္တည္ေဆာက္လိုက္ရေအာင္။
>>> a = [ 'aa' , 'bb' , 'cc' , 'dd' , 'ee' , 'ff' ]
>>> b = [ '11' , '22' , '33' , '44' , '55']
>>> c = [ 'a1' , 'a2' , 'a3' , 'a4' , 'a5' , 'a6' ]
ကဲ တည္လိုက္ျပီေနာ္။ အလြယ္ပဲ :)
>>> a += b
>>> a
['aa', 'bb', 'cc', 'dd', 'ee', 'ff', '11', '22', '33', '44', '55']
ေပါင္းထည့္ျပီး a ကို ျပန္ေခၚၾကည့္လိုက္ေတာ့ အမ်ားႀကီးပဲ ေတြ့ရပါျပီ။
>>> a += c
>>> a
['aa', 'bb', 'cc', 'dd', 'ee', 'ff', '11', '22', '33', '44', '55', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6']
>>>
c ပါ ထပ္ေပါင္းထည့္လိုက္တဲ့အတြက္ a မွာ အမ်ားႀကီး ျဖစ္သြားျပီေနာ္။
sequence ေတြ ေခၚသံုးၾကည့္လိုက္ရေအာင္
>>> a [12]
'a2'
>>> a [-2]
'a5'
ေရွ့ေနာက္ေဖာ္ျကည့္ရျပီေနာ္။
>>> a [0:6]
['aa', 'bb', 'cc', 'dd', 'ee', 'ff']
ေရွ့ ၆လံုး
>>> a [-5: ]
['a2', 'a3', 'a4', 'a5', 'a6']
ေနာက္ ၅လံုး ေဖာ္လို့ရေနျပီ။ ခုန command ေတြကိုခ်ည္းျပန္ေျပာေနတာေနာ္။
>>> a [0: :3]
['aa', 'dd', '11', '44', 'a2', 'a5']
အစ အဆံုး ၂လံုးေက်ာ္စီ ယူလိုက္တာ။
ဒီေလာက္ဆို အဆင္ေျပျပီထင္ပါတယ္။ ေနာက္တစ္ခု ဆက္ရေအာင္ပါ။
.............
........
ဒီတစ္ခါေတာ့ အေျပာင္းအလဲေလး ျဖစ္သြားေအာင္ သင္ခန္းစာ ေခါင္းစဥ္ မေျပာေသးဘူးဗ်ာ
ပရိုဂရမ္ေလးတစ္ခုကို ေအာက္ပါအတိုင္း တည္ေဆာက္ျကည့္ရေအာင္
lesson 1  က နမူနာကိုပဲ ယူသံုးရေအာင္
>>> a = [ 'aa' , 'bb' , 'cc' , 'dd' , 'ee' , 'ff' ]
>>> b = [ '11' , '22' , '33' , '44' , '55']
>>> c = [ 'a1' , 'a2' , 'a3' , 'a4' , 'a5' , 'a6' ]
>>> a += b
>>> a += c
>>> a
['aa', 'bb', 'cc', 'dd', 'ee', 'ff', '11', '22', '33', '44', '55', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6']
a တန္ဖိုးက အားလံုးေပါင္းျပီးသြားျပီေနာ္။ ဒါဆို a sequence 0 က ဘာျဖစ္မလဲ။
ရွင္းပါတယ္။ aa က seq 0 ေပါ့။ ဟုတ္မဟုတ္ကို terminal မွာျကည့္ဦးမလား။
>>> a [0]
'aa'
မွားစရာမရွိဘူး သူက ေရွ့ဆံုးပဲေလ။ သိျပီးသားေတြ။ ခုျပန္ေျပာျပရတာက အဲသည္ 0 တန္ဖိုးကို aa  မဟုတ္ဘဲ အျခားတစ္ခုကို ေပးလိုက္ခ်င္တာ။ အဲမွာ စျပီ။
>>> a [0] = "11"
>>> a
['11', 'bb', 'cc', 'dd', 'ee', 'ff', '11', '22', '33', '44', '55', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6']
>>> ကဲ ေတြ့ျပီ။ သုညတန္ဖိုးကို 11 လို့ သတ္မွတ္လိုက္တဲ့အတြက္ 11 ကို သုညတန္ဖိုးထားျပီး ေဖာ္ျပသြားတယ္။
ေနာက္ကေန ျပန္ေျပာင္းျကည့္ရေအာင္
>>> a [-2] = "ff"
>>> a
['11', 'bb', 'cc', 'dd', 'ee', 'ff', '11', '22', '33', '44', '55', 'a1', 'a2', 'a3', 'a4', 'ff', 'a6']
>>> သတိထားျကည့္ျကည့္ပါ။ေနာက္ဆံုးက ေရရင္ ဒုတိယေနရာမွာ ff ေရာက္သြားပါျပီ။ အစားဝင္ယူသြားတာျဖစ္ျပီး ဝင္ခံရတဲ့ေနရာက ကိန္းေတာ့ ေပ်ာက္သြားမွာျဖစ္ေပမယ့္ အစားဝင္လာတဲ့ကိန္းေတြကေတာ့ မေပ်ာက္ဘဲ ဆက္ရွိေနတာပါ တစ္ဆက္တည္း ေတြ့ရပါလိမ့္မယ္။ ဒါမ်ိုးအခ်က္ေလးေတြပါ သတိထား မွတ္ထားေပါ့။
အေျပာင္းအလဲေလး ျဖစ္သြားေအာင္ ေနာက္ထပ္ နမူနာ ေသးေသးတစ္ခု အသစ္လုပ္ျပပါ့မယ္။
>>> kmn = [ "a" , "b" , "c" , "d" , "e" , "f" ]
>>> kmn [0:5]
['a', 'b', 'c', 'd', 'e']
>>> ဒီအထိေတာ့ သိျကမွာျဖစ္ပါတယ္။  0:5 ဆိုတာ သုညကေန အမွတ္စဥ္ ေလးအထိ ကိန္းငါးလံုး ထုတ္ျပခိုင္းတာပါ။ သိျပီးသားကို ထပ္ေျပာရျခင္းက ၆လံုးရွိတဲ့အနက္ အဲသည္ ၅လံုးကို အစားထိုးမွာမို့ပါပဲ။
>>> kmn [0:5] = "g" , "h" , "i" , "j" , "k"
>>> kmn
['g', 'h', 'i', 'j', 'k', 'f']
ေအာက္ဆံုးအေျကာင္းက kmn ကို ျပန္ေဖာ္ျကည့္တဲ့အခါမွာေတာ့ ခုန အစားသြင္းလိုက္တဲ့ေနရာေတြမွာ အသီးသီး ေနရာဝင္ယူသြားျကတာကို ေတြ့ရပါလိမ့္မယ္။ ဒါကေတာ့ မူလ ရွိျပီးသားေနရာမွာ အစားထိုးတာ ျဖစ္လို႔ သူ႔ကို  replace function လို႔ မွတ္ထားရေအာင္။
းးး
အဲမွာပဲ ဆက္ျကည့္ရေအာင္ဗ်။ လိုအပ္တုန္းက ထည့္သံုးခဲ့ျပီး မလိုအပ္ေတာ့တဲ့အခ်ိန္မွာ ျပန္ျဖုတ္ခ်င္ရင္ del ေလးကို သံုးတယ္ဗ်
>>> kmn
['g', 'h', 'i', 'j', 'k', 'f']
ေဖာ္ျကည့္လိုက္ရင္ ခုတန္ဖိုးရွိေနတယ္ေနာ္။ kmn [0] က ဘာျဖစ္မလဲ။
ပထမဆံုး g ေပါ့။ အဲသည္ g ကို ဖ်က္မယ္ဆိုပါစို့။
>>> del kmn [0]
>>> kmn
['h', 'i', 'j', 'k', 'f']
>>>
ပထမဆံုး g မရွိေတာ့ဘူးဗ်။ ခုတိုင္းဆို h က    kmn[0] ျပန္ျဖစ္သြားျပီ။ :)
ကဲ ေနာက္ဘက္ကေန နမူနာ ဖ်က္ျကည့္ရေအာင္။ kmn [-2] က ဘာလဲ။
ေနာက္က ျပန္ေရရင္ k ေပါ့။ သူ့ကို ဖ်က္ျကည့္။
>>> del kmn [-2]
>>> kmn
['h', 'i', 'j', 'f']
ကြ်န္ေတာ္တို့ ဖ်က္လိုက္တာေတြ မရွိေတာ့ဘူးေနာ္။
ဒီအပိုင္းထိ လုပ္ခဲ့ျပီးတာေလးေတြ ျပန္လုပ္ျကည့္ပါ။ စိတ္ဝင္စားစရာေကာင္းတယ္ဗ်။
.....
ဒီအထိ အဆင္ေျပလာျပီဆိုေတာ့ Slicing Code ေလး နည္းနည္း စမ္းမယ္ဗ်ာ။
In [1]: kmn = ()

In [2]: if not kmn:
   ...:     print "\n Hello! Mr, you are wrong!"
   ...: print "\n So you must choose the followings....."
   ...:
In [3]: kmn = [ "0)book", "1)Laptop", "2)Shirt", "3)Phone" ]

In [4]: for item in kmn:
   ...:     print "\n The item you choose is :" + item
   ...: raw_input("\n Press Enter to exit....")
   ...:
အထက္ပါ ပံုစံကို ျကည့္လိုက္တာနဲ့ ipython မွာ စမ္းျပထားတာကို သိမွာပါ။ ဒီခါေတာ့ leafpad မွာ အဲဒါေတြကို ရိုက္ျပီး desktop ေပာ္မွာ lesson9.py လို့ save လိုက္ပါ။
kmn = ()
if not kmn:
    print "\n Hello! Mr, you are wrong!"
print "\n So you must choose the followings....."
kmn = [ "0)book", "1)Laptop", "2)Shirt", "3)Phone", "4)Wifi" , "5)knife" ]
for item in kmn:
    print "\n This item is : " + item
raw_input("\n Press Enter to exit....")
ေပါ့။ျပီးရင္ ထံုးစံအတိုင္း
cd Desktop
python lesson9.py
ဆိုျပီး RUN ျကည့္လိုက္မယ္ဆိုရင္ခုန အေျဖေတြကို တစုတစည္းေတြ့ရမွာပါ။
နည္းနည္းထပ္ျဖည့္ ဆက္ေရးျပီး ျပန္ RUN ျကည့္ရေအာင္။ ခုန lesson9.py ကိုပဲ R-click ျပီး  Text Editor နဲ့ ဖြင့္မယ္ေနာ္။
kmn = ()
if not kmn:
    print "\n Hello! Mr, you are wrong!"
print "\n So you must choose the followings....."
kmn = [ "0)book", "1)Laptop", "2)Shirt", "3)Phone", "4)Wifi" , "5)knife" ]
for item in kmn:
    print "\n This item is :" + item

index = int(raw_input("\n Choose any item you want, 0 to 5, ..."))
print "\n The item you choose is : " + kmn [index]
raw_input("\n Press Enter to exit....")
ျပင္ေရးျပီးသားဖိုင္ကို ျပန္ျပီး RUN ျကည့္ပါဦး။
ီအဆင္ေျပရဲ့လား။ ေျပတယ္ဆို ေနာက္ထပ္ နည္းနည္းေလာက္ ထပ္ျဖည့္လိုက္ရေအာင္ေနာ္။
......
Slicing Coding ေလးေတြ ထပ္ျဖည့္ပါမယ္။
.......
kmn = ()
if not kmn:
    print "\n Hello! Mr, you are wrong!"
print "\n So you must choose the followings....."
kmn = [ "0)book", "1)Laptop", "2)Shirt", "3)Phone", "4)Wifi" , "5)knife" ]
for item in kmn:
    print "\n This item is :" + item
raw_input("\n Press Enter to continue....")

index = int(raw_input("\n Choose any item you want, 0 to 5, ..."))
print "\n The item you choose is : " + kmn [index]
raw_input("\n Press Enter to continue....")

print "\n Hi, Mr., You can choose group of items (to 5 items)!"
begin = int(raw_input("\n Choose started number of the item you want......"))
end = int(raw_input("\n Choose last number of the item you want......."))
raw_input("\n Press Enter to continue....")

print "\n Your choosing items are :  ", kmn [begin: end]
print "\n Your choice is best. Good idea ! "


raw_input("\n Press Enter to exit....")
..........
............
ခုေတာ့ ဒီလိုေလး ျဖစ္သြားပါျပီ။


Lesson 9 ၾကည့္ရန္ Click Here




အားလံုး အဆင္ေျပ ေပ်ာ္ရႊင္ၾကပါေစခင္ဗ်ာ




ဒီ Website ကေလးမွာ တင္ထားတဲ့ အေၾကာင္းအရာအေတြကို က႑အလိုက္ ေရြးခ်ယ္ ၾကည့္လိုပါက
ဒီစာေၾကာင္းေလးကို ႏွိပ္ျပီးလည္း ေရြးခ်ယ္ၾကည့္ႏိုင္သလို Menu Box ကေနလည္း ေရြးခ်ယ္ၾကည့္ႏိုင္ပါေၾကာင္း ခင္ဗ်ာ




Thanks


Khit Minnyo

Monday, October 30, 2017

Python2 Lesson 7


Python  သင္ခန္းစာမ်ားကို အသစ္ထည့္ထားေပးေသာ menu box ကေလးမွတစ္ဆင့္ Python for Hacker ကို ေရြးခ်ယ္ျပီး ၾကည့္ႏိုင္ပါတယ္။
အပိုင္း 4 ထိ သင္ခန္းစာေတြကို မၾကည့္ရေသးသူမ်ား ေအာက္ပါ link ကေနလည္း သြားေရာက္ ၾကည့္ရႈႏိုင္မွာျဖစ္ပါတယ္ခင္ဗ်ာ
Lesson 1 ၾကည့္ရန္ link  >> Click Here
Lesson 2 ၾကည့္ရန္ link  >> Click Here
Lesson 3 ၾကည့္ရန္ link  >> Click Here
Lesson 4 ၾကည့္ရန္ link >> Click Here
Lesson 5 ၾကည့္ရန္ link >> Click Here
Lesson 6 ၾကည့္ရန္ link >> Click Here
........................................
အဆက္
Python Programming
..
ဒီေန့ေတာ့ မေန့က ေမးခဲ့တဲ့ lesson ေလးကို ျပန္ဆက္ပါမယ္။
မေန့က problem ေလးနဲ့ ပတ္သက္ျပီး ျပန္လည္ ရွင္းျပခ်င္ပါတယ္။ ကြ်န္ေတာ္တို့ leafpad မွာ ေရးခဲ့တာေတာ့ ေအာက္ပါအတိုင္း ျဖစ္ပါတယ္။
...
khitminnyo = ()
if not khitminnyo:
print "\n There is nothing in khitminnyo."
raw_input("\n Press enter to continue......")
khitminnyo = ( "Laptop1", "Books" , "1Android" , "1000Ks7" )
print "\n Khit Minnyo has the items:", khitminnyo
raw_input("\n Press enter to exit.")
RUN တဲ့အခါ ဘာလို့ error တက္ရသလဲ ဆိုတာကို ခု ျပန္ရွင္းေပးသြားမွာ ျဖစ္ပါတယ္။
Terminal ကေန python လို့ ရိုက္ေခၚလိုက္ပါ။
>>> khitminnyo = ()
>>> if not khitminnyo:
... print "\n There is nothing in khitminnyo."
  File "", line 2
    print "\n There is nothing in khitminnyo."
        ^
IndentationError: expected an indented block
print ျပီး enter လိုက္တာနဲ့ အထက္ပါအတိုင္း error ေတြ့ျခင္း ျဖစ္ပါတယ္။
ခု ipython ကို ဖြင့္ျပီး စမ္းျကည့္ရေအာင္ပါ။
(ipython install ထားသူမ်ားသာ)
In [1]: khitminnyo = ()

In [2]: if not khitminnyo:
   ...:     print "\n There is nothing in khitminnyo."
   ...:   

 There is nothing in khitminnyo.
ipython မွာလည္း ဒီအတိုင္းပဲ ရိုက္တာပါပဲ ဘာလို့ အေျဖထြက္လာလဲ??????
အဲဒါေလးကို ရွင္းျပရမယ္ဆိုရင္ေတာ့ else သင္ခဲ့စဥ္တုန္းက သင္ခန္းစာေလးကိုပဲ ျပန္ကိုးကားရပါလိမ့္မယ္။
if ေရးျပီးလို႔ print ေတာ့့မယ့္အခါ print မေရးခင္ tab တစ္ခ်က္ ခုန္ထားပါမယ္။
if .................:
    print .........
ပံုစံပါ။ သေဘာကေတာ့ print မယ့္ လုပ္ေဆာင္ခ်က္သည္ if ထဲမွာ ပါဝင္ေနတယ္ ဆိုတာပါပဲ။ ဒါေၾကာင့္ အတြင္းသြင္းျပီးေရးတယ္လို႔ မွတ္ထားေပါ့။
terminal က python ဆီမွာ ျပန္ေရးၾကည့္ၾကစို႔
.
>>> khitminnyo = ()
>>> if not khitminnyo:
...     print "\n There is nothing in khitminnyo."
...

 There is nothing in khitminnyo.
>>>
python မွာ ကြ်န္ေတာ္တို့ လိုခ်င္တဲ့ အေျဖ ရပါျပီ။ ဒါဆို မေန့က Save ခဲ့တဲ့ ဖိုင္ဆီ ျပန္သြားရေအာင္။
R-click နွိပ္ျပီး text editor နဲ့ ဖြင့္ဖြင့္ Double click နဲ့ပဲ ဖြင့္ဖြင့္ပါ။
.ျပီးရင္ လိုင္း3 မွာရွိတဲ့ print ေရွ့မွာ ကာဆာ ခ်ျပီး space bar ၄ခ်က္နွိပ္ျပီး ေနာက္ပို့လိုက္ပါ။
သို႔မဟုတ္ tab key ကို တစ္ခ်က္ ခုန္လိုက္ပါ။ (1 tab = 4 space)
ေအာက္ပါအတိုင္း ျဖစ္သြားပါျပီ။
khitminnyo = ()
if not khitminnyo:
    print "\n There is nothing in khitminnyo."
raw_input("\n Press enter to continue......")
khitminnyo = ( "Laptop1", "Books" , "1Android" , "1000Ks7" )
print "\n Khit Minnyo has the items:", khitminnyo
raw_input("\n Press enter to exit.")
....
Save ျပီး ျပန္ RUN ျကည့္ပါဦး။
အဆင္ေျပသြားျပီေနာ္။
.....
.....
အထက္ပါ ပံုစံမွာပဲ ေနာက္ထပ္ အနည္းငယ္ ထပ္ျဖည့္ျကည့္ရေအာင္။ ေအာက္ဆံုး တစ္တန္း ခ်န္ျပီး ျကားမွာ ျဖည့္မယ္ေနာ္။
khitminnyo = ()
if not khitminnyo:
    print "\n There is nothing in khitminnyo."
raw_input("\n Press enter to continue......")
khitminnyo = ( "Laptop1", "Books" , "1Android" , "1000Ks7" )
print "\n Khit Minnyo has the items:", khitminnyo
for item in khitminnyo:
    print item
raw_input("\n Press enter to exit.")
...
ဘာမွ အေထြအထူးေတာ့ မေျပာင္းလဲေသးပါဘူး။
for looping ေလးနဲ့ အစဥ္လိုက္ေလး ထုတ္ေပးလိုက္တာ တစ္ခုပါပဲ။
Save ျပီး RUN လို့ ရျပီလား။ error တက္ေသးလား။ :)
ဒီေနရာမွာေတာ့  for loop ေအာက္က print ဆိုတဲ့စာလံုးကို tab တစ္ခ်က္ ေနာက္ပို့ျပီးမွ ေရးမယ္လို့ ယူဆပါတယ္။
error တက္စရာ မရွိေတာ့ပါဘူး :)
..........
ေနာက္ထပ္ တစ္ေျကာင္း ထပ္ျဖည့္ပါဦးမယ္။
...........
khitminnyo = ()
if not khitminnyo:
    print "\n There is nothing in khitminnyo."
raw_input("\n Press enter to continue......")
khitminnyo = ( "Laptop1", "Books" , "1Android" , "1000Ks7" )
print "\n Khit Minnyo has the items:", khitminnyo
for item in khitminnyo:
    print item
print "\n Khit Minnyo has", len(khitminnyo), "item"
raw_input("\n Press enter to exit.")
ထပ္ျဖည့္တဲ့ print ကို space နဲ့ ပို့စရာ မလိုေတာ့ပါဘူးေနာ္ :)
........
root@kmn:~# cd Desktop
root@kmn:~/Desktop# python lesson6.py

 There is nothing in khitminnyo.

 Press enter to continue......

 Khit Minnyo has the items: ('Laptop1', 'Books', '1Android', '1000Ks7')
Laptop1
Books
1Android
1000Ks7

 Khit Minnyo has 4 item

 Press enter to exit.
root@kmn:~/Desktop#
Terminal ကေန ဖြင့္ျပီး ျပန္ RUN ျကည့္တဲ့အခါ ခုလို ျမင္ရပါျပီ။ အဆင္ေျပရဲ့လားခင္ဗ်။
.........
အဲသည္ ဖိုင္မွာပဲ ေနာက္ထပ္ ထပ္ျဖည့္ပါဦးမယ္။
khitminnyo = ()
if not khitminnyo:
    print "\n There is nothing in khitminnyo."
raw_input("\n Press enter to continue......")
khitminnyo = ( "Laptop1", "Books" , "1Android" , "1000Ks7" )
print "\n Khit Minnyo has the items:", khitminnyo
for item in khitminnyo:
    print item
for item in khitminnyo:
    print "This is  ", item
print "\n Khit Minnyo has", len(khitminnyo), "item"
raw_input("\n Press enter to exit.")
.............
အထက္ပါအတိုင္း ထပ္ျဖည့္ စမ္းျကည့္ပါ။ ဘာထူးျခားတာ ေတြ့ပါသလဲ။
နည္းနည္း ပိုတက္လာျပီေနာ္။
.................
ေနာက္ဆံုးအေနနဲ့ raw_input ေတြကို ထပ္ထည့္ျဖည့္သံုးပါမယ္။ ေအာက္ပါအတိုင္း ျဖစ္သြားပါျပီ။
လုပ္ျကည့္ပါဦး။

khitminnyo = ()
if not khitminnyo:
    print "\n There is nothing in khitminnyo."
raw_input("\n Press enter to continue......")
khitminnyo = ( "Laptop1", "Books" , "1Android" , "1000Ks7" )
print "\n Khit Minnyo has the items:", khitminnyo
raw_input("\n Press enter to continue......")
for item in khitminnyo:
    print item
raw_input("\n Press enter to continue......")
for item in khitminnyo:
    print "This is  ", item
raw_input("\n Press enter to continue......")
print "\n Khit Minnyo has", len(khitminnyo), "item"
raw_input("\n Press enter to exit.")
..............................................
...............................................
အေပၚက သင္ခန္းစာကို ပထမပိုင္းအျဖစ္ သတ္မွတ္လိုက္ရေအာင္
အဲသည္အပိုင္းကို ရျပီ နားလည္ျပီဆိုမွ ဒုတိယအပိုင္းကို ဆက္ျပီး ၾကည့္ေပးပါဗ်
..
.............
............
Python's String Function
Programming Language ေတြတိုင္းမွာ String ေလးေတြ ရွိျကပါတယ္။ ခုေတာ့ Python ရဲ့ String ေလးေတြကို ဆက္ျပီး ေျပာျပသြားမွာပါ။
String ဆိုတာ စာသားတန္ဖိုးေတြကို variable လိုပဲ သိုေလွာင္ပါတယ္။ ကိန္းေတြကို စာသားတန္ဖိုး ေျပာင္းလဲတာေတြကိုလည္း လုပ္ေဆာင္ေပးတဲ့ functionေပါ့။
အျကမ္းဖ်င္းေလး ရွင္းျပရင္း ဥပမာေလး ေပးပါမယ္။
python or ipython နွစ္သက္ရာမွာ ေရးျပီး စမ္းနိုင္ပါတယ္။
ကြ်န္ေတာ္ကေတာ့ စာနည္းတဲ့ python မွာပဲ စမ္းျပထားပါတယ္။ ျပန္ကူးျပတဲ့အခါ  ipython က စာပိုေဖာင္းပြလို့ပါ။
>>> x = 50
>>> y = "I like the number,"
>>> x+y
Traceback (most recent call last):
  File "", line 1, in
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> 
အထက္ပါ problem အရ x ကို variable သတ္မွတ္စဥ္တုန္းက ကိန္းဂဏန္းတန္ဖိုး 50 နဲ့ သတ္မွတ္ခဲ့ပါတယ္။ y ကိုေတာ့ စာသားတန္ဖိုးအေနနဲ့ပဲ မွတ္သားခဲ့တာပါ။
Data Type မတူညီတဲ့အတြက္ သူတို့ ၂ခုကို ေပါင္းလို့ မရပါဘူး။ ဒီအခါမွာ string function လိုအပ္လာပါျပီ။
ျကားျဖတ္ ေျပာစရာတစ္ခုေတာ့ ရွိပါတယ္။ ၂ခုလံုးကို text အေနနဲ့ပဲ မွတ္လိုက္ရင္ ရတာေပါ့လို့။
>>> x = "50"
>>> y = "I like this number,"
>>> y + x
'I like this number,50'
>>> 
အထက္ပါအတိုင္း ျကည့္ရင္ ရတာပါပဲ။ string  ကို ဘာလို့ သံုးဖို့လိုေသးလဲ ေမးစရာျဖစ္လာနိုင္ပါတယ္။
ဆက္ျကည့္ျကပါစို့။
>>> x = "50"
>>> y = "100"
>>> x+y
'50100'
>>> 
x တစ္ခုတည္း မဟုတ္ဘဲ အျခား ကိန္းေတြပါ ပါလာတဲ့အခါ text ေပါင္းသလို ေပါင္းလို့ မရေတာ့ပါဘူး။
သင္ခန္းစာရဲ့ ေရွ့ပိုင္းမွာလည္း ရွင္းျပခဲ့ျပီးပါျပီ။
ဒါဆိုရင္ string လိုအပ္လာျပီေပါ့။ ရွင္းပါတယ္ေနာ္။
အထက္ပါ ဥပမာကိုပဲ ျပန္ဆက္ရေအာင္။
အသစ္ ျပန္ေရးျကည့္မယ္ေနာ္။
>>> a = 50
>>> b = "I like the number, "
>>> a = str (a)
>>> b + a
'I like the number, 50'
>>> 
တတိယ လိုင္း မွာျကည့္ရင္ မူလ a တန္ဖိုးကို ကိန္းဂဏန္းအေနနဲ့ မွတ္ထားရာကေန text အျဖစ္ ျပန္ေျပာင္းလိုက္ပါတယ္။ ဒါေျကာင့္ မတူညီတဲ့ data type ကေန တူညီတဲ့ data tpye ျဖစ္သြားပါတယ္။
ေပါင္းစပ္လို့ ရျပီေပါ့။ 
ေနာက္ ဥပမာ တစ္ခုေပးမယ္။
x က 50, y က 100, အဲ ၂ခု ေပါင္းလဒ္ကို စာနဲ့ ေဖာ္ျပခ်င္တယ္ဆိုပါစို့။
၂ခုေပါင္း ရလဒ္က w လို့ ထားလိုက္။ ေက်ာင္း သင္ခန္းစာ တြက္နည္းအတိုင္းပဲ ေျပာျပေနတာေနာ္။
ဒါဆို ျကည့္ရေအာင္။
>>> x = 50
>>> y = 100
>>> w = x + y
>>> z = "The result of x + y is, "
>>> w = str (w)
>>> z + w
'The result of x + y is, 150'
ျကည့္ျပီး လုပ္ျကည့္ရံုနဲ့ ရွင္းမယ္ ထင္ပါတယ္။ မရွင္းတာရွိရင္ comment ကေန လာေမးနိုင္ပါတယ္ခင္ဗ်ာ။
............
............
Integer Function
Function ေတြ ေတာ္ေတာ္မ်ားမ်ား စံုလာျပီေနာ္။ ဒီတစ္ခါေတာ့ Integer Function အေျကာင္းေလး ေျပာခ်င္ပါတယ္။
Integer Function ဆိုတာ Variable တည္ေဆာက္ထားတဲ့ စာသားနဲ့ ကိန္း အေရာေတြကေန ကိန္းဂဏန္းေတြကို ေရြးထုတ္ေပးနိုင္တဲ့  လုပ္ေဆာင္ခ်က္ကို ေဆာင္ရြက္လိုလ်င္ အသံုးျပုရေသာ function ျဖစ္ပါတယ္။
ေအာက္ပါ လုပ္ေဆာင္ခ်က္ကေလးကို ျကည့္ရေအာင္။ တစ္ေျကာင္းစီကို အရင္ ရွင္းျပပါမယ္။ ျပီးမွ အားလံုးစုျပီး ျပန္ေရးေပးမယ္။
............
present = ( 'Book' , 'Laptop' , 'Phone' , 'Shirt' )
ပထမဆံုးအေနနဲ့ လက္ေဆာင္ စာရင္းေလးကို variable လုပ္လိုက္ပါတယ္။
for item in present: 
လက္ေဆာင္မွာ ပါဝင္တဲ့ item ေတြကို ကြန္ပ်ူတာသိေအာင္ ျကိုေျပာထားတဲ့သေဘာေပါ့
    print item
item ေတြကို ထုတ္ခ်လိုက္ပါျပီ။ ထံုးစံအတိုင္း print အတြက္ Tab 1ခ်က္ ျခားဖို့ လိုတယ္ေနာ္။
raw_input("\n Press Enter to know each item...")
ျကားမွာ တစ္ဆင့္ျခားခ်င္လို့ ထည့္ထားတာ။ မျခားခ်င္ရင္မထည့္နဲ့ ရတယ္။
for item in present:
    print "This item is ", item
This item is ဆိုျပီး တစ္ခုစီကို ေနာက္တစ္ေခါက္ ထပ္ေဖာ္ျပတာပါ။
ခုေနရာအထိ ဒီေန့အတြက္ lesson 1 မွာ ေျပာျပျပီးျပီေနာ္။ မွတ္မိေသးတယ္မလား။
index = int (raw_input("\n Type number you want ....."))
integer function စျပီဗ်။ list ထဲကေန လိုခ်င္တဲ့ present ကို နံပါတ္ ရိုက္ပါလို့ေျပာတာ။
သတိထားရမွာက ေရတြက္တဲ့အခါ သုညကေန စတယ္ေနာ္။
print "\n The present you want is ", present [index]
ေရွ့ပိုင္းမွာ ပံုမွန္အတိုင္းပဲ ေဖာ္ျပခ်င္တဲ့စာကို print လိုက္တာ။
မတူတာက အထက္မွာ ေရြးခိုင္းလို့ ေရြးတဲ့နံပါတ္ ရိုက္လိုက္တဲ့အခါထို အမွတ္စဥ္ပါတဲ့ စာသားကို ထုတ္ျပဖို့ ေနာက္မွာ index ထပ္ထည့္ထားတာပဲ။
raw_input("\n Press Enter to exit")
ဒါကေတာ့ ရွင္းပါတယ္။
..................
အထက္ပါ စာေျကာင္းေတြကို ျပန္ျကည့္ရင္ ဒီလို ရပါမယ္။
present = ( 'Book' , 'Laptop' , 'Phone' , 'Shirt' )
for item in present:
    print item
raw_input("\n Press Enter to know each item...")
for item in present:
    print "This item is ", item
index = int (raw_input("\n Type you want ....."))
print "\n The present you want is ", present [index]
raw_input("\n Press Enter to exit")
.......
Terminal  ကေန RUN ျကည့္မယ္ဆိုရင္ေတာ့ ဒီလို ေတြ့ရပါလိမ့္မယ္။
root@kmn:~/Desktop# python lesson7a.py
Book
Laptop
Phone
Shirt

 Press Enter to know each item...
This item is  Book
This item is  Laptop
This item is  Phone
This item is  Shirt

 Type you want .....0 ဒီေနရာမွာ ေရြးတဲ့နံပါတ္ ရိုက္ထည့္ရမယ္။

 The present you want is  Book

 Press Enter to exit
root@kmn:~/Desktop# 
............
............
lesson ၂ခု ဆက္စပ္မွု ရွိတယ္ေနာ္။
သတိေလးထားျပီး ဆက္လက္ ေလ့က်င့္ေစလိုပါတယ္။ 
ဒီေနရာမွာ ထြင္တတ္ရင္ ထြင္တတ္သေလာက္ စဥ္းစားတတ္ရင္ စဥ္းစားတတ္သေလာက္ ေရးလို့ရတာေတြ အရမ္း မ်ားသြားပါျပီ။



လာေရာက္လည္ပတ္သူအေပါင္း ေပ်ာ္ရႊင္သာယာၾကပါေစ


ကြ်န္ေတာ့္ရဲ႕ Website ကေလးမွာ ေဖာ္ျပထားတဲ့ Article ေလးေတြကို က႑အလိုက္ ေရြးခ်ယ္ဖတ္ရႈ လိုပါက ဒီစာေၾကာင္းေလးကို ႏွိပ္ျပီး ေရြးခ်ယ္ႏိုင္သလို Menu box ကေနလည္း ေရြးခ်ယ္ဖတ္ရႈႏိုင္ပါတယ္ခင္ဗ်ာ


Thanks

Khit Minnyo





Saturday, October 28, 2017

Installing Chrome Browser on Kali Linux & open it with root account


မဂၤလာပါဗ်ာ
ဒီေန႔ေတာ့ Kali Linux မွာ Chrome Browser တင္ခ်င္တဲ့သူေတြေရာ root account ကေန ဖြင့္လို႔ မရတဲ့ သူေတြေရာအတြက္ ျပန္တင္ေပးလိုက္ျခင္းျဖစ္ပါတယ္
ျပဳလုပ္ထားတာ ၾကာခဲ့ျပီဆိုေပမယ့္ လုပ္ရမယ့္ နည္းလမ္းက အတူတူပဲမို႔လို႔ ဒီတိုင္းေလးပဲ ျပန္တင္ေပးလုိက္ပါတယ္ခင္ဗ်ာ
ဗီဒီယိုဖိုင္ေလးမို႔ လိုက္လုပ္ၾကည့္ရ အဆင္ေျပမွာပါ



ဒီ website ကေလးကေန တင္ထားေပးတဲ့ article မ်ားကို သက္ဆိုင္ရာ က႑အလိုက္ ၾကည့္ရႈလိုပါက ဒီစာေၾကာင္းေလးကို ႏွိပ္ျပီးလည္း ေရြးခ်ယ္ ၾကည့္ရႈႏိုင္ပါတယ္ခင္ဗ်ာ

Thanks

Khit Minnyo

Hacking လုပ္ေဆာင္ဖို႔အတြက္ Word Lists တစ္ခုစီကို Kali Linux မွာ တည္ေဆာက္ျခင္း


Kali Linux  မွာ Word Lists တစ္ခုကို တည္ေဆာက္ျခင္း
.
Hacking trick ေတြ လုပ္ေဆာင္တဲ့အခါမွာ ကြ်န္ေတာ္တို႔ အသံုးျပဳတဲ့အခါမွာေတာ့ word list ေတြကို အသံုးျပဳရမယ့္ သင္ခန္းစာေတြ ပါဝင္လာမွာ ျဖစ္ပါတယ္။ ကြ်န္ေတာ္တို႔အေနနဲ႔  word list တစ္ခုကို တည္ေဆာက္အသံုးျပဳဖို႔ဆိုတာ ကိုယ့္ဘာသာ  စဥ္းစားတည္ေဆာက္ေနရင္ ႏွစ္ေတြနဲ႔ခ်ီ ၾကာသြားႏိုင္ပါတယ္။ ဒါေၾကာင့္ word list တည္ေဆာက္ရာမွာ ေကာင္းမြန္လွတဲ့  tool ကေလးတစ္ခုကို install လုပ္ထားျပီး အသံုးျပဳမယ္ဆိုရင္ေတာ့ ခုလိုအခက္အခဲေတြ ကင္းေဝးသြားမွာျဖစ္ပါတယ္။
word list တစ္ခု တည္ေဆာက္ဖို႔အတြက္ အဓိက လိုအပ္တဲ့ application ကို ထည့္သြင္းၾကရေအာင္
.
ကြ်န္ေတာ္တို႔ရဲ႕ kali မွာ ထည့္သြင္းထားတဲ့ Sources list ဖိုင္ကို ျပန္ဖြင့္ၾကည့္ပါ။
Terminal Command = leafpad /etc/apt/sources.list
ပြင့္လာတဲ့ဖိုင္ထဲမွာ Source ေတြကို ျပန္ၾကည့္ပါ။
Kali Linux 2016 ဆို
deb http://http.kali.org/kali kali-rolling main contrib non-free
အထက္ပါအတိုင္း ျဖစ္ရပါမယ္
Kali Linux 2017 ကို သံုးတာ ဆိုရင္ေတာ့
deb http://http.kali.org/kali kali-rolling main non-gree contrib
အထက္ပါအတိုင္း ျဖစ္ရပါမယ္။
အဲဒီတစ္ေၾကာင္းကိုသာ # မခံဘဲ ေရးထားရမွာျဖစ္ျပီး က်န္စာေၾကာင္းေတြပါ ပါဝင္ေနပါက က်န္စာေၾကာင္းမ်ား အားလံုးေရွ႕မွာ   # ကို ထည့္ျပီး ပိတ္ထားဖို႔ လိုပါတယ္။ source  ေတြ ေရာကုန္မွာစိုးလို႔ပါ။
ျပီးရင္ေတာ့ ေရွ႕သင္ခန္းစာပါ command ေတြထဲကမွ ပထမဆံုးအေနနဲ႔
.
root@kali:~# mkdir CUPP
ဆိုျပီး mkdir command ကို သံုးလို႔  CUPP ဆိုတဲ့ folder တစ္ခုကို တည္ေဆာက္လိုက္ပါတယ္။ ရိုက္ရမယ့္စာက mkdir CUPP ေနာ္။ ေရွ႕စာေတြက နမူနာထည့္ထားတာ။

root@kali:~# cd CUPP
ဆိုျပီး cd ကို အသံုးျပဳလို႔ ခုန ဖန္တီးထားတဲ့ထဲကို ဝင္ေရာက္လိုက္ပါတယ္။
.

root@kali:~/CUPP# git clone https://github.com/Mebus/cupp.git
ဒီအဆင့္ကေတာ့ လိုအပ္တဲ့ git ကို စက္မွာ clone command ကို အသံုးျပဳ ရယူလိုက္ျခင္းပါ။
Cloning into 'cupp'...
remote: Counting objects: 65, done.
remote: Total 65 (delta 0), reused 0 (delta 0), pack-reused 65
Unpacking objects: 100% (65/65), done.
Checking connectivity... done.
.........................
root@kali:~/CUPP# ls
ဒီေနရာမွာ ls နဲ႔ ဖြင့္ခ်လိုက္တဲ့အခါ ေအာက္ပါအတိုင္း cupp folder တစ္ခုကို ထပ္မံ ေတြ႕ရျပီျဖစ္ပါတယ္
cupp

root@kali:~/CUPP# cd cupp
cd command ကို အသံုးျပဳျပီး cupp ထဲကို ထပ္မံ ဝင္ေရာက္လိုက္ပါ။
root@kali:~/CUPP/cupp# ls
နဲ႔ဖြင့္ၾကည့္မယ္ဆိုရင္ေတာ့ ေအာက္ပါအတိုင္း ဖိုင္ေတြကို ေတြ႕ျမင္ရမွာျဖစ္ပါတယ္။
CHANGELOG.md  cupp3.py  cupp.cfg  cupp.py  LICENSE  README.md  test_cupp.py

ဒီအထိ လုပ္ေဆာင္ခဲ့သမွ်ကို ျပန္ၾကည့္ရင္ ေအာက္ပါအတိုင္း ျမင္ရပါမယ္

ျပီးရင္ေတာ့
root@kali:~/CUPP/cupp# leafpad cupp.cfg
cfg ဆိုတဲ့ configure ဖိုင္ကို leafpad နဲ႔ ဖြင့္လိုက္တာပါ။ leafpad ေနရာမွာ gedit လို႔ ရိုက္လည္း ရပါတယ္။ အဲမွာ ျပင္ဆင္စရာအခ်က္တစ္ခု ရွိေနတာေၾကာင့္ ျဖစ္ပါတယ္။
ပြင့္လာတဲ့ leafpad ဖိုင္ထဲမွာ [leet] ဆိုတာကို တတိယပိုဒ္မွာ ေတြ႕ရပါမယ္။ အဲသည္ေနာက္ကေန enter ဆင္းလိုက္ပါ။ [leet] နဲ႔ a=4 ဆိုတဲ့ စာေၾကာင္း ၂ေၾကာင္းၾကားမွာ ကာဆာေလး ေရာက္ျပီဆိုရင္ေတာ့
a=@ ဆိုတာေလးကို ရိုက္ထည့္ျပီး save လိုက္ရမွာျဖစ္ပါတယ္။

 (File>>> Save or Ctrl + s) Save ျပီးရင္ေတာ့ အဲသည္ leafpad ကို ပိတ္လိုက္လို႔ ရပါျပီ။ ျပီးရင္ terminal မွာ ေအာက္ပါအတိုင္း ထပ္ရိုက္ပါ။

root@kali:~/CUPP/cupp# python cupp.py -i
ကြ်န္ေတာ္တို႔ ထည့္သြင္းလိုက္တဲ့ python နဲ႔ ေရးထားတဲ့ program ကို run လိုက္ျခင္းျဖစ္ပါတယ္။
.
အေရးႀကီးတဲ့အပိုင္းမို႔ ဒီေနရာကို ေသခ်ာ ေအာင္ ေအာက္မွာ ထပ္ေရးေပးလိုက္ပါတယ္။
root@kali:~/CUPP/cupp# python cupp.py -i

[+] Insert the informations about the victim to make a dictionary
[+] If you don't know all the info, just hit enter when asked! ;)

> First Name: သင့္ viactim ရဲ႕ နာမည္ကို Eng လို ေရးပါ။ ဥပမာ -  Khit (ဥပမာ ေရးျပတာေနာ္။ တကယ္လာမလုပ္ၾကနဲ႔ဦး ) ေအာက္မွာ ျပန္ျပထားတယ္
ကိုယ့္ victim ရဲ႕ အေျခခံ အခ်က္အလက္ေတြကိုေတာ့ သိထားဖို႔ လိုတယ္ေနာ္။ အင္ဖို စုတယ္ဆိုတာ အဲေနရာမွာ အသံုးဝင္ဖို႔ပဲ။

တစ္ဆင့္စီပံုမျပေတာ့ဘူးေနာ္။ ကြ်န္ေတာ္က ေအာက္ပါအတိုင္းပဲ စီေရးျပပါေတာ့မယ္
> First Name: Khit
> Surname: Minnyo
> Nickname: kmn
ဒါေတြက ကြ်န္ေတာ္ နမူနာ စမ္းျပထားတာေနာ္။ ကြ်န္ေတာ့္ password  ပါသြားမယ္။ မစမ္းၾကနဲ႔ 😜😜😜😜

> Birthdate (DDMMYYYY): 1/2/1985
ဒါက တမင္ ျဖည့္ျပတာပါ။ ဒီအတိုင္းဆို ေအာက္ပါအတိုင္း  error ေပၚပါမယ္။

[-] You must enter 8 digits for birthday!
> Birthdate (DDMMYYYY): 01/02/1985 ဒီလိုျဖည့္လို႔လည္း မရေသးပါဘူး။ ဘာလို႔လဲဆိုရင္ 8 digits ပဲ ထည့္ဖို႔ ေပးထားျပီးသားမို႔ပါ။ ဒါဆို ဘယ္လိုျဖည့္မလဲ။ ေအာက္ပါအတိုင္းပဲ ျဖည့္ရပါမယ္။

[-] You must enter 8 digits for birthday!
> Birthdate (DDMMYYYY): 01021985
01 02 1985 ေပါ့။ တစ္ရက္ ၂လ ၈၅ ကို အဲလို ျဖည့္ရမွာျဖစ္တယ္။ တစ္ဆယ္မျပည့္ရင္ ေရွ႕မွာ သုည ထည့္ထားရမယ္။


> Partners) name: Phway Phway   (ကိုယ့္ သားေကာင္နဲ႔ သက္ဆိုင္သူ ရင္းႏွီးဆံုးသူေတြရဲ႕ နာမည္ေတြ သံုးသင့္တယ္)  😂😂😂😂
> Partners) nickname: phwaylay
> Partners) birthdate (DDMMYYYY):   12101989
12 ရက္ 10 လ 1989
နမူနာ ျပတာပါ။  😳😳😳😳😳

> Child's name: Nay Toe
> Child's nickname: konaykotoe
> Child's birthdate (DDMMYYYY): 28012016
သူ႔မွာ သားသမီးမရွိလည္း အျခား တစ္ေယာက္ေယာက္ကို ထည့္သြင္းႏိုင္ပါတယ္


> Pet's name: Pussy
> Company name: Free
ဒါကေတာ့ အေျခခံ အခ်က္အလက္ပါ။

> Do you want to add some key words about the victim? Y/[N]: y ထပ္ျဖည့္ဦးမလား ေမးတာပါ။ y နဲ႔ ကိုယ္ျဖည့္ခ်င္ရာေတြ ျဖည့္ဖို႔ ေရြးခ်ယ္ႏိုင္ပါတယ္။
> Please enter the words, separated by comma. [i.e. hacker,juice,black], spaces will be removed: abcdef,apple,orange,iloveyou
ေရွ႕တစ္ပိုင္းမွာက ပရိုဂရမ္က နမူနာ ျပထားတာေတြျဖစ္ျပီး ေနာက္တစ္ပိုင္းမွာကေတာ့ ကြ်န္ေတာ္ထပ္ျဖည့္တဲ့စာေတြပါ။ လုပ္ၾကည့္ရင္ သိသြားမွာပါ

> Do you want to add special chars at the end of words? Y/[N]: y special char ေတြ ထပ္ထည့္မလားေမးလို႔ y လို႔ ေျဖလိုက္ပါတယ္။

> Do you want to add some random numbers at the end of words? Y/[N]:y ကိန္းေတြပါ ထပ္ျဖည့္ထည့္ဦးမလား ေမးလာတာပါ။ y ေပါ့။ ပိုစံုတာေပါ့ ေနာ
> Leet mode? (i.e. leet = 1337) Y/[N]: y ဘာေမးေမး y ခ်ည္းပဲျဖစ္ေနျပီ။ :P

[+] Now making a dictionary...
[+] Sorting list and removing duplicates...
[+] Saving dictionary to khit.txt, counting 46948 words.
[+] Now load your pistolero with khit.txt and shoot! Good luck!

အထက္ပါအတိုင္း ေတြ႕ျမင္ရျပီး ေနာက္တစ္လိုင္း ကူးသြားျပီဆိုရင္ေတာ့ ေသခ်ာပါျပီ။ ကြ်န္ေတာ္တို႔ ဖန္တီးတဲ့ words list က ျပီးဆံုးသြားျပီျဖစ္ပါတယ္။ တတိယေၾကာင္းနဲ႔ ေနာက္ဆံုးေၾကာင္းမွာ ေဖာ္ျပထားတဲ့ .txt ဆိုတာက
ထြက္လာတဲ့ ဖိုင္ကို ေဖာ္ျပတာမို႔လို႔ ခုေနမွာ အလြယ္တကူ ရွာဖြင့္ႏိုင္ျပီျဖစ္ပါတယ္။ အဲသည္မွာ ေျပာစရာရွိလာတာက ကြ်န္ေတာ္က khit.txt ဆိုျပီး Output ထြက္ေပမယ့္ ကိုယ္ျဖည့္သြင္းလိုက္တဲ့ ေဒတာေတြေပၚ မူတည္ျပီး ဖိုင္နာမည္ ကြာသြားမွာျဖစ္ပါတယ္။


root@kmn:~/CUPP/cupp# ls
ဖိုင္ကို ျမင္ရေအာင္လို႔ လက္ရွိ folder ထဲက ဖိုင္ ေတြကို list ထုတ္လိုက္ပါတယ္။
CHANGELOG.md  cupp.cfg  khit.txt  README.md
cupp3.py      cupp.py   LICENSE   test_cupp.py
ကြ်န္ေတာ္ေျပာခဲ့တဲ့ txt ဖိုင္ ေတြ႕တယ္ေနာ္။ khit.txt နဲ႔

root@kmn:~/CUPP/cupp# leafpad khit.txt
ဒါကေတာ့ leafpad ကို အသံုးျပဳျပီး အဲသည္ဖိုင္ကို ဖြင့္ၾကည့္လိုက္တာပါ။ အဲသည္မွာ ပါတဲ့  passsword ေတြကို ျမင္ေနရျပီေပါ့။ ဒါေတြက ခန္႔မွန္း words list ပဲေနာ္။ က်ိန္းေသ ပါမယ္လို႔ မေျပာဘူး။ ကိုယ္ျဖည့္သြင္းတြက္ခ်က္တဲ့ info နဲ႔ သူျဖည့္ထား အသံုးျပဳထားတဲ့  passwords က တူညီမႈ ရွိခဲ့ရင္ေတာ့ အဲေလာက္နဲ႔ပဲ ရျပီေပါ့ေနာ
....................
ဒီအပိုင္းကို လက္ေတြ႕ လုပ္ေဆာင္ျပီးတဲ့အခါ ေမးစရာေမးခြန္း ၂ခု ရွိလာပါလိမ့္မယ္။
အဲသည္ ဖန္တီးထားတဲ့ ဖိုင္ေလးကို ဘယ္မွာျပန္ယူရမလဲ? တစ္ဆင့္စီ ေျပာျပရရင္
................................
file ကို ဖြင့္လိုက္တာနဲ႔  CUPP ဆိုတဲ့ folder ေလးကို ေတြ႕ျမင္ရမွာျဖစ္ပါတယ္။ ဆက္ဖြင့္ရင္ cupp ေတြ႕ရမွာျဖစ္ျပီး ဆက္ဖြင့္လိုက္မယ္ဆိုရင္ေတာ့ khit.txt ကို ေတြ႕ရမွာျဖစ္ပါတယ္။ ကိုယ္လိုခ်င္တဲ့ေနရာကို ကူးပဲသြားသြား အျပီးပဲ ေရႊ႕သြားသြား ရပါျပီ။
.....................................
ဒုတိယေမးခြန္းကေတာ့
ေနာက္တစ္ႀကိမ္ words list ျပန္ထုတ္ခ်င္ရင္ ဘယ္ကေန စတင္ရမလဲ??? ဆိုတာပဲ ျဖစ္ပါလိမ့္မယ္။
Terminal ကေန သြားခ်င္ရင္ေတာ့
cd CUPP
cd cupp
python cupp.py -i
ဆိုျပီး သံုးေၾကာင္းနဲ႔  စတင္ႏိုင္ပါတယ္။ ဒါကေတာ့ ပထမ နည္းပါ။
..................................
ဒုတိယနည္းကေတာ့ ခုန .txt ဖိုင္ေလးကို ဝင္ရွာခဲ့တဲ့ေနရာ (file>> CUPP >> cupp ) ထဲထိ ဖြင့္ဝင္ပါ။ cupp folder ထဲက ေနရာလြတ္မွာ R-click ႏွိပ္ျပီး open in terminal ကို ေရြးပါ။
python cupp.py -i ဆိုတာေလးရိုက္ျပီး enter လိုက္ရင္ ရပါတယ္။ terminal ကေန ဝင္တာကေတာ့ ပိုျမန္ျပီး ပိုလြယ္ပါတယ္။
......................................
နမူနာ အေနနဲ႔ ေလ့က်င့္ၾကည့္ပါ။ info ပိုစံုေအာင္ ထည့္ႏိုင္ဖို႔အတြက္ ကိုယ့္ကိုယ္ကိုယ္ victim အေနနဲ႔ သတ္မွတ္ျပီး ကိုယ့္  password ပါ မပါ ၾကည့္ျခင္းအားျဖင့္ ကြ်န္ေတာ္တို႔ ေပးထားတဲ့  password  က လံုျခံဳမႈ ရွိ မရွိ သိႏိုင္ပါတယ္။
.................................
ခုေတာ့ ဒီေလာက္ေလးနဲ႔ပဲ ရပ္ထားရေအာင္ပါ

အဆင္ေျပပါေစဗ်ာ

ဒီ websiteကေလးမွာ တင္ထားတဲ့ အေၾကာင္းအရာေတြကို က႑အလိုက္ ၾကည့္ရႈလိုပါက ဒီစာေၾကာင္းေလးကိုႏွိပ္ျပီးလည္း ၾကည့္ႏိုင္ပါတယ္ Menu box ကေန ေရြးခ်ယ္ျပီးလည္း ၾကည့္ႏိုင္ပါတယ္ခင္ဗ်ာ


Khit Minnyo


Python2 Lesson 6



Python  သင္ခန္းစာမ်ားကို အသစ္ထည့္ထားေပးေသာ menu box ကေလးမွတစ္ဆင့္ Python for Hacker ကို ေရြးခ်ယ္ျပီး ၾကည့္ႏိုင္ပါတယ္။
အပိုင္း 4 ထိ သင္ခန္းစာေတြကို မၾကည့္ရေသးသူမ်ား ေအာက္ပါ link ကေနလည္း သြားေရာက္ ၾကည့္ရႈႏိုင္မွာျဖစ္ပါတယ္ခင္ဗ်ာ
Lesson 1 ၾကည့္ရန္ link  >> Click Here
Lesson 2 ၾကည့္ရန္ link  >> Click Here
Lesson 3 ၾကည့္ရန္ link  >> Click Here
Lesson 4 ၾကည့္ရန္ link >> Click Here
Lesson 5 ၾကည့္ရန္ link >> Click Here
........................................
အဆက္
Python Programming
Remark! Zawgyi 2009 နဲ႔ ေရးမိလိုက္တာေၾကာင့္ အခ်ိဳ႕ေသာ စာလံုးေတြကို ဖတ္ရတာ ျမင္ေနက်ပံုစံနဲ႔ မတူတာေတြ ရွိေကာင္းရွိႏိုင္ပါတယ္။ ဖတ္လို႔ေတာ့ ရပါတယ္။ Zawgyi 2009 နဲ႔ ေရးမိျပီးမွ မျပင္ခ်င္ေတာ့လို႔ ဒီတိုင္းေလးပဲ တင္လိုက္ပါတယ္။
....
Sequence and Lists
ဒီတစ္ခါေတာ့ Sequence and Lists အေျကာင္း ေလ့လာရေအာင္ပါ
lists  ဆိုတာေတာ့ Data ေတြကို စနစ္တက် စီစဥ္ထားျပီး လိုအပ္ခ်ိန္မွာ ထုတ္ယူသံုးစြဲနိုင္ဖို့ ကူညီေပးတဲ့အရာပါ။
ကဲ ေအာက္ပါအတိုင္းကို python မွာ စမ္းျကည့္ရေအာင္။
..
>>> hk_class = [ 'Aung Aung' , 'Mg Mg' , 'Aye Aye' , 'Mya Mya' , 'Hla Hla' , 'Ko Ko' ]
input 1 ပထမဆံုးစာေျကာင္းမွာ hk_class  ဆိုတာကို variable ဖြဲ့လိုက္ပါတယ္။ class ထဲမွာပါဝင္သူေတြကေတာ့ အထက္ပါ name ေတြေပါ့။
မွတ္မိဦးမယ္ထင္တယ္ဗ်။ Python မွာ အမွတ္စဥ္ေတြကို ေရတြက္ရင္ သုညက စတယ္ဆိုတာ။ မမွတ္မိရင္လည္း တစ္ေခါက္ ျပန္ေျပာျပေပးမယ္။
အထက္ပါစာေျကာင္းကို ျကည့္ရေအာင္ပါ။
'Aung Aung' , 'Mg Mg' , 'Aye Aye' , 'Mya Mya' , 'Hla Hla' , 'Ko Ko'
    ၀                 ၁           ၂               ၃              ၄            ၅   
ျမင္သာျပီထင္ပါတယ္။
python မွာ ေနာက္တစ္လိုင္း အေျဖထုတ္ျကည့္ရေအာင္
>>> hk_class [1]
 'Mg Mg'

>>> hk_class [3]
 'Mya Mya'
enter လိုက္တာနဲ့ အမွတ္စဥ္အလိုက္မွာရွိတဲ့သူေတြကိုထုတ္ျပသြားတာ ေတြ့ရပါလိမ့္မယ္။
...
ဒါမ်ိုးကို စာတန္းေတြထဲကေနလည္း ထုတ္ယူေဖာ္ျပလို့ ရပါတယ္။ ေအာက္ပါ နမူနာေလးေတြကို လုပ္ေဆာင္ျကည့္ပါ။
စာတန္းေနရာမွာ သင္ နွစ္သက္ရာစာတန္း ေျပာင္းေရးနိုင္ပါတယ္။
.....
>>> 'I am learning python lessons.' [5]
 'l' 
၅လံုးေျမာက္က l ျဖစ္တာကို ေတြ့ရပါမယ္။

>>> 'I am learning python lessons.' [9]
'n'
 ျခားထားတာကိုလည္း ထည့္ေရတြက္တယ္ဆိုတဲ့အေျကာင္း ရွင္းျပထားခဲ့တယ္ေနာ္။
ခုက variable မသံုးသြားဘဲ တိုက္ရိုက္ ယူသံုးလိုက္တာပါ။
...............
စာအရမ္းမ်ားတဲ့ အေျခအေနေတြအတြက္ ေရွ့ဘက္ေရနဲ့ ေနာက္ျပန္ေရလို့ ရွိပါေသးတယ္။ နမူနာ ေျပာျပပါ့မယ္။ ေနာက္က ျပန္ေရရင္ -1, -2, -3 လို့ ေရတြက္ပါတယ္။ -0 လို့ မရွိလို့ ျဖစ္ပါတယ္။
ေရွ့မွ ေရတြက္ပံု
'a' , 'b' , 'c' , 'd'
 0     1     2     3
ေနာက္ျပန္ေရတြက္ပံု
'a' , 'b' , 'c' , 'd'
-4    -3    -2    -1
ဆိုျပီး ျဖစ္ပါတယ္။ အထက္ပါ ဥပမာမွာ ျပန္သံုးျကည့္ရေအာင္
>>>'I am learning python lessons.' [5]
 'l'
 ေရွ့ဘက္က ေရတြက္ရင္ l က အမွတ္စဥ္ ၅ ျဖစ္ပါတယ္။
ေျခာက္လံုးေျမာက္ေပါ့။
>>> 'I am learning python lessons.' [-5]
 's'
-5ဆိုတာ ေနာက္ကေန ျပန္ေရတာပါ။
ကိုယ့္ဘာသာလည္း ေရျကည့္ေပါ့။ မမွန္တာ မရွင္းတာေတြ့ရင္ comment မွာ ေမးနိုင္ပါတယ္။
...............
ေနာက္တစ္ခု ဆက္လုပ္ျကည့္ရေအာင္
>>> c = [ 'hat' , 'heart' , 'hot' , 'horse' , 'hen' , 'hand' , 'home' ]

>>> c [-1]
 'home'

>>> c [-5]
'hot'
ဒီေလာက္ဆိုရင္ေတာ့ ရွင္းမယ္ထင္ပါတယ္။
........................
.........................
Tuple Function
ဒီတစ္ခါ ေလ့လာမယ့္ function ကေတာ့  tuple function ပါ
ေအာက္ပါ လိုင္းေလးေတြကို ipython မွာ စမ္းျကည့္ရေအာင္ ..........
Kali Linux terminal မွာ apt install ipython -y လို႔ ရိုက္လိုက္ပါ။ install ျပီးသြားလို႔ command line ေနာက္တစ္ခုေပၚလာရင္ ရပါျပီ။
Terminal မွာ ipython လို႔ ရိုက္ေခၚလိုက္ပါ။ iPython ကို သံုးတာက in & out ကို ျမင္သာေစလို႔ ျဖစ္ပါတယ္။
In ဆိုတာက Input စာေၾကာင္းျဖစ္ျပီး ထိုစာေၾကာင္းေၾကာင့္ Output ရွိလာတဲ့အခါ ခ်က္ခ်င္း Out ဆိုတဲ့ စာေၾကာင္းနဲ႔ ျပေပးမွာျဖစ္လို႔ပါပဲ။
iPython မွာ မသံုးခ်င္ရင္ေတာ့ In [   ]: ထိကို ထည့္ရိုက္စရာမလိုပါဘူး
ဥပမာ In[1]: x = 2 လို႔ ေတြ႔ရင္ x = 2 ပဲ ရိုက္ရပါမယ္။ ":" ရဲ႕ ေရွ႕ကအပိုင္းကို ရိုက္ထည့္စရာမလိုပါဘူး။
...................
In [1]: x = '1,2,3'

In [2]: x
Out[2]: '1,2,3'
........................
In [3]: y = ('1,2,3')

In [4]: y
Out[4]: '1,2,3'
........................
In [5]: z = ['1,2,3']

In [6]: z
Out[6]: ['1,2,3']
တစ္ဆက္တည္း ရိုက္သြားတာေပမယ့္ တစ္ခုစီ ကြဲျမင္ရေအာင္ လိုင္း တားေပးထားတာပါ။
အထက္ပါ ဥပမာ ၃ခုကို ေလ့လာျပီးတဲ့အခါ variable နဲ့ ဘာမွလည္း မထူးပါလားလို့ ေမးစရာရွိပါတယ္။
ဟုတ္ပါတယ္။ variable ပါပဲ။ Tuple Function မွာ variable ထက္ သာတဲ့ အခ်က္က
စာသားေတြ၊ ကိန္းဂဏန္းေတြ၊ စာသားနဲ့ ကိန္းဂဏန္း အေရာေတြ ဒါေတြတင္သာမက music, video, picture စတာေတြကိုပါ
သိုေလွာင္နိုင္စြမ္းတာပါပဲ။
နည္းနည္းေတာ့ စိတ္ဝင္စားစရာေကာင္းလာျပီထင္တယ္ေနာ္။
။။။။။။။
Tuple ဟာ မ်ိဳးစံု သိုေလွာင္နိုင္တဲ့ အားသာခ်က္ ရွိတာေပမယ့္ အားနည္းခ်က္တစ္ခုေတာ့ ရွိေနပါတယ္။
ဘာလဲဆိုရင္ သူဟာ ကိန္းေသေတြကိုသာ ပံုေသ သိုေလွာင္သြားမွာျဖစ္ျပီး သူ႔ရဲ႕ သိုေလွာင္တန္ဖိုးကို ေျပာင္းလဲလို့ မရတာပါပဲ။
variable တန္ဖိုးေတြကို ေျပာင္းလဲ အသံုးျပဳနိုင္တဲ့အေျကာင္း သင္ခဲ့ျပီးျပီေနာ္။
နည္းနည္းေလာက္ စမ္းသပ္ျကည့္ရေအာင္။ ipython မွာပဲသံုးလိုက္ပါမယ္။
............
In [1]: x = ('baby',12)

In [2]: x
Out[2]: ('baby', 12)

In [3]: x [0]
Out[3]: 'baby'

In [4]: x [1]
Out[4]: 12
variable အသြင္းတန္ဖိုးေတြကို ေရတြက္ပံု 0 က စတယ္ဆိုတာ ရွင္းျပခဲ့ျပီးျပီေနာ္။
Tuple ဟာ တန္ဖိုးေတြကို အေသပဲ မွတ္ထားတယ္။ ေနာက္ထပ္ ေျပာင္းလဲလို့ မရဘူးလို့ ေျပာခဲ့တယ္ေနာ္။
ေျပာင္းနိုင္မလား စမ္းျကည့္ရေအာင္။ ခုန ေအာက္မွာပဲ ဆက္ရိုက္ပါမယ္။
In [5]: x[1]= 20
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
in ()
----> 1 x[1]= 20

TypeError: 'tuple' object does not support item assignment
ဆိုျပီး error ျကီး ေတြ့ရပါလိမ့္မယ္။ ဟုတ္ပါတယ္။ အဲဒါ ပံုေသ တန္ဖိုးပဲ မွတ္ထားလို့ပါပဲ။
...........
သာမန္ variable မွာ ျပန္ျကည့္ရေအာင္။ သိျပီးသားေပမယ့္ တြဲျပီး ျပခ်င္လို့ပါ။
In [1]: x = 20

In [2]: x + 1
Out[2]: 21

In [3]: x = x + 5
လိုင္း 3 မွာ x ရဲ့ မူလတန္ဖိုးကို ေျပာင္းလဲလိုက္တယ္။
In [4]: x
Out[4]: 25 ဒီေနရာမွာ x တန္ဖိုးအသစ္ကို ထုတ္ျကည့္လို့ ျမင္ရပါျပီ။
ေျပာင္းလဲသတ္မွတ္လို့ ရတယ္ေနာ္။
ဒီအခ်က္ကို သတိထားလိုက္ရင္ တန္ဖိုး ကိန္းေသေတြနဲ့ ေျပာင္းလဲနိုင္တဲ့ ကိန္းရွင္ေတြကို သတိထားမိမယ္လို့ ထင္ပါတယ္။
.......
............
ေနာက္ထပ္ ဆက္ေလ့လာျကည့္ရေအာင္
n [1]: a = [ 'apple' , 50 , 'orange' , 10 , 'mango' , 12 , 'banana' , 5 ]

In [2]: a
Out[2]: ['apple', 50, 'orange', 10, 'mango', 12, 'banana', 5]

In [3]: a [3]
Out[3]: 10

In [4]: a [4]
Out[4]: 'mango'
...................
...................
ဒီေနရာအထိမွာ ေျပာစရာတစ္ခုပဲရွိပါတယ္။  tuple က သံုးရလြယ္တာမို့ ေမ့စရာမရွိေလာက္ဘူးထင္ပါတယ္။
tuple ကို သံုးတဲ့အခါ (...) , [....]  စတဲ့ လက္သည္းကြင္းနဲ့ ေထာင့္ကြင္းေတြကို အသံုးျပုနိုုင္ေပမယ့္ အမွတ္စဥ္နဲ့တြဲျပီး ကုဒ္ျပန္ေဖာ္ရာမွာေတာ့ ေထာင့္ကြင္း [1]
ပဲ သံုးရပါမယ္။
..........
..........
ေက်ာင္းတုန္းက သင္ခဲ့ရသလို လည္း အသံုးျပုနိုင္ပါေသးတယ္
variable သတ္မွတ္တဲ့ပံုစံမ်ိုးပါပဲ။ tuple ကေတာ့ ကိန္းေသေနာ္။
ျကည့္ရေအာင္
In [1]: x,y = 5,2

In [2]: x
Out[2]: 5

In [3]: y
Out[3]: 2
ဒီေလာက္ဆို ရွင္းမယ္ထင္ပါတယ္။
ကိန္းေတြ အမ်ားျကီးအတြက္လည္း မွတ္နိုင္ပါေသးတယ္။ နမူနာ -
In [1]: w,x,y,z = 2,4,6,8

In [2]: w
Out[2]: 2

In [3]: y
Out[3]: 6

In [4]: z
Out[4]: 8

In [5]: x
Out[5]: 4
..............
..............
ဒီေလာက္ဆို ခု သင္ခန္းစာေလးေတြကို အသံုးျပုတတ္ျပီလို့ ထင္ပါတယ္။
အိမ္စာ လုပ္ဖို့ပ်င္းတဲ့သူေတြအတြက္ ျပန္ေနြွးမယ့္ သင္ခန္းစာေလးတစ္ခု လုပ္ခ်င္ပါတယ္။ Maths ထဲကပဲ အစား အေျကာင္းပါ။
အစားဆိုတာနဲ့ ေခါင္းေထာင္သြားျပီလား။ :)
In [1]: a = 21

In [2]: b = 5

In [3]: a/b
Out[3]: 4

In [4]: a%b
Out[4]: 1
သိျပီးသားေလးေတြပါ။ ျပန္ရွင္းျပပါဦိးမယ္။
လိုင္း3 မွာ 21 ကို 5 နဲ့စားလို့ စားလဒ္ ၄ ရသြားပါျပီ။
လိုင္း4 မွာေတာ့ အျကြင္းရွာတဲ့ ေဖာ္ျမူလာကို သံုးထားတာမို့ ၅ ေလးလီ ၂၀ အျကြင္း ၁ ရတာျဖစ္ပါတယ္။
ကြ်န္ေတာ္တို့ ပထမ သင္ခဲ့ရတဲ့ သင္ခန္းစာေပါ့။ ခု ျပန္ေျပာရတာက အဲဒါကို ျပန္ဆက္ခ်င္လို့ပါ။
ေကာင္းျပီ။ တစ္လိုင္းစီမွာ စားလဒ္ နဲ့ အျကြင္း ဖန္တီးေနရတယ္။ အဲ ၂ခုလံုးကို တစ္ျပိုင္နက္တည္းေဖာ္မယ္။
အထက္ပါ problem ကိုပဲ တြက္ပါမယ္။ အျကြင္းေရာ စားလဒ္ေရာ တစ္ျပိုင္နက္တည္း လိုခ်င္တဲ့အခါမွာေတာ့
divmod Function ကို အသံုးျပုရပါတယ္။  နမူနာ ျကည့့္ျကည့္ပါ။ လိုင္း 5 ကေန ထပ္ဆက္မယ္ေနာ္။
......
In [5]: divmod (a,b)
Out[5]: (4, 1)
a ကိုတည္ျပီး b နဲ့ စားရင္ ရမယ့္ စားလဒ္ နဲ့ အျကြင္း ကို ေဖာ္ျပတာပါ။
..........
...........
ဒီတစ္ခါေတာ့ ေနာက္သင္ခန္းစာေလးတစ္ခုကို သြားရေအာင္ပါ။
In [1]: name = ()

In [2]: if not name:
   ...:     print "\n There is nothing in name"
   ...: raw_input ("n\ Press enter to exit.")
   ...:

 There is nothing in name
n\ Press enter to exit.
အထက္ပါ သင္ခန္းစာကိုျကည့္ရင္ name ဆိုတဲ့ variable တည္ေဆာက္ထားေပမယ့္ ဘာမွ် ထည့္မထားပါဘူး။
ဒါေျကာင့္ if not နဲ့ တြဲလိုက္ေတာ့ မွန္သြားပါတယ္။ ကြင္းထဲမွာ တစ္ခုခု ထည့္ခဲ့မယ္ဆိုရင္ေတာ့ အေျဖ မွားသြားမွာျဖစ္ပါတယ္။
In [1]: name = "Mg Mg"

In [2]: if not name:
   ...:     print "n\ There is nothing in name."
   ...: else:
   ...:     print "The name of user is"
   ...:     print name
   ...: raw_input("n\ Press enter to exit.")
The name of user is
Mg Mg
Press enter to exit.
ဆိုျပီး ျမင္ေတြ့ရမွာျဖစ္ပါတယ္။
................
ေနာက္ထပ္ ဥပမာေလးတစ္ခု ဆက္ျကည့္ရေအာင္
...................
ေအာက္ပါ ကုဒ္ေလးမ်ားကို leafpad  မွာေရးျပီး lesson6.py လို့ နာမည္တပ္ျပီး Desktop မွာ Save လိုက္ပါ။
......
khitminnyo = ()
if not khitminnyo:
print "\n There is nothing in khitminnyo."
raw_input("\n Press enter to continue......")
khitminnyo = ( "Laptop1", "Books" , "1Android" , "1000Ks7" )
print "\n Khit Minnyo has the items:", khitminnyo
raw_input("\n Press enter to exit.")
အထက္ပါ ကုဒ္လိုင္းေလးေတြ ေရးျပီးတာနဲ့ Save လိုက္ပါ
ထံုးစံအတိုင္း cd Desktop လို့ ေရးျပီး terminal ထဲ ဝင္ပါ။
python lesson6.py လို့ရိုက္ျပီး enter လိုက္ပါ။

Q.1 ဘာ error တက္လာတာကို သင္ေတြ့ရပါသလဲ။
Q.2 ဘာေျကာင့္ပါလဲ။
Q.3 သင္ ဘယ္လိုရွင္းမလဲ။
ကိုယ့္ဘာသာ ေျဖၾကည့္ၾကည့္ပါ
.......

OK
Lets go

Lesson 7 ၾကည့္ရန္  ဒီစာေၾကာင္းကို ႏွိပ္ပါ


ဒီ websiteကေလးမွာ တင္ထားတဲ့ အေၾကာင္းအရာေတြကို က႑အလိုက္ ၾကည့္ရႈလိုပါက ဒီစာေၾကာင္းေလးကိုႏွိပ္ျပီးလည္း ၾကည့္ႏိုင္ပါတယ္ Menu box ကေန ေရြးခ်ယ္ျပီးလည္း ၾကည့္ႏိုင္ပါတယ္ခင္ဗ်ာ

အားလံုး အဆင္ေျပေပ်ာ္ရႊင္ၾကပါေစ

Khit Minnyo
28 October, 2017




Thursday, October 26, 2017

Port Scanning အပိုင္း - ၁



Port Scanning အပိုင္း ၁
ဒီခါေတာ့ ကြ်န္ေတာ္တို႔ Port Scanning အေၾကာင္းကို ေဆြးေႏြးရေအာင္ခင္ဗ်။
မေဆြးေႏြးမီ ပထမဆံုး ေဖာ္ျပလိုတာက ကြ်န္ေတာ္တို႔ ခုေဆြးေႏြးေနခဲ့တဲ့  Article ေတြသည္ သင္ခန္းစာ သင္တဲ့ပံုစံ မဟုတ္ဘဲ ေဆာင္းပါးပံုစံနဲ႔သာ ေဆြးေႏြးျခင္းျဖစ္တာေၾကာင့္ နားလည္လြယ္ေအာင္လည္း ေျပာရသလို အရမ္းရွည္မွာလည္း စိုးရတာေၾကာင့္ အခ်ိဳ႕အပိုင္းေတြမွာ လစ္ဟာမႈ ရွိႏိုင္သလို သင္တန္းေတြမွာ သင္ရသလို  အစဥ္လိုက္လည္း က်မွာ မဟုတ္ပါ။ (အဆင္ေျပရာအပိုင္းကို အရင္ ေရးတာေၾကာင့္ ျဖစ္ပါတယ္)။ သို႔ေသာ္ ေခါင္းစဥ္တစ္ခုခ်င္းစီအလုိက္ သာ ျပန္လည္ စုစည္း ေလ့လာမယ္ဆိုရင္ေတာ့ သိပ္ေကာင္းမြန္တဲ့ အေၾကာင္းအရာေတြနဲ႔ General Knowledge ေတြကို ရရွိမွာျဖစ္ျပီး CEH ေျဖလိုသူေတြအတြက္လည္း အေထာက္အကူ ျပဳႏိုင္မွာ ျဖစ္ပါတယ္ ဆိုတာေလးကို ဦးစြာ ေျပာၾကားထားပါရေစ။ ဒီေဆာင္းပါးကေလးေတြသည္ Hacking နဲ႔ ပတ္သက္ျပီး နားလည္တတ္ကြ်မ္းေနသူမ်ားအတြက္ မရည္ရြယ္ပါ။ Hacking ကိုယခုမွ ေလ့လာလိုသူမ်ားႏွင့္  အခ်ိဳ႕အရာေတြကို သိျပီး အေျခခံအခ်က္ေတြကို ရွာေဖြေနသူမ်ားအတြက္ တစ္ခုခု ေလး ေပးစြမ္းႏိုင္ခ်င္တဲ့ စိတ္နဲ႔ ေရးသားျခင္း ျဖစ္ကာ လြဲေခ်ာ္မႈ တစ္စံုတစ္ရာ ရွိခဲ့ပါကလည္း ကြ်န္ေတာ္၏ လိုအပ္ခ်က္ သာ ျဖစ္ပါေၾကာင္းခင္ဗ်ာ။
.
Scanning ဆိုတာက Hacking ရဲ႕Phase 2 ျဖစ္ပါတယ္။ Phase 1 မွာ အခ်က္အလက္ေတြ စုခဲ့တယ္။ Phase 2 မွာ ထပ္ျပီး စုရဦးမယ္။ ဘယ္လိုနည္းလမ္းနဲ႔လဲဆိုရင္ေတာ့ Scanning Method နဲ႔ ျဖစ္ပါတယ္။  Scanning ပိုင္းမွာ အဓိကအားျဖင့္ အပိုင္း ႏွစ္ပိုင္း ထပ္မံ ခြဲလို႔ ရပါတယ္။ Network Scanning နဲ႔ Port Scanning ဆိုျပီး ခြဲျခားေလ့လာႏိုင္တာေၾကာင့္ တစ္ပိုင္းစီပဲ ေဆြးေႏြးသြားပါမယ္။ ခု ေဆြးေႏြးၾကမွာက Port Scanning ေပါ့။
.
မ်ားေသာအားျဖင့္ Network services & program ေတြသည္ ဘယ္ protocol ကို အသံုးျပဳေနၾကတယ္ ဆိုတာ သင္ သိပါသလား။ 
ကြ်န္ေတာ္တို႔ေတြ အမ်ားဆံုး အသံုးျပဳေနၾကတာက TCP/IP Network Protocol ျဖစ္ပါတယ္။ ၁၉၇၀ ေႏွာင္းပိုင္းေတြမွာ US ကာကြယ္ေရးဌာန အဖြဲ႔တစ္ဖြဲ႔ကေန စတင္ခဲ့တာျဖစ္ပါတယ္။ ႏွစ္ေပါင္း ၄၀ ေက်ာ္ ၾကာခဲ့ပါျပီ။ ဒီေလာက္ အိုမင္းေနတဲ့ နည္းပညာတစ္ခုကို အသံုးျပဳေနဆဲျဖစ္ျပီး အသံုးျပဳမႈ အမ်ားဆံုး ျဖစ္ေနတယ္ ဆိုတာကို သင့္အေနနဲ႔ သံသယ ရွိေကာင္း ရွိႏိုင္ပါတယ္။ (ယံုခ်င္မွ ယံုပါမယ္)။ ဒါေပမယ့္ ဒါကေတာ့ အမွန္တရား တစ္ခုပါပဲ။ မတူျခားနားတဲ့ နည္းပညာေပါင္းမ်ားစြာ ထပ္မံ ေပၚထြက္လာခဲ့ပါတယ္။ ဒါေပမယ့္ လူေတြကေတာ့ TCP/IP ကို ဆက္လက္ အသံုးျပဳေနၾကဆဲပါပဲ။
.
Service သည္ port ေတြကေန တစ္ဆင့္ listen လုပ္ပါတယ္။ client တစ္ခုသည္ service ကို contact လုပ္ႏိုင္ျပီး connection တစ္ခုကို ထူေထာင္ႏိုင္ပါတယ္။ ရည္ရြယ္ခ်က္ကေတာ့ information ေတြကို transfer လုပ္ဖို႔ နဲ႔ service ကို request ျပဳလုပ္ဖို႔ ျဖစ္ပါတယ္။
ကြ်န္ေတာ္တို႔က server တစ္ခုရဲ႕ port ေတြကို scan ဖတ္ၾကည့္လိုက္တဲ့အခါမွာ port ေတြဟာ response အေနနဲ႔ ျပန္လာပါတယ္။ ဒီလို ျပန္လာမယ္ဆိုရင္ေတာ့  အဆိုပါ port သည္ open (ပြင့္ေန) တယ္ ဆိုတာကို သိႏိုင္ျပီး service သည္ ထိုေပၚမွာ listen လုပ္ပါတယ္။ ဒါဟာ  port scanning ကို အတိုေကာက္ ဖြင့္ဆိုၾကည့္ျခင္းပါပဲ။
.
ဒီ article ထဲမွာ ကြ်န္ေတာ္တို႔အေနနဲ႔ port scanning tips ေတြ၊ Ping နဲ႔ TCP/IP stack, three-ways handshake mechanism, TCP flags, NMAP နဲ႔ TCP connect scan, half-open scan/stealth scan နဲ႔ UDP port scan စတာေတြအေၾကာင္း port scanning tool အနည္းငယ္အေၾကာင္းေတြကို ထည့္သြင္း ေဆြးေႏြးသြားဖို႔ ရွိပါတယ္ခင္ဗ်ာ။ 
.
Port ဆိုတာဟာ communication channel ေတြၾကားမွာ ခြဲျခမ္းစိတ္ျဖာႏိုင္ဖို႔အတြက္ အသံုးျပဳတဲ့ software abstraction တစ္မ်ိဳး ျဖစ္ပါတယ္။ Ports ေတြသည္  single machine ထဲမွာ ရွိေနတဲ့ specific application ေတြကို identify လုပ္ပါတယ္။ ဒါေၾကာင့္ Port Scanning ဆိုတာ port ေတြရဲ႕ current status ကို သိရွိႏိုင္ဖို႔အတြက္ port ေပါင္းမ်ားစြာကို တစ္ေနရာကေန စမ္းသပ္ လုပ္ေဆာင္တဲ့ လုပ္ေဆာင္မႈေတြကို စုေပါင္းထားထားတဲ့ a set of actions ျဖစ္ပါတယ္။
ေနာက္တစ္နည္း ေျပာရရင္ေတာ့ ကြ်န္ေတာ္တို႔ေတြက port ေတြကို ပြင့္ေနလား ပိတ္ေနလား ၾကည့္ႏိုင္ဖို႔ ႀကိဳးစားၾကတယ္။ ပြင့္ေနတယ္ဆိုရင္ ဘာအားနည္းခ်က္ေတြ ရွိမလဲ ရွာေဖြဖို႔ လိုအပ္ပါတယ္။ port တစ္ခုရဲ႕ status မွာပြင့္ေနတယ္လို႔ ေဖာ္ျပရင္ (ပြင့္ေနရင္) application သည္ listening လုပ္မွာ ျဖစ္ျပီး ထို port ကေန connection လုပ္ႏိုင္ေအာင္ ျပဳလုပ္ၾကပါတယ္။ communication channel ေတြ ၾကားမွာ distinguish လုပ္ႏိုင္ဖို႔အတြက္ Port Scanner (port scanning ျပဳလုပ္တဲ့ software) ေတြကို အသံုးျပဳႏိုင္ပါတယ္
.
ဒီေနရာမွာ နည္းနည္းေလး ထည့္သြင္းေျပာျပခ်င္တာ ရွိပါတယ္။ IP address နဲ႔ port အေၾကာင္းပါ။ IP address ကိုေတာ့ network ထဲမွာ ရွိေနတဲ့ machine ေတြကို ရွာေဖြႏိုင္ဖို႔အတြက္ အသံုးျပဳပါတယ္။ Port ေတြကိုေတာ့ ထို Machine ေတြထဲက machine တစ္ခုခ်င္းစီမွာ ရွိေနတဲ့ particular application ေတြကို ရွာေဖြႏိုင္ဖို႔ အသံုးျပဳပါတယ္။ ကြ်န္ေတာ္တို႔ရဲ႕ network ထဲက machine တစ္လံုးခ်င္းစီမွာ port တစ္ခုထက္မက မ်ားစြာ ရွိေနႏိုင္ပါတယ္။ အသံုးမ်ားဆံုး port ေတြကေတာ့ HTTP အတြက္ browser ကေန သံုးတဲ့ TCP port 80 နဲ႔ HTTPS အတြက္Browser ကေန အသံုးျပဳတဲ့ port 443 တို႔ ျဖစ္ၾကပါတယ္။
.
ဒီေန႔ေတာ့ အခ်ိန္ သိပ္မရတာေၾကာင့္ ဒီေလာက္ေလးနဲ႔ပဲ ရပ္နားပါရေစခင္ဗ်ာ
ေနာက္ေန႔မွာ Port Scanning Methods ေတြ အေၾကာင္း ဆက္ျပီး ေဆြးေႏြးသြားမွာျဖစ္ပါတယ္။
ဆက္ရန္ ...........


ကြ်န္ေတာ့္ရဲ႕ ယခု website ကေလးမွာ ေဖာ္ျပထားတဲ့ အေၾကာင္းအရာေလးေတြကို က႑အလိုက္ ၾကည့္ရႈလိုပါလ်င္ေတာ့ ဒီစာေၾကာင္းေလးကို ႏွိပ္ျပီးလည္း ေရြးခ်ယ္ ၾကည့္ရႈႏိုင္သလို  Menu Box ကေလးကေနျပီးလည္း ေရြးခ်ယ္ ၾကည့္ရႈႏိုင္ပါတယ္ခင္ဗ်ာ



အားလံုး အဆင္ေျပၾကပါေစခင္ဗ်ာ


Khit Minnyo
27 October 2017

Wednesday, October 25, 2017

Python2 Lesson 5


Python  သင္ခန္းစာမ်ားကို အသစ္ထည့္ထားေပးေသာ menu box ကေလးမွတစ္ဆင့္ Python for Hacker ကို ေရြးခ်ယ္ျပီး ၾကည့္ႏိုင္ပါတယ္။
အပိုင္း 4 ထိ သင္ခန္းစာေတြကို မၾကည့္ရေသးသူမ်ား ေအာက္ပါ link ကေနလည္း သြားေရာက္ ၾကည့္ရႈႏိုင္မွာျဖစ္ပါတယ္ခင္ဗ်ာ
Lesson 1 ၾကည့္ရန္ link  >> Click Here
Lesson 2 ၾကည့္ရန္ link  >> Click Here
Lesson 3 ၾကည့္ရန္ link  >> Click Here
Lesson 4 ၾကည့္ရန္ link >> Click Here

........................................
အဆက္
Python Programming
............................
Length Function  အေျကာင္း ။
len() နဲ့ အတိုေကာက္ ေရးရတဲ့ Length Function ဟာ အသံုးဝင္လွတဲ့ ဖန္ရွင္တစ္ခု ျဖစ္ပါတယ္။
စာလံုးေရ ေရတြက္တဲ့ word count ေတြကို len() နဲ့ အသံုးျပဳပါတယ္။ နမူနာေလး ျကည့္ရေအာင္။
>>> x = "I Love Python!"
>>> y = len(x)
>>> y       ျပီးရင္ enter ပါ
 14
အေျဖ ၁၄ ကို တန္းထုတ္ေပးသြားပါတယ္။ နည္းနည္း ရွင္းျပပါမယ္။ ပထမဆံုးအေနနဲ့ variable x ကို တည္ေဆာက္ျပီး I Love Pytnon! လို့ ေပးခဲ့လိုက္ပါတယ္။
y ကိုေတာ့ len(x) x မွာရွိတဲ့ စာလံုးအေရအတြက္လို့ သတ္မွတ္လိုက္ပါတယ္။ ဒါေျကာင့္ y တန္ဖိုး ထုတ္တဲ့အခါ စာလံုးေရကို ထည့္သြင္းထုတ္လိုက္ျခင္းပါ။
စာလံုးေရ ေရတြက္တဲ့အခါ ".." မ်က္ေတာင္ဖြင့္ပိတ္ျကားမွာရွိတဲ့ စာလံုးအေရအတြက္အားလံုးကို ယူပါတယ္။ space ျခားလည္း ထည့္တြက္ပါတယ္။
...............
...............
စာေမးပြဲေလးတစ္ခု စစ္ခ်င္ပါတယ္။ ကိုယ့္ဘာသာ အမွတ္ေပးရမယ့္ စာေမးပြဲေပါ့။ မစစ္ခင္
R1. အထက္ပါ သင္ခန္းစာတိုေလးေတြကို ေပါင္းစပ္ျပီး မိမိဘာသာ ေလ့က်င့္ခဲ့ဖူးပါသလား။ ေမးခ်င္ပါတယ္။
နမူနာအေနနဲ့ သင္ခန္းစာထဲ မပါေပမယ့္ ကြ်န္ေတ္ာ ေလ့လာခဲ့စဥ္က ေပါင္းစပ္ ေလ့က်င့္ဖူးတာေလးတစ္ခု မွတ္မွတ္ရရ ထည့္ေပးလိုက္ပါတယ္။
အထက္ပါ len() ကိုပဲ ေပါင္းစပ္ျပပါ့မယ္။
>>> x = raw_input("Type Here:")
Type Here:Khit Minnyo
နာမည္စာလံုးေတြက ကြ်န္ေတာ္ရိုက္ထည့္ရတာပါ။ ဒီေနရာမွာ နွစ္သက္ရာေျပာင္းေရးနိုင္ပါတယ္။
>>> y = len(x)
>>> y
 11
ကြ်န္ေတာ္ကေတာ့ ဥပမာေလးေပးခဲ့ပါျပီ။ len()ကို ေလ့လာကတည္းက ဘာနဲ့ေပါင္းစပ္ရမလဲ ေတြးထားပါတယ္။ ဒါေျကာင့္ len() အေျကာင္း သိဆိုပဲ
အထက္ပါအတိုင္း raw_input နဲ့ စမ္းသပ္လိုက္ပါတယ္။ class  ထဲက fri ေတြလည္း အဲလုိ ေပါင္းစပ္ ေလ့လာဖူးပါသလားခင္ဗ်ာ။
..........
..........
စာေမးပြဲေမးခြန္း စပါျပီ။ ကိုယ့္ဘာသာ အမွတ္ေပးရမွာေနာ္။
Q1. Lessons အမွတ္စဥ္အလိုက္ သင္ခန္းစာအားလံုးကို တစ္ခုမက်န္ လုပ္ေဆာင္ဖူးပါသလား။
     လုပ္ေဆာင္ဖူးပါက 1 မွတ္
Q2. lessons မ်ားအားလံုးကို ျကည့္ျပီး လုပ္ေဆာင္ရံုမက ျပီးဆံုးသည့္အခါ ေနာက္တစ္ျကိမ္ ျပန္မျကည့္ဘဲ အလြတ္ လုပ္ေဆာင္ဖူးပါသလား။
     လုပ္ေဆာင္ဖူးပါက 2 မွတ္
Q3. Lessons မ်ားကို အထက္တြင္ နမူနာျပခဲ့သလို R1.သင္ခန္းစာေတြကို ေပါင္းစပ္ျပီး မိမိဘာသာ ဖန္တီးဖူးပါသလား။
    လုပ္ေဆာင္ဖူးပါက 3 မွတ္
Q4. အားလပ္ရက္မ်ားတြင္ ျပန္လည္ေလ့က်င့္ခဲ့ဖူးပါသလား။
     လုပ္ေဆာင္ခဲ့ဖူးပါက 2 မွတ္
Q5. သင္ခန္းစာ အားလံုး လုပ္ေဆာင္ရင္း ပ်င္းျပီး မလုပ္ခ်င္ ျဖစ္ဖူးပါသလား။ စိတ္ပါဝင္စားစြာ လုပ္ေဆာင္ခဲ့ပါက 2 မွတ္။ စိတ္မပါေသာ္လည္း မိမိေလ့လာမွု အက်ိုးရွိေစဖို့
   အာရံုစိုက္ လုပ္ေဆာင္ပါက 2 မွတ္။ အခ်ို့ သင္ခန္းစာေတြကို ဖတ္ရံုပဲ ဖတ္ျကည့္ျပီး မလုပ္ေဆာင္ဘဲ ခ်န္ခဲ့ပါက 1 မွတ္။
................
စာေမးပြဲေမးခြန္းေလးေတြေတာ့ ျပီးပါျပီ။ မိမိကိုယ္ကိုယ္ မိမိသာ အသိဆံုးမို့ အမွန္အတိုင္း အမွတ္ကေလးေတြကို comment မွာ ေျပာျပခဲ့ေပးပါဦး။
.........
သင္ခန္းစာပိုင္းကို ထပ္ဆက္ရေအာင္ပါ။
len() function ကို မွတ္မိေသးတယ္မို့လား။ မမွတ္မိေသးရင္လည္း ျပန္ေျပာျပမယ္။
>>> x = "I Love Python!"
>>> y = len(x)
>>> y
 14
ဒီပံုစံမ်ိုးကိုပဲ word count အတြက္ပဲ အျမန္ အသံုးလိုတဲ့အခါ တိုက္ရိုက္ သံုးလို့ ရပါေသးတယ္။
>>> x = len("What is your name?")
>>> x
>>> 18
ေရတြက္မယ့္ စာတန္းကို len() ထဲ တိုက္ရိုက္ ထည့္သြင္းလုိက္တာပါ။
..........
...........
python file ေလးေတြ ေရးျပီး save ဖို့ အေျကာင္း ဖြင့္သံုးဖို့အေျကာင္း နည္းနည္း သင္ပါမယ္။
နည္းနည္းဆိုေပမယ့္ မ်ားမ်ား မွတ္ထားျပီး ေပါင္းစပ္ ေလ့လာဖို့ကေတာ့ မိမိဘာသာ ျကိုးစားရမွာေနာ္ :)
leafpad ကိုဖြင့္ပါ။ (Terminal ကေန leafpad လို့ ရိုက္ျပီး enter ရင္လည္း ရပါတယ္။)
leafpad ကေလး ပြင့္လာျပီဆိုရင္ေတာ့ ေအာက္ပါလိုင္းကေလးေတြကို ရိုက္ထည့္လိုက္ပါ။
name = raw_input("Enter your name.")
print name
ျပီးတဲ့အခါ lesson1.py ဆိုတဲ့ အမည္နဲ့  desktop မွာ သိမ္းလိုက္ပါ။ Save ျပီးတဲ့အခါ terminal အသစ္ဖြင့္ျပီး
cd Desktop
python lesson1.py ဆိုျပီး ဖြင့္ျကည့္တဲ့အခါ  Enter your name ဆိုျပီး ျမင္ရပါမယ္။ နာမည္တစ္ခုခု ရိုက္ထည့္လိုက္ပါ။
ကိုယ္ထည့္လိုက္တဲ့ နာမည္ကို print ျပေပးမွာျဖစ္ပါတယ္။
ဒါကေတာ့ ကြ်န္ေတာ္တို့က linux မွာ run ျကည့္လိုက္လို့ပါ။ အဲသည္ဖိုင္ကိုပဲ ေကာ္ပီယူ။ Windows ဘက္ကေန ဝင္လို့ရတဲ့ ေနရာတစ္ခုခုမွာ
memory stick (or) other location  တစ္ခုခုေရြးျပီး ကူးထားလိုက္ပါ။ windows ဘက္ကေန ဝင္ျကည့္ျပီး Double Click နွိပ္ျပီး RUN
ျကည့္ရင္ ဘာထူးျခားတာ ေတြ့ရပါမလဲ??????????
linux terminal မွာ RUN ေနရင္းနဲ့လည္း သတိထားလို့ရပါတယ္။ ဘယ္လိုလဲဆိုရင္ နာမည္ျဖည့္သြင္းျပီး enter လိုက္တာနဲ့ ျဖည့္သြင္းလိုက္တဲ့ နာမည္ကို
ပရင့္ထုတ္ျပျပီး ခ်က္ခ်င္းဆိုသလို ေနာက္တစ္လိုင္း ကူးသြားတာကို ေတြ့ရမွာပါ။
root@kmn:~/Desktop# python lesson1.py
Enter your name.khitminnyo
khitminnyo
root@kmn:~/Desktop# ေနာက္ထပ္ command line ကို ေရာက္သြားတာပါ။ ခုန စမ္းခဲ့တဲ့ lesson1.py ျပီးသြားျပီဆိုတဲ့သေဘာ။
windows ဘက္မွာဆိုရင္ေတာ့.........
နာမည္ ရိုက္ထည့္ျပီးတာနဲ့ cmd ပါ ေပ်ာက္သြား  (program  ပိတ္သြား) တာကို ေတြ့ရပါလိမ့္မယ္။
အဲဒါ ဘာေျကာင့္လဲဆိုရင္ေတာ့ program ကို ခဏ ရပ္ေပးမယ့္ ကုဒ္ မထည့္ထားလို့ ျဖစ္ပါတယ္။
ပရိုဂရမ္ကို ခဏ ရပ္တန့္ေနေအာင္ ကုဒ္ ထပ္ျဖည့္ဖို့ လိုပါျပီ။ ခုန lesson1.py ကိုပဲ leafpad  ကေန ျပန္ဖြင့္ပါ။
မဖြင့္တတ္ဘူးလား။ Desktop က lesson1.pyဆိုတဲ့ဖိုင္ဆီသြား Right-click နွိပ္။ Open with text editor ဆိုျပီး ေတြ့လိမ့္မယ္။ ထိပ္ဆံုးမွာပဲ။
ဖြင့္ျပီးသြားရင္ ခုန စာ ၂ေျကာင္းေအာက္မွာ ေနာက္တစ္ေျကာင္း ထပ္ျဖည့္ျကည့္ပါ။
name = raw_input("Enter your name.")
print name
raw_input("Press enter.")
ခုေတာ့ ဒီလိုျဖစ္သြားပါလိမ့္မယ္။ ဘာထူးျခားသြားလဲျကည့္ျကည့္။
terminal ကေန run ရင္လည္း Press enter တစ္လိုင္း ထည့္ထားတဲ့အတြက္ နာမည္ ရိုက္သြင္းလိုက္ရံုနဲ့ ေနာက္တစ္လိုင္း ေရာက္မသြားသလို windows ဘက္ေန run ရင္လည္း press enter ဆိုတဲ့တစ္လိုင္း က်န္ခဲ့မွာျဖစ္ျပီး enter နွိပ္လိုက္ပါမွ program ရပါပါမယ္။
..............
..............
>>> name = raw_input("Enter your name:")
Enter your name:KhitMinnyo

>>> print "\n The length of your name is", len (name)
 The length of your name is 10

>>> raw_input ("Press Enter")
Press Enter
တစ္လိုင္းစီအတြက္ အေျဖပါ ထုတ္ထားတာ ေတြ့ရပါမယ္။
အထက္ပါ နမူနာကိုပဲ leafpad မွာ ရိုက္ျကည့္ျပီး Save လိုက္ပါ။ ရိုက္တဲ့အခါ အနီေရာင္နဲ႔ ျပထားတာေတြက output မို႔ ထည့္မရိုက္ရဘူးေနာ္။ အထက္ပါ နမူနာကို ရိုက္တဲ့အခါ ဒီအတိုင္းျဖစ္ေနပါမယ္။
name = raw_input("Enter your name:")
print "\n The length of your name is", len (name)
raw_input ("Press Enter")
ဒီတိုင္းရိုက္ျပီးရင္ save ပါ။ နာမည္က lesson2.py ေပါ့။ ခုနဖိုင္နဲ့ မတူေအာင္ Desktop မွာပဲ ထားထားလိုက္။
ကဲ စျပီေနာ္
.......
name = raw_input("Enter your name:")
print "\n The length of your name is", len (name)
raw_input ("Press Enter")
ဒါကေတာ့ leafpad မွာ ရိုက္ရတဲ့ line code ေတြပါ။ Save တဲ့အခါ lesson2.py အမည္နဲ့ Save လိုက္ပါတယ္။ ျပီးရင္ terminal ဖြင့္ျပီး ေအာက္ပါအတိုင္း RUN လိုက္ပါတယ္။
....
root@kmn:~# cd Desktop
root@kmn:~/Desktop# python lesson2.py
Enter your name:Khit Minnyo နာမည္ေရးျပီး enter လိုက္ပါတယ္

 The length of your name is 11  စာလံုးေရ အေရအတြက္ကို ထုတ္ျပလာပါတယ္။
Press Enter ပရိုဂရမ္ ခ်က္ခ်င္း ပိတ္မသြားေအာင္ ထားထားတဲ့ ကုဒ္ပါ
root@kmn:~/Desktop# Enter နွိပ္လိုက္လို့ ေနာက္တစ္လိုင္း ကူးသြားပါတယ္။
...............
...............
ဖိုင္ေတြ မြမသြားေအာင္ ဒုတိယ lesson2.py ကိုပဲ Edit ျပန္လုပ္ျပီး ထပ္ျဖည့္ျကည့္ရေအာင္။
ခုန ေျပာခဲ့တဲ့အတိုင္းပဲ ဖိုင္ကို R-click နွိပ္ျပီး Open with text editor နဲ့ပဲ ဖြင့္ျကည့္လိုက္ပါ။
ေအာက္ဆံုးေျကာင္းမေရာက္ခင္ ထပ္ျဖည့္မွာမို့ ဒုတိယေျကာင္းေနာက္ဆံုးမွာ ကာဆာခ်ျပီး enter ဆင္းလိုက္ပါ။
ျဖည့္ေရးျပီးသားပံုစံကိုပဲ တစ္ခါတည္း ေျပာေတာ့မယ္ေနာ္။
...
name = raw_input("Enter your name:")
print "\n The length of your name is", len (name)
if "n" in name:
    print "There is 'n' letter in your name."
else:
    print "There is no 'n' letter in your name."
raw_input ("Press Enter")
ျပီးရင္ ဖိုင္ကို Save လိုက္ျပီး Terminal  ကေန  RUN လိုက္ပါဦး။
n နဲ့ ရွာခိုင္းထားတာမို့ n ပါတဲ့ နာမည္နဲ့ မပါတဲ့ နာမည္ ၂မ်ိုးနဲ့ စမ္းျကည့္ပါ။ နမူနာကို ေအာက္မွာ ေဖာ္ျပထားပါတယ္။
root@kmn:~# cd Desktop
root@kmn:~/Desktop# python lesson2.py
Enter your name:Khit Minnyo

 The length of your name is 11
There is 'n' letter in your name.
Press Enter
ပထမတစ္ျကိမ္ ျဖည့္သြင္းတဲ့ နာမည္မွာ  n ပါတဲ့အတြက္ အေျဖပါ။ terminal မွာပဲ ေနာက္တစ္ျကိမ္ ျပန္ run ပါ။
root@kmn:~/Desktop# python lesson2.py
Enter your name:Mg Mg

 The length of your name is 5
There is no 'n' letter in your name.
Press Enter
ဒုတိယ ျဖည့္သြင္းတဲ့ နာမည္မွာ n မပါပါဘူး။
n ပါ မပါဆိုတာကို if else နဲ့ ေရးထားတာပါ။ if else ကို သိျပီးျပီေနာ္။
..........
..........
Python သင္တာ ၅ပိုင္းေတာ့ ရွိလာျပီ။ ဘာ ပရိုဂရမ္ေတြကို ေရးနိုင္ေနျပီလဲ။။။။။။။
မေရးတတ္ေသးဘူးလို့ မေျဖပါနဲ့။ ဒီလိုေျဖရင္ သင္ခန္းစာကို လက္ေတြ့ အသံုးမခ်ဘူးလို့ အေျဖ သက္ေရာက္ပါတယ္။ ခုေလာက္ပဲ သိတဲ့အေနအထားနဲ့တင္ program ေတြ ေရးလို့ရေနပါျပီ။
ျကီးျကီးက်ယ္က်ယ္ေျပာတယ္လို့ ထင္ေနျပီလား????
.........
ေကာင္းျပီ ပရိုဂရမ္ကေလးတစ္ခု ေရးရေအာင္ပါ။ ေထာင့္မွန္စတုဂံ တစ္ခုရဲ့ ဧရိယာ ရွာတဲ့ ပရိုဂရမ္တစ္ခုေပါ့။
:) ေက်ာင္းမွာ သင္ခဲ့ဖူးတဲ့ထဲက လြယ္တာေလးပဲ နမူနာျပတာပါ။
သူ့ရဲ့ ေဖာ္ျမူလာေလးက
ဧရိယာ = အလ်ား x အနံ
ဟုတ္ပါတယ္ေနာ္ :)
lenght = x, width =y, area = z လို့ ထားျပီး နမူနာ ေရးျပမယ္။ ျပန္လုပ္ရင္ ထားခ်င္တဲ့စာလံုးထားေနာ္ 
ေအာက္ပါ ဖိုင္ကေလးကို leafpad မွာ ေရးျပီး Desktop မွာပဲ  area.py ဆိုျပီး သိမ္းလိုက္ပါ။
..........
print "Area of the rectangle in square cm"
x = input("Enter the length of the ractangle, in cm.")
y = input("Enter the width of the ractangle, in cm.")
z = x * y
print z
print "square cm"
raw_input("Press Enter to exit")
..........
ျပီးရင္ Terminal ကေန
root@kmn:~# cd Desktop
root@kmn:~/Desktop# python area.py ဆိုျပီး ဖြင့္လိုက္ပါတယ္။
Area of the rectangle in square cm ဒါကေတာ့ ပရိုဂရမ္ ေခါင္းစဥ္အေနနဲ့ ေဖာ္ထားတာပါ။
Enter the length of the ractangle, in cm.12 (၁၂က ကြ်န္ေတာ္ျဖည့္လိုက္တာ)
Enter the width of the ractangle, in cm.5 (ဒါေရာပဲေပါ့)
60    အလ်ား x အနံမို့ ၁၂ ငါးလီ ေျခာက္ဆယ္ အေျဖ ရပါျပီ
square cm   ဧရိယာမို့ ယူနစ္ ၂ထပ္ ထြက္သြားပါတယ္။ အဆင္ေျပရဲ့လားခင္ဗ်
........
.........
ကြ်န္ေတာ္တို့ ဒါေလးေတြ ဖန္တီးျကည့္ ေရးျကည့္တာ သင္ခန္းစာထဲ မသင္ခဲ့ရဘူးခင္ဗ်။
ေလ့လာနည္းေတြထဲမွာ ေဖာ္ျပခဲ့သလိုပဲ သင္ခန္းစာျကည့္ လိုက္လုပ္ ရေအာင္လုပ္ ျပန္မျကည့္ရေအာင္လုပ္ ျပီးရင္ တစ္ခုနဲ့တစ္ခု ဆက္စပ္စဥ္းစား။
ခုလို ပရိုဂရမ္ေလးေတြကို လြယ္လြယ္ေရးနိုင္ေနျပီ။ ထပ္ျပီး ေတြးျကည့္နိုင္ရင္ ဒီ့ထက္ေကာင္းတာေလးေတြေတာင္ ေရးနိုင္လာပါလိမ့္မယ္ခင္ဗ်။
ဒါက ဥပမာေပးရံုေလးပါ။
.............
..............
ဒီေန့ေတာ့ ဒီေလာက္နဲ့ပဲ ေတာ္ေလာက္ျပီခင္ဗ်
ေလ့က်င့္ဖို့နဲ့ တစ္ခုခု ဆက္စပ္ စဥ္းစားဖို့အတြက္ဆို အခ်ိန္ ၂နာရီေက်ာ္ လုပ္ရေတာ့မယ္။
နည္းနည္းေတာ့ အားတင္းထားမွ :)

Lesson 6 ၾကည့္ရန္ ဒီေနရာကို ႏွိပ္ျပီးသြားပါ
.........................................

ဒီ websiteကေလးမွာ တင္ထားတဲ့ အေၾကာင္းအရာေတြကို က႑အလိုက္ ၾကည့္ရႈလိုပါက ဒီစာေၾကာင္းေလးကိုႏွိပ္ျပီးလည္း ၾကည့္ႏိုင္ပါတယ္ Menu box ကေန ေရြးခ်ယ္ျပီးလည္း ၾကည့္ႏိုင္ပါတယ္ခင္ဗ်ာ


အားလံုး အဆင္ေျပေပ်ာ္ရႊင္ၾကပါေစ

Khit Minnyo
25 October, 2017






Tuesday, October 24, 2017

Android Phone မ်ားႏွင့္ ကိုယ္ေရးအခ်က္အလက္ ေပါက္ၾကားမႈမ်ား


(ပံုေလး ၅ပံုနဲ႔ နည္းနည္းေလး စကားေျပာပါရေစ)
.....................................
တစ္ပံုစီ caption မေရးေတာ့ဘူးေနာ္။ ဒီေနရာမွာ ပဲ ေျပာျပေတာ့မယ္။ messenger မွာ စာဝင္လာပါတယ္
"ကြၽန္ေတာ့္ ဖုန္းေလး အရမ္းေလးေနတယ္။ fb မွာ ေၾကာ္ျငာေတြ႔လို႔ အဲဒီ app ကလည္း ကြၽန္ေတာ့္ဖုန္းအမ်ိဳးအစားနဲ႔ တူလို႔။ အဲဒါေလး သံုးသင့္သလား" တဲ့
သူေျပာတာကို သိလိုက္လို႔ ကြၽန္ေတာ္လည္း အဲဒီေၾကာ္ျငာကို ခဏခဏ ေတြ႔ေနမိရာက view ေတြ သိပ္မ်ားလာတာေၾကာင့္ fri ေတြထဲက တကယ္ မသိတဲ့သူေတြကို ဒီ post ေလးနဲ႔ ေျပာျပခ်င္ပါတယ္။ ဒီတစ္ခုမွမဟုတ္ပါဘူး။ ေနာက္ဟာေတြပါ မိမိဘာသာ ဆင္ျခင္ႏိုင္ဖို႔ပါ။
.....................................

ပထမဆံုးပံုက ကြၽန္ေတာ့္ဆီမွာ ေပၚေနတဲ့ ေၾကာ္ျငာဗ်

ဒုတိယပံုက အျခားသူေတြဆီမွာလည္း သူတို႔ဖုန္း brand ေတာင္မဟုတ္ဘူးေနာ္
ဖုန္း brand ေရာ model နံပါတ္ အတိအက် ထည့္ေၾကာ္ျငာတာ။ ဥပမာ Mi Max နဲ႔ Facebook သံုးတဲ့ ကြၽန္ေတာ့္ထံ Mi Max only လို႔ ေၾကာ္ျငာလာမယ္။ Samsung Galaxy Note 8 နဲ႔ fb သံုးသူေတြအတြက္ Galaxy Note 8 only လို႔ ေၾကာ္ျငာဝင္မယ္။ (အတိအက် ေၾကာ္ျငာျပႏိုင္တာက fb သည္ ကြၽန္ေတာ္တို႔ login ဝင္ေရာက္သံုးေနတဲ့ device ကို အတိအက် မွတ္တမ္းတင္ထားလို႔ ျဖစ္ပါတယ္)။ ဒီေလာက္ဆို ဘယ္ဖုန္းေတြကို ဘယ္လိုဝင္ေၾကာ္ျငာမလဲဆိုတာ သိႏိုင္ပါၿပီ။
.
ဆက္ရေအာင္ပါ။
Install now ကို ႏွိပ္လိုက္ေတာ့ Play Store ကို တိုက္႐ိုက္ ေရာက္သြားတဲ့အတြက္ User ေတြရဲ႕ Trust တစ္ခု ရ သြားပါတယ္။ (PlayStore ကေန ရတဲ့ software မွ စိတ္ခ်ရတယ္ဆိုတဲ့ ဂ်င္း အႀကီးႀကီး မိထားတာကိုး)
PlayStore မွာ developer account ပိုင္႐ွင္ ($ ဝင္ေၾကးသြင္းႏိုင္ရင္ ဘယ္သူမဆို) application တင္လို႔ရပါတယ္။ Google က စစ္ေဆးတယ္ဆိုေပမယ့္ Device damage ျဖစ္ေစတဲ့ app ေတြကိုသာ စစ္ေဆးပယ္ဖ်က္ေပးတာပါ။ Sypware ေတြကိုေတာ့ စစ္ေဆးပယ္ဖ်က္ျခင္း မ႐ွိပါဘူး။
ဒီေတာ့ PlayStore က ရတာဆို စိတ္ခ်ရတယ္ဆိုတဲ့ ဂ်င္း မိထားသူေတြက ဆြဲေတာ့တာပဲေပါ့။ Samsung S series မဟုတ္တဲ့ ဖုန္းအေတာ္မ်ားမ်ား ပူၾကတာပါပဲ။ ပူရင္ ေလးတာပါပဲ။ ဒီေတာ့ သူက ေပါ့တယ္ ႐ွင္းတယ္ဆိုတာကို လိုခ်င္တာ မဆန္းပါဘူး။ ပိုဆိုးတာက Playstore က ရတယ္ဆိုတိုင္း မယံုတတ္ေသးတဲ့ အေတာ္အသင့္ သိသူေတြက app တစ္ခုကို ဝင္ၾကည့္ရင္ review ေလးေတြ ၾကည့္ေလ့႐ွိၾကတယ္။

 ဒီ ပံုက review ေတြကို ၾကည့္လိုက္ရင္ ခ်က္ခ်င္းေတာင္ သြင္းမိၾကမွာပါပဲ။ ေကာင္းတယ္ဆိုတာက ၉၉% ေလာက္ ေထာက္ခံထားတာ ေတြ႔ရမွာပါ။ (acc တစ္ခု႐ွိရင္ ေထာက္ခံခ်က္ တစ္ခု ေရးႏိုင္ပါတယ္)
........................
Install ဆိုတာေလး ႏွိပ္မိၿပီဆိုပါစို႔။ google warning ေလး အရင္လာတယ္ဗ်။ ဒီ app က ဘာ Access ေတြ ရယူမယ္ဆိုတာ ေဖာ္ျပထားတာ။ 

ပံုမွာ ၾကည့္ၾကည့္ဗ်ာ။ မ်ားလိုက္တဲ့ Access ေတြ ကို ေတြ႔ရမယ္။
................
ပထမဆံုးအခ်က္အေနနဲ႔ ေၾကာ္ျငာသည္ model တစ္ခုခ်င္းစီကို ခြဲေၾကာ္ျငာတယ္။ model တစ္မ်ိဳးတည္းအတြက္ သီးသန္႔ app ဆိုတာ မူလ ထုတ္လုပ္တဲ့ ကုမၸဏီက လိုအပ္လို႔ လုပ္ေပးတာမ်ိဳးက လြဲၿပီး သီးသန္႔မ႐ွိပါဘူး။ ဒါ ပထမဆံုး မသကၤာစရာ အခ်က္ပါ။
ဒုတီယအခ်က္က Access ေတာင္းခံတဲ့ေနရာ။ 

 အဲသည္ေနရာမွာ စၿပီး သတိထားႏိုင္ပါတယ္။ ကြၽန္ေတာ္တို႔ ခု ထည့္သြင္းမယ့္ app က RAM memory ေတြကို ႐ွင္းေပးမယ္။ ေနာက္ကြယ္ run ေနတာေတြကို ပိတ္ေပးၿပီး ဖုန္းကို အပူသက္သာေအာင္ ဖန္တီးေပးမယ္။ ဒါေလးပါပဲ။ ဒါကိုလုပ္ေဆာင္ဖို႔ အင္တာနက္ မလိုပါဘူး။ ဓာတ္ပံုဖိုင္ေတြကို ၾကည့္ခြင့္ေပးစရာမလိုပါဘူး။ file manager access ရယူၿပီး file ေတြ ႐ွင္းေပးမယ္ဆိုတာ လက္ခံေလာက္စရာ႐ွိေပမယ့္ Access ေတြထဲမွာ camera (သူ႔ကို ကင္မရာသံုးခြင့္ျပဳရေအာင္ သူ႔ app ကိုသံုးၿပီး ဓာတ္ပံု႐ိုက္မွာမွမဟုတ္တာ)
ေနာက္ audio device ကေန အသံဖမ္းနားေထာင္ခြင့္။ contacts (သူနဲ႔ဘာဆိုင္လို႔လဲ)
SMS (ဒါလည္း personal) ပဲ ဒီေတာ့ ဒီ Application သည္ မ႐ိုးသားဘူး လို႔ ဆိုလိုရာ ေရာက္ပါတယ္။ ဒါက သာမန္အေတြးပါ။
..................
အဲထက္ ပိုေတြးရင္
၁။ သူတို႔ေတြဟာ ကြၽန္ေတာ္တို႔ ဖုန္းထဲက ဓာတ္ပံု နဲ႔ ဗီဒီယိုေတြကို ရယူဖို႔ႀကိဳးစားတယ္
၂။ contact ေတြနဲ႔ အေရးႀကီးတာေတြကို သူတို႔ server ဆီ ပို႔ေစတယ္
၃။ သူတို႔အတြက္ အက်ိဳးအျမတ္မရႏိုင္မယ့္သူဆိုရင္ အဲဒါေတြထက္ ေၾကာ္ျငာေတြ ကြၽန္ေတာ္တို႔ကို ျပမယ္
၄။ ကြၽန္ေတာ္တို႔ရဲ႕ microphone နဲ႔ camera access ကို သံုးၿပီး ကြၽန္ေတာ္တို႔ ေျပာသမွ် ၾကားေနရမယ္။ ကြၽန္ေတာ္တို႔ သြားသမွ် ျမင္ေနရမယ္။ အဲလိုလုပ္ႏိုင္ဖို႔လည္း ကြၽန္ေတာ္တို႔ကိုယ္တိုင္ (မသိလိုက္ဘဲ) ခြင့္ျပဳေပးခဲ့မိၿပီး ျဖစ္ပါတယ္။
...............
နည္းနည္းေလာက္ အက်ဥ္းခ်ဳပ္ေျပာျပတာေတာင္ ေတာ္ေတာ္႐ွည္သြားၿပီ။ ေနာက္ဆံုးေျပာလိုတာက အယံုမလြယ္ပါနဲ႔ စဥ္းစားပါ လို႔သာ
.............
အားလံုး ေဘးကင္းရန္ကြာၾကပါေစ
ကိုယ္ေရးအခ်က္အလက္ေတြ ေပါက္ၾကားျခင္း ကင္းေဝးၾကပါေစ
(သင့္ fri ေတြ သိေစခ်င္ရင္ လြတ္လပ္စြာ Share ႏိုင္ပါတယ္)
Khit Minnyo
25, October,  2017

Footprinting အပိုင္း ၅


အပိုင္း ၁ မဖတ္ရေသးသူမ်ားအတြက္
အပိုင္း ၂ မဖတ္ရေသးသူမ်ားအတြက္
အပိုင္း ၃ မဖတ္ရေသးသူမ်ားအတြက္
အပိုင္း ၄ မဖတ္ရေသးသူမ်ားအတြက္
...................................................
အပိုင္း ၄ မွ အဆက္

Footprinting with Google
ကြ်န္ေတာ္တို႔ေတြ အားလံုးပဲ Google ကို Search Engine တစ္ခု အေနနဲ႔ သိထားၾကပါတယ္။ ကြ်န္ေတာ္တို႔လိုခ်င္တဲ့ အေၾကာင္းအရာေတြ၊ ပံုေတြ၊ သီခ်င္းေတြ၊ ဗီဒီယိုေတြနဲ႔ software ေတြကို ရွာေဖြဖို႔အတြက္ ကြ်န္ေတာ္တို႔ေတြသည္ Google ကို အသံုးျပဳၾကေလ့ရွိပါတယ္။ ဒါ့ျပင္ Google သည္ Gmail  နဲ႔ Youtube လို လူသိမ်ားတဲ့ ဝန္ေဆာင္မႈေတြကိုလည္း အခမဲ့ ခြင့္ျပဳထားတယ္ လို႔ ကြ်န္ေတာ္တုိ႔ သိျပီး ျဖစ္ပါတယ္။ 
ဒါေပမယ့္ ကြ်န္ေတာ္တို႔ အေနနဲ႔ မသိတာေသာ္လည္းေကာင္း၊ ေမ့ေနတာေသာ္လည္းေကာင္း၊ အနည္းငယ္ပဲ သိတာေသာ္လည္းေကာင္း အေျခတစ္ရပ္ရပ္နဲ႔ သတိထားဖို႔လိုေနတဲ့ အေၾကာင္းေလးတစ္ခုကို မျမင္သိၾကဘူးလို႔ ထင္ပါတယ္။ ဘာလဲဆိုေတာ့ Hacking လုပ္ရာမွာ Google ကို အသံုးျပဳျခင္းပါ။ ကြ်န္ေတာ္ထင္တယ္ လူအေတာ္မ်ားမ်ားက Google ကို ပညာသင္ၾကားဖို႔ လိုအပ္တဲ့ အခ်က္အလက္ေတြကို ရွာေဖြတဲ့ေနရာမွာ သံုးေလ့ရွိၾကေပမယ့္ Hacking ျပဳလုပ္ရာမွာ Google ကို အသံုးျပဳႏိုင္တယ္ဆိုတာကို (လူအေတာ္မ်ားမ်ားက) မသိၾကပါဘူး။ 
ေမးခြန္းေလး တစ္ခု ေမးခ်င္ပါတယ္။
Google သည္ ကြ်န္ေတာ္တို႔နဲ႔ ကြ်န္ေတာ္တို႔ရဲ႕ browsing habit ေတြ၊ preference ေတြ စတဲ့ information ေတြကို စုေဆာင္းထားတယ္ဆိုတာ သင္ သိပါသလား။
အထက္ပါ ေမးခြန္းကို လူအေတာ္မ်ားမ်ားကို ေမးၾကည့္ရင္ မသိဘူးလို႔ ေျဖၾကတာ ေတြ႔ရပါတယ္။ ဟုတ္ကဲ့။ ကြ်န္ေတာ္ ေျပာခဲ့သလိုပါပဲ Google သည္ ကြ်န္ေတာ္တို႔ရဲ႕ information ေတြကို သိမ္းဆည္းထားပါတယ္။ ျပီးေတာ့ ကြ်န္ေတာ္တို႔နဲ႔ သင့္ေတာ္မယ့္ Advertisement ေတြကို ထုတ္ေဖာ္ျပေလ့ရွိပါတယ္။ တစ္ခုခုကို ကြ်န္ေတာ္တို႔ ရွာေဖြတဲ့အခါ Advertisement တစ္ခုကို အရင္ဆံုး ျပေလ့ရွိပါတယ္။
.............
Google Hacking သည္ search query ေတြကို ဖန္တီးအသံုးျပဳျခင္းကို ကိုယ္စားျပဳပါတယ္။ Google Hacking Database (GHDB) အေၾကာင္း ကြ်န္ေတာ့္ရဲ႕ ဒီ Website ထဲက e-Books က႑မွာ စာအုပ္တင္ေပးခဲ့ျပီးျဖစ္ပါတယ္။ ကြ်န္ေတာ္တို႔အေနနဲ႔ query ေတြကိုသာ မွန္ကန္စြာ အသံုးျပဳတတ္ပါက ကြ်န္ေတာ္တို႔ရဲ႕ target company နဲ႔ ပတ္သက္ျပီး အေရးပါတဲ့ အခ်က္အလက္ေတြကို Google ကေနတစ္ဆင့္ ရရွိႏိုင္ပါတယ္။ 
Attacker ေတြအေနနဲ႔ေတာ့ vulnerability ေတြ ရွိေနတဲ့ vulnerable site ေတြကို ရွာေဖြႏိုင္တယ္။ vulnerability ေတြကို ရွာေဖြႏိုင္တယ္။ ဒါေတြကို GHDB ရဲ႕ အကူအညီနဲ႔ လုပ္ေဆာင္ႏိုင္မွာျဖစ္ပါတယ္။
Exploit Database ဆိုတာ ကြ်န္ေတာ္တို႔ သိေကာင္းသိပါလိမ့္မယ္။ Googledorks လို႔ ကြ်န္ေတာ္တို႔ ေခၚၾကတာေတြပါ။  exploit database ေတြမွာ latest hacking entry ေတြ မ်ားစြာ ပါဝင္ေနပါတယ္။ Hacker ေတြဟာ very useful information ေတြကို google dorks ေတြကို အသံုးျပဳ ရွာေဖြၾကေလ့ရွိပါတယ္။ ေယဘုယ်အားျဖင့္ေတာ့ system ေတြမွာ ရွိတဲ့ error message ေတြမွာ sensitive information ေတြ ပါဝင္ေလ့ရွိတာမို႔ Attacker ေတြဟာ error message ေတြကို ရွာေဖြၾကေလ့ရွိပါတယ္။ passowrds, sensitive directories, Login portal ပါဝင္ေနတဲ့ pages, vulnerabilities ေတြ ပါဝင္ေနတဲ့ pages ေတြ၊ server vulnerabilities ေတြ၊ advisories ေတြ စတာေတြကို တတ္စြမ္းသမွ် ရွာေဖြၾကေလ့ရွိပါတယ္။ အခ်က္အလက္ေတြ အစံုအလင္ ရရွိျပီဆိုရင္ေတာ့ ဒါေတြကို အသံုးခ်ျပီး တိုက္ခိုက္မႈေတြကို စတင္ပါေတာ့တယ္။
......................
Exploit Database ကို ကြ်န္ေတာ္တို႔ ဘယ္မွာ ၾကည့္ႏိုင္မလဲ
www.exploit-db.com မွာ ၾကည့္ရႈႏိုင္ပါတယ္ခင္ဗ်
သြားၾကည့္မယ္ဆိုရင္ေတာ့ Exploit database ေပါင္း (ယေန႔ထိ) 38,076 ခု ေတြ႔ရွိမွာျဖစ္ပါတယ္။
လက္ေတြ႔ သြားၾကည့္လိုက္ပါ။
...........................
Hacker for Charity သည္ Technological group တစ္ခုျဖစ္ျပီး source ေပါင္းမ်ားစြာက အခ်က္အလက္ေတြကို သိမ္းဆည္းထားသလို GHDB ေတြပါ ပါဝင္ေနပါတယ္။ သူတို႔ေတြက  advisories, error messages, user ID & passwords ေတြ ပါဝင္ေနတဲ့ files, sensitive files, sensitive directories ေတြနဲ႔ shopping cards စတဲ့ အလြန္ အေရးႀကီးတဲ့ အခ်က္အလက္ေတြကို စုေဆာင္းသိမ္းဆည္းေလ့ရွိၾကပါတယ္။ website ေတြမွာ ရွိေနတဲ့ vulnerability ေတြနဲ႔ ပတ္သက္ျပီး အခ်က္အလက္ေပါင္းမ်ားစြာကို သူတို႔ရဲ႕ database ကေနတစ္ဆင့္ ကြ်န္ေတာ္တို႔ ရယူအသံုးျပဳႏိုင္ပါတယ္။
.........................
ဒီခါေတာ့ Google ရဲ႕ advanced search အေၾကာင္းကို ေဆြးေႏြးရေအာင္
ခါတိုင္း ကြ်န္ေတာ္တို႔ ရွာေနက် www.google.com ကေန ရွာၾကည့္တာနဲ႔ advanced search ကေန ရွာေဖြတာ ဘာေတြ ကြာျခားလဲ သိလိုပါက 
ဒီေနရာကို ႏွိပ္ျပီး သြားၾကည့္ရင္ ေတြ႔ပါလိမ့္မယ္။ (သြားသာ ၾကည့္လိုက္ပါခင္ဗ်ာ)
........................................
Google မွာ advanced search ကို ပံုမွန္ရွာေနက်ထဲမွာ Keyword ေတြနဲ႔လည္း အသံုးျပဳရွာေဖြႏိုင္ေအာင္ ဖန္တီးထားပါတယ္။ URL ထဲမွာ ပါဝင္တာကို ရွာခ်င္ရင္  inurl: ကို သံုးႏိုင္ပါတယ္။ ဥပမာ url မွာ .mm ပါဝင္တာေတြကို ရွာခ်င္တယ္ဆိုရင္ေတာ့ ပံုမွန္ ရွာေနက် search box မွာ inurl:.mm လုိ႔ ရွာၾကည့္ႏိုင္ပါတယ္။ ေနာက္တစ္ခု inurl:folwers လို႔ ရိုက္ျပီး ရွာရင္ URL (Link address) မွာ flowers ပါတဲ့ အေၾကာင္းအရာေတြကို ေရြးထုတ္ျပေပးမွာ ျဖစ္ပါတယ္။ Google Hacking အေၾကာင္းကို ဒီ့ထက္ပိုျပီး ေလ့လာလိုပါက မိမိဘာသာ advanced search မွာ စမ္းၾကည့္ျပီးျဖစ္ေစ၊ GHDB အေၾကာင္း တင္ေပးထားတဲ့ စာအုပ္ေတြကို ဖတ္ရႈေလ့လာျခင္းျဖင့္ျဖစ္ေစ၊ (၁၁ လပိုင္းထဲမွာ ထြက္ျဖစ္ဖို႔ ႀကိဳးစားေနတဲ့ ကြ်န္ေတာ့္ရဲ႕ အေျခခံ Hacking အေၾကာင္း စာအုပ္ေလးကို အားေပးျပီး ျဖစ္ေစ) ေလ့လာႏိုင္ပါေသးတယ္ခင္ဗ်ာ 😂
.............................
Kali Linux မွာ Build-in ပါဝင္ျပီးျဖစ္တဲ့ Information Gathering လုပ္တဲ့ Tools ေတြ ရွိပါတယ္

တစ္ခုခ်င္းစီကိုလည္း Link လုပ္ေပးထားတာမို႔လို႔ သြားေရာက္ ေလ့လာၾကည့္ႏိုင္ပါေသးတယ္ခင္ဗ်
........................
Footrpinting အေၾကာင္းကို ဒီေနရာေေလးမွာပဲ ရပ္နားၾကရေအာင္ခင္ဗ်ာ

ေနာက္ေန႔ေတြမွာ ေနာက္ထပ္ ေခါင္းစဥ္တစ္ခုကို ဆက္ျပီး ေဆြးေႏြးေပးသြားပါမယ္ဗ်

အားလံုးပဲ အဆင္ေျပေပ်ာ္ရႊင္ၾကပါေစဗ်ာ


ယခု website တြင္ တင္ထားေသာ articles မ်ားကို Menu Box မွ မေရြးခ်ယ္တတ္သူမ်ား ဒီစာေၾကာင္းေလးကို ႏွိပ္ျပီး Menu ဆီ ေရာက္ေအာင္ သြားႏိုင္ပါျပီဗ်ာ


Thanks


Khit Minnyo