Thursday, July 27, 2017
ໃນປັດຈຸບັນໄດ້ມີການພັດທະນາພາສາໂປຣແກຣມຄອມພິວເຕີ ຫລວງຫລາຍ ຫຼາຍພາສາ ແລະໃຫ້ເໝາະກັບການໃຊ້ງານປະເພດຕ່າງໆ ໂດຍແບ່ງລະດັບຂອງພາສາໂປຣແກຣມຄອມພິວເຕີອອກເປັນ 5 ຍຸກຄື:
ຢຸກທີ່ 1 ພາສາເຄື່ອງ ( Machine Language)
ພາສາເຄື່ອງ ເປັນພາສາໂປຣແກຣມຄອມພິວເຕີລະດັບຕ່ຳທີ່ສຸດ ຊຶ່ງຄອມພິວເຕີເຂົ້າໃຈໄດ້ທັນທີໂດຍບໍ່ຕ້ອງຜ່ານຕົວແປພາສາເພາະຂຽນຄຳສັ່ງ ແລະ ແທນຂໍ້ມູນດ້ວຍເລກຖານສອງ (Binary Code) ທັງໝົດ ຊຶ່ງເປັນການຂຽນຄຳສັ່ງດ້ວຍເລກ 0 ຫລື 1 ດັ່ງຕົວຢ່າງຄຳສັ່ງພາສາເຄື່ອງ ດັ່ງນີ້
ກ່ອນປີ ຄ.ສ. 1952 ມີການຂຽນໂປຣແກຣມຄອມພິວເຕີດ້ວຍພາສາເຄື່ອງພຽງພາສາດຽວເທົ່ານັ້ນທີ່ໃຊ້ຕິດຕໍ່ກັບຄອມພິວເຕີໂດຍກົງ ແລະ ຄອມພິວເຕີແຕ່ລະເຄື່ອງຈະມີພາສາເຄື່ອງແຕກຕ່າງກັນຂຶ້ນຢູ່ກັບຊະນິດຂອງເຄື່ອງຄອມພິວເຕີ ແລະ ຫນ່ວຍປະມວນຜົນກາງ (Central Processor Unit: CPU) ໂດຍມີຮູບແບບຄຳສັ່ງສະເພາະເຄື່ອງ
ດັ່ງນັ້ນນັກຂຽນໂປຣແກຣມຈຶ່ງບໍ່ນິຍົມທີ່ຈະຂຽນໂປຣແກຣມດ້ວຍພາສາເຄື່ອງ ເພາະທຳການແກ້ໄຂ ແລະ ຂຽນໂປຣແກຣມໄດ້ຍາກເຮັດໃຫ້ເກີດຫຍຸ້ງຍາກໃນການຈົດຈຳ ແລະ ຂຽນຄຳສັ່ງຕ້ອງໃຊ້ເວລາຫລາຍໃນການຂຽນໂປຣແກຣມລວມທັງການຫາຂໍ້ຜິດພລາດຈາກການເຮັດວຽກຂອງໂປຣແກຣມ ແລະ ໂປຣແກຣມທີ່ຂຽນຂຶ້ນເຮັດວຽກສະເພາະຄອມພິວເຕີທີ່ມີຮາດແວດຽວກັນເທົ່ານັ້ນ (Machine Dependent)
ຂໍ້ດີຂອງພາສາເຄື່ອງ ຄືສາມາດຂຽນໂປຣແກຣມຄວບຄຸມການເຮັດວຽກງານຄອມພິວເຕີໄດ້ໂດຍກົງ ແລະ ສັ່ງງານໃຫ້ຄອມພິວເຕີເຮັດວຽກໄດ້ຢ່າງວ່ອງໄວ
ຢຸກທີ່ 2 ພາສາແອດເຊມບລີ ( Assembly Language)
ພາສາແອດເຊມບລີ ຈັດຢູ່ໃນພາສາລະດັບຕ່ຳ ແລະ ເປັນພາສາທີ່ພັດທະນາຕໍ່ມາຈາກພາສາເຄື່ອງໃນປີ ຄ.ສ. 1952 ພາສາແອດເຊມບລີ ມີຄວາມໃກ້ຄຽງກັບພາສາເຄື່ອງຫລາຍ ຄື 1 ຄໍຳສັ່ງຂອງພາສາແອດເຊມບລີ ຈະເທົ່າກັບ 1 ຄໍຳສັ່ງຂອງພາສາເຄື່ອງ ໂດຍທີ່ພາສາແອດເຊມບລີ ຈະຂຽນຄຳສັ່ງເປັນຕົວອັກສອນພາສາອັງກິດ ເພື່ອໃຊ້ແທນຄຳສັ່ງພາສາເຄື່ອງ ເຮັດໃຫ້ນັກຂຽນໂປຣແກຣມສາມາດຂຽນໂປຣແກຣມໄດ້ງ່າຍຂຶ້ນ ໂດຍການຈົດຈຳລະຫັດຄຳສັ່ງສັ້ນໆ ທີ່ຈຳໄດ້ງ່າຍ ຊຶ່ງຮຽກວ່າ ນິວມໍນິກໂຄ້ດ ( Mnemonic code)
[Read more…]
Sunday, July 23, 2017
ມື້ນີ້ເຈີ blog ທີ່ໜ້າສົນໃຈຂອງ Christian Haschek ມາເລີຍເອົາມາປັບກັບເວັບໄຊດ໌ເລື່ອງຂອງເລື່ອງຄື ຕົວ Christian ເຄົ້າເບື່ອພວກທີ່ມັກມານັ່ງໃຊ້ເຄື່ອງມືມາ scan ເວັບໄຊດ໌ຂອງເຂົາ ຫລື ພວກທີ່ພະຍາຍາມຈະເຈາະໄປທີ່ wp-admin ຂອງເຂົາ ກໍເລີຍເຮັດເລື່ອງ Zip Bomb ຂຶ້ນມາຕອບໂຕ້ຄົນເຫລົ່ານັ້ນ
Zip bomb ຄືການທີ່ເຮົາໃຊ້ງານ zip ເພື່ອກທຳການບີບອັດໄຟລ໌ຂະໜາດໃຫຍ່ໆທີ່ບໍ່ມີຫຍັງເລີຍນອກຈາກ 0 (zero) ໄວ້ ຊຶ່ງໂດຍປົກກະຕິແລ້ວ web browser ແລະ ເຄື່ອງມືການ scan ສ່ວນໃຫຍ່ຮອງຮັບການສົ່ງຂໍ້ມູນ http ແບບບີບອັດ (gzip) ຢູ່ແລ້ວ ດັ່ງນັ້ນຫາກມີໃຜ scan ເຂົ້າມາກໍຈະສົ່ງ zip file ກັບໄປໃຫ້ແທນນັ້ນເອງ
zip ສາມາດເຮັດວຽກບີບອັດໄດ້ຂະໜາດໃດ ຈະມີບັນຫາການສົ່ງເຮັດໃຫ້ຝັ່ງເຮົາຕ້ອງເສຍ bandwidth ຂາ upload ໄປແທນ ຫລື ບໍ? ຍົກຕົວຢ່າງໃຫ້ດັ່ງນີ້ລະກັນ ເຮົາສາມາດ zip ໄຟລ໌ຂະໜາດ 4.5 Peta Byte ( 4,500,000 GB) ໃຫ້ເຫລືອແຕ່ 42 kilobyte ເທົ່ານັ້ນ ເມື່ອພະຍາຍາມເປີດໄຟລ໌ດັ່ງກ່າວຈະເຮັດໃຫ້ເກີດອາການ disk ເຕັມ ແລະ RAM ໝົດໄດ້ ແຕ່ເນື່ອງດ້ວຍ http ບໍ່ຮອງຮັບ zip ເຮັດໃຫ້ເຮົາຕ້ອງໄປໃຊ້ gzip ແທນ ຊຶ່ງຜົນຮັບກໍແຕກຕ່າງກັນຢູ່ແຕ່ກໍຍັງຖືວ່າໄດ້ຜົນດີີລະດັບໜຶ່ງເລີຍລະ
[Read more…]
ຊ່ວງນີ້ມີຫລາຍໆ blog ກ່ຽວກັບ Malware Analysis ມັກເວົ້າເຖິງເລື່ອງ process hollowing ມື້ນີ້ກໍເລີຍເອົາມາເວົ້າອີກທີຫນຶ່ງ (ຄ້າຍໆກັບຕອນທີ່ມີຄົນເວົ້າເຖິງ psexec ແລະ wmic ໃນ NotPetya)
Image does not exist: https://www.techsuii.com/wp-content/uploads/2017/07/ph_4.png
Process Hollowing
[Read more…]
Wednesday, July 19, 2017
EXE ຄືໄຟລ໌ທີ່ຖືກໃຊ້ງານມາດົນແສນດົນໃນ Windows ໂດຍໂຄງສ້າງຂອງໄຟລ໌ເຫຼົ່ານີ້ຈະຢູ່ໃນໂຄງສ້າງທີ່ຊື່ວ່າ Portable Executable (PE) Format ໂດຍ PE Format ນັ້ນຖືກໃຊ້ໃນຫຼາຍໆໄຟລ໌ format ທັງ (CPL, OCX, SYS ແລະ ອື່ນໆ) ແຕ່ post ນີ້ເຮົາຈະສຸມໄປທີ່ DLL file
Image does not exist: https://www.techsuii.com/wp-content/uploads/2017/07/image2-2-300×223.png
Export Function ຈະເປັນການອະນຸຍາດໃຫ້ file ອື່ນສາມາດນຳ function ທີ່ມີໄປໃຊ້ໄດ້ ເຊັ່ນ ຕົວ ws2_32.dll ປະກາດ export WSAStartup function ໄວ້ ສຳລັບໃຜກໍຕາມທີ່ຕ້ອງການສ້າງ Windows Socket ກໍໃຫ້ມາຮຽກໃຊ້ງານໄດ້ ຊຶ່ງເມື່ອ a.exe ຕ້ອງການສ້າງ Windows Socket ໂດຍໃຊ້ function WSAStartup function ຂອງ ws2_32.dll ຕົວ a.exe ກໍຈະຮ້ອງຂໍໄປຢັງ Windows ຊຶ່ງການ link Function ຈາກ a.exe ໄປຢັງ ws2_32.dll ນັ້ນມີຄວາມເປັນໄປໄດ້ທັງ static link, dynamic, runtime ກ່າວຄື
[Read more…]
Tuesday, July 18, 2017
ພາສາຄອມພິວເຕີ ໝາຍເຖິງ ພາສາໃດໆທີ່ຜູ້ໃຊ້ງານໃຊ້ສື່ສານກັບຄອມພິວເຕີ ຫລື ຄອມພິວເຕີນຳກັນ ແລ້ວຄອມພິວເຕີສາມາດເຮັດວຽກຕາມຄຳສັ່ງນັ້ນໄດ້ ຄໍານີ້ມັກໃຊ້ຮຽກແທນພາສາໂປຣແກຣມ ແຕ່ຄວາມເປັນຈິງພາສາໂປຣແກຣມຄືສ່ວນຫນຶ່ງຂອງພາສາຄອມພິວເຕີເທົ່ານັ້ນ ແລະ ມີພາສາອື່ນໆທີ່ເປັນພາສາຄອມພິວເຕີເຊັ່ນກັນຍົກຕົວຢ່າງເຊັ່ນ HTML ເປັນທັງພາສາ Markup ແລະ ພາສາຄອມພິວເຕີດ້ວຍ ເຖິງວ່າມັນຈະບໍ່ແມ່ນພາສາໂປຣແກຣມ ຫລື ພາສາເຄື່ອງນັ້ນກໍນັບເປັນພາສາຄອມພິວເຕີ ຊຶ່ງໂດຍທາງເທກນິກສາມາດໃຊ້ໃນການຂຽນໂປຣແກຣມໄດ້ ແຕ່ກໍບໍ່ຈັດວ່າເປັນພາສາໂປຣແກຣມ
ຕົວແປພາສາໂປຣແກຣມຄອມພິວເຕີ
ເປັນໂປຣແກຣມທີ່ໃຊ້ໃນການແປຄວາມຫມາຍຂອງຄຳສັ່ງໃນພາສາຄອມພິວເຕີຊະນິດຕ່າງໆໄປເປັນພາສາເຄື່ອງ ຊຶ່ງເປັນພາສາທີ່ຄອມພິວເຕີເຂົ້າໃຈ ແລະ ເຮັດວຽກຕາມຄຳສັ່ງໄດ້ ໂດຍໂປຣແກຣມທີ່ຂຽນເປັນໂປຣແກຣມຕົ້ນສະບັບ ຫລື ຊອດໂຄ້ດ ( Source code) ຊຶ່ງໂປຣແກຣມເມີຂຽນຄຳສັ່ງຕາມຫຼັກການອອກແບບໂປຣແກຣມ ແລະ ຈຳເປັນຕ້ອງໃຊ້ຕົວແປພາສາຄອມພິວເຕີເພື່ອກວດສອບໄວຍາກອນຂອງພາສາວ່າຂຽນຖືກຕ້ອງ ຫລື ບໍ່ ແລະ ທົດສອບຜົນຮັບວ່າເປັນຢ່າງໃດ ຊຶ່ງພາສາຄອມພິວເຕີຊະນິດຕ່າງໆຈະມີຕົວແປພາສາຂອງຕົນເອງໂດຍສະເພາະ ໂປຣແກຣມທີ່ແປຈາກໂປຣແກຣມຕົ້ນສະບັບແລ້ວຈະຮຽກວ່າ ອອບເຈັກໂຄ້ດ ( Object code) ຊຶ່ງເປັນພາສາເຄື່ອງທີ່ປະກອບດ້ວຍ ລະຫັດຄຳສັ່ງທີ່ຄອມພິວເຕີສາມາດເຂົ້າໃຈ ແລະ ນຳໄປປະຕິບັດໄດ້ຕໍ່ໄປ
[Read more…]
ພາສາຄອມພິວເຕີ ໝາຍເຖິງ ເປັນພາສາທີ່ມີຈຸດມຸ້ງໝາຍສະເພາະ ມີກົດເກນທີ່ຕາຍຕົວ ແລະ ຈຳກັດ ຄືຢູ່ໃນກອບໃຫ້ໃຊ້ຄຳ ແລະ ໄວຍາກອນທີ່ກຳນົດ ແລະ ມີການຕີຄວາມຫມາຍທີ່ຊັດເຈນ ຈຶ່ງຈັດພາສາຄອມພິວເຕີເປັນພາສາທີ່ມີຮູບແບບເປັນທາງການ ແຕ່ຄວາມເປັນຈິງພາສາໂປຣແກຣມຄືສ່ວນຫນຶ່ງຂອງພາສາຄອມພິວເຕີເທົ່ານັ້ນ ແລະ ມີພາສາອື່ນໆ ທີ່ເປັນພາສາຄອມພິວເຕີເຊັ່ນກັນ ຍົກຕົວຢ່າງເຊັ່ນ HTML ເປັນທັງພາສາ Markup ແລະ ພາສາຄອມພິວເຕີດ້ວຍ ເຖິງວ່າມັນຈະບໍ່ແມ່ນພາສາໂປຣແກຣມ ຫລື ພາສາເຄື່ອງນັ້ນກໍນັບເປັນພາສາຄອມພິວເຕີ ຊຶ່ງໂດຍທາງເທກນິກສາມາດໃຊ້ໃນການຂຽນໂປຣແກຣມໄດ້ ແຕ່ກໍບໍ່ຈັດວ່າເປັນພາສາໂປຣແກຣມ
ພາສາຄອມພິວເຕີສາມາດແບ່ງອອກເປັນສອງກຸ່ມຄື ພາສາລະດັບສູງ (high level) ແລະ ພາສາລະດັບຕ່ຳ (low level) ພາສາລະດັບສູງຖືກອອກແບບມາເພື່ອໃຫ້ໃຊ້ງານງ່າຍ ແລະ ສະດວກສະບາຍຫລາຍກວ່າພາສາລະດັບຕ່ຳ ໂປຣແກຣມທີ່ຂຽນຖືກຕ້ອງຕາມກົດເກນ ແລະ ໄວຍາກອນຂອງພາສາຈະຖືກແປ (compile) ໄປເປັນພາສາລະດັບຕ່ຳເພື່ອໃຫ້ຄອມພິວເຕີສາມາດນຳໄປໃຊ້ງານ ຫລື ປະຕິບັດຕາມຄຳສັ່ງໄດ້ຕໍ່ໄປ ຊອບແວສະໄໝໃໝ່ສ່ວນຫລາຍຂຽນດ້ວຍພາສາລະດັບສູງ ແປໄປເປັນອອບເຈກໂຄ້ດ (object code) ແລ້ວປ່ຽນໃຫ້ເປັນຊຸດຄຳສັ່ງໃນພາສາເຄື່ອງ
ຂໍ້ມູນຈາກ wikipedia.org
ອັນດັບທີ່ 1 ຍັງເປັນພາສາ JAVA
Image does not exist: https://image.ibb.co/hgiS4a/best_programing_2017.png
ຂໍ້ມູນຈາກ TIOBE