การตั้งค่า Font เริ่มต้นใน Word ไม่ต้องคอยเปลี่ยนทุกครั้ง

สำหรับท่านที่อาจจะต้องพิมพ์เอกสารราชการบ่อยๆ ซึ่งต้องใช้ TH Sarabun นั้น คงเป็นเรื่องน่าเบื่อที่จะต้องมาคอยเปลี่ยน Font ทุกครั้ง   อันที่จริงแล้ว ใน Microsoft Word 2016 (ล่าสุด ณ ตอนเขียนบทความนี้) ท่านสามามารถบันทึกรูปแบบเริ่มต้นทั้งฟอนต์, ขนาดฟอนต์ รวมทั้งรูปแบบตัวอักษรไว้เป็นค่าเริ่มต้นได้เลย (Overwrite the Normal.dotm template) ด้วยวิธีการต่อไปนี้ครัช   1. เลือก Font ที่จะเป็น Font เริ่มต้น ในตัวอย่างเลือกเป็น TH SarabunPSK ขนาด 16 แล้วก็คลิกตามลูกศรชี้ 2. กดที่ Set As Default ตามลูกศรอีกเช่นเคย 3.เลือก All document based on the Normal.dotm template แล้วกด OK เพียงเท่านี้ ค่าที่ตั้งไว้ก็จะเป็นค่าเริ่มต้นทุกครั้งที่เปิด Microsoft Word 2016 (เนื่องจากผมใช้ UI เป็นภาษาอังกฤษ สำหรับภาษาไทยนั้น ลองเทียบตำแหน่งปุ่มดูนะครับ)   หากมีข้อผิดพลาด ขออภัยไว้ ณ โอกาสนี้ครัช

Read More »

การสร้างเอกสารด้วย Sphinx

sphinx คือเครื่องมือที่ช่วยในการสร้างเอกสารที่พัฒนาโดย Georg Brandl เดิมที sphinx ได้รับการพัฒนาเพื่อใช้สร้างเอกสารสำหรับ Python แต่สามารถใช้งานกับภาษาอื่นๆได้เช่นกัน sphinx ใช้ reStructuredText (ดูข้อมูลเพิ่มเติมเกี่ยวกับ reStructuredText ได้ที่ บทความ ก่อนหน้า) ในการกำหนดรูปแบบของเอกสาร และชุดเครื่องมือในการ parsing และ translating เอกสารในรูปแบบ  reStructuredText ไปเป็นรูปแบบที่ต้องการเช่น html หรือ pdf เป็นต้น ในการติดตั้งใช้งาน sphinx นั้นจำเป็นต้องต้องติดตั้ง Python เนื่องจาก sphinx ได้รับการพัฒนาโดยใช้ Python language ทำให้การใช้งาน sphinx ต้องติดตั้ง Python ด้วย โดย Python ที่ใช้ต้องเป็น Python version 2.7 เป็นอย่างน้อย การติดตั้ง Python บน windows  ทำได้โดยเข้าไป download “Python windows installer” ที่ https://www.python.org/ และทำการติดตั้ง หลังจากติดตั้งเรียบร้อย จะต้องทำการกำหนดค่า Python executable directory ใน PATH environment variable เพื่อที่จะสามารถ run Python และ package command เช่น sphinx-build ได้จาก command prompt Installing Sphinx with pip การติดตั้ง Sphinx ทำได้โดยการใช้ “pip”  ซึ่ง pip เป็นเครื่องมือที่ใช้ในการ download และติดตั้ง 3rd-party libraries สำหรับ Python ซึ่งจะถูกรวมอยู่ใน Python official installation ตั้งแต่ version Python-3.4.0 การติดตั้ง sphinx โดยใช้คำสั่งดังนี้บน command prompt C:\> pip install sphinx หลังจากติดตั้งเรียบร้อย ให้พิมพ์คำสั่ง sphinx-build -h บน command prompt ถ้าทุกอย่างถูกต้อง จะแสดงข้อมูล Sphinx version number และ list ของ option ต่างๆสำหรับคำสั่งนี้ Setting up the documentation sources การพัฒนาเอกสารด้วย sphinx นั้น เริ่มแรกเราจะต้องกำหนดพื้นที่สำหรับพัฒนาเอกสารและจัดเก็บ config ที่ใช้สำหรับ sphinx ซึ่ง sphinx มีคำสั่ง sphinx-quickstart ซึ่งทำหน้าที่กำหนด source directory และสร้าง default config file “conf.py” ที่จำเป็นให้ โดยใช้คำสั่งดังนี้ C:\> sphinx-quickstart sphinx-quickstart script สร้างโครงสร้าง folder พร้อมทั้ง file เริ่มต้นรวมทั้ง Makefile และ make.bat ซึ่งจะใช้ในการ build (parsing และ translating โดยที่ถ้าพบส่วนที่ไม่ตรงตามข้อกำหนด syntax จะแสดง warning หรือ error พร้อมทั้งรายละเอียดของ line เช่นเดียวกับการ build “code program”) หลังได้โครงสร้าง folder สำหรับพัฒนาเอกสารเรียบร้อย ก็สามารถเริ่มต้นเขียนเอกสารโดยใช้ reStructuredText ในการกำหนดรูปแบบการแสดงผลของ text จากนั้นเมื่อต้องการสร้างเอกสารในรูปแบบที่ต้องการเช่น html document ก็จะต้องทำการ build โดยใช้คำสั่ง C:\> make html ผลลัพธ์ที่ได้จากการใช้คำสั่งนี้คือ HTML

Read More »

คู่มือเทคนิคการใช้งาน Function พื้นฐานใน Itextsharp สำหรับมือใหม่ ตอนที่ 2

บทความนี้ผู้เขียนจะพูดถึงส่วนที่มีการทำงานในลักษณะคล้ายกับ Containner แต่ก่อนจะเริ่มเนื้อหาในส่วนนี้ สำหรับผู้ที่เริ่มต้นใหม่สามารถอ่านบทความ ตอนที่ 1 เพื่อความเข้าใจต่อเนื่องกันนะครับ ส่วนผู้ที่อ่านบทความก่อนหน้านี้ เรามาเริ่มกันเลยดีกว่าครับ ก่อนที่ผู้เขียนจะไปพูดถึงส่วนของการเขียนโปรแกรมนั้น ผู้เขียนอยากอธิบายเพื่อทำความเข้าใจให้กับผู้อ่านได้เห็นภาพได้ชัดเจนเกี่ยวลักษณะการทำงานของ Containner แบบต่างๆให้ได้ทราบกัน โดยการทำงานของ Itextsharp นั้น เมื่อเราทำการสร้างเอกสารแล้ว เราไม่สามารถเขียนข้อความหรือใส่ข้อมูลต่างๆลงไปได้ในเอกสารโดยตรง แต่เราจะทำผ่านตัว Containner ครับ โดยตัว Containner ที่ Itextsharp ให้มาก็มีหลายรูปแบบให้เลือกใช้งานกัน วันนี้เราจะมาทราบกันว่ามีรูปแบบอะไรบ้างที่ช่วยให้เราทำงานได้ดีขึ้นครับ รูปตัวอย่างแสดงการทำงานของ Containner จากรูปตัวอย่างที่ผู้เขียนได้วาดไว้นั้น ผู้เขียนขออธิบายกรอบทั้งด้านซ้ายก่อนนะครับ โดยกรอบแต่ละสี จะเป็น Containner แต่ละที่ Itextsharp มีมาให้เราใช้งาน โดยกรอบสีดำนอกสุดนั้น ก็คือ Document หรือตัวเอกสารที่ได้กล่าวถึงในบทความก่อนหน้านี้ ซึ่งเป็น Containner ใหญ่สุดและเป็นตัวหลัก ใช้สำหรับบรรจุ Containner ตัวอื่นๆลงไปในเอกสาร ต่อมากรอบสีน้ำเงิน ก็คือ Paragraph เรียกง่ายๆว่าย่อหน้า ใน 1 Document นั้นเราสามารถบรรจุ Paragraph กี่อันก็ได้ตามที่ผู้ใช้ต้องการ โดยแต่ละ Paragraph จะเรียงต่อกันลงมาเป็นแนวตั้ง โดย Paragraph ล่าสุดจะอยู่ล่าสุดของเอกสารเสมอ ต่อกันด้วยกรอบสีแดง ก็คือ Phrase เรียกง่ายๆว่า รูปประโยค ใน 1 Paragraph สามารถมี Phrase ได้หลายอัน โดยต่อเรียงจากซ้ายไปขวา เราสามารถเขียนข้อมูลลงใน Phraph ได้ หรือเราใช้เป็น Containner สำหรับบรรจุ Chunk อีกชั้นได้ด้วย แต่ Phraph เหมาะสำหรับใช้เป็น containner มากกว่าใช้ใสข้อมูลโดยตรง เนื่องจากมีเงื่อนไขในการใส่ที่จำกัด และสุดท้ายของกรอบด้านซ้ายและเป็นตัวหลักในการเขียนข้อมูลคือ Chunk นั้นเอง Chunk เป็น Containner ที่มีหน้าที่ในการเก็บข้อมูลที่เราจะใส่ลงไปในเอกสารโดยเฉพาะ โดย Chunk จะต่อเรียงกันไปเลยๆจากซ้ายไปขวาเหมือน Phrase และไม่สามารถบรรจุ Containner อื่นลงไปได้อีก พออ่านมาถึงตรงนี้หลายท่านสงสัยว่า เรามาถึง Containner ตัวเล็กสุดแล้ว แล้วอีก 2 ตัวที่เหลือละ จริงๆผู้เขียนไม่ได้ลืมนะครับ แต่ผู้เขียนพยายามแยกการทำงานของ Containner เป็นชุดๆให้ผู้อ่านได้เข้าใจง่ายๆ เมื่อจบการอธิบายในกรอบด้านซ้ายของรูปตัวอย่างแล้ว เรามาเริ่ม กรอบทางด้านขวากันเลยดีกว่า เมื่อเราดูรูปกรอบด้านขวาจะพบว่ามี Containner บ้างตัวหายไป ทั้งที่มีการใช้งานทางด้านซ้าย ก็คือเจ้า Paragraph นั้นเอง เพราะผู้เขียนคิดว่าการทำงานของ Paragraph นั้นจะซ้ำซ้อนกับ PdfPCell นั้นเอง แต่ก่อนจะพูดถึง PdfPCell สิ่งที่ลืมไปไม่ได้เลยคือ PdfPtable นั้นเอง สำหรับผู้พัฒนาโปรแกรม คงเข้าใจได้ง่ายๆว่า ถ้าเราจะสร้างCell เราจะขาด Table ไปไม่ได้ เพราะ Cell เป็นส่วนนึงของ Tableนั้นเอง โดย PdfpTable จะทำหน้าที่ในการบรรจุ Containner PdfPCell ไว้นั้นเอง เมื่อเราทำการใส่ PdfPCell ลงใน PdfPTable แล้ว PdfPCell จะเรียงต่อกันจากซ้ายไปขวา เรื่อยๆ แล้วหลายคนสงสัย แล้วไม่มี PdfPRow ให้ใช้งานหรอ มีครับแต่ไม่ค่อยได้รับความนิยมในการใช้งานมากนัก เพราะตัว PdfPTable นั้นสามารถเพิ่ม PdfPCell ได้โดยตรงไม่ต้องเพิ่ม PdfPRow แต่อย่างใด ผู้เขียนจึงขอตัดออกไปก่อน แต่จะมีตัวอย่างการใช้งานให้ดูตอนท้ายครับ แล้วถามว่าเราสามารถเอา PdfPTable ไปใส่ใน Paragraph ได้ไหม ได้ครับ เราสามารถเอา PdfPTable ใน Paragraph และเช่นเดียวกันเราสามารถเอา Paragraph ใส่ใน PdfPTable รู้สึกผู้เขียนจะร่ายยาวไปแล้ว คนอ่านคงเบื่อ เรามาเข้าสู่ช่วงของการเขียนโปรแกรมกันเลยดีกว่า โดยเริ่มจากตัว Containner ตัวเล็กสุดคือ Chunk Chunk chk1 = new Chunk(“Howdy”,fnt);//1 Chunk chk2

Read More »

มัลแวร์สวมรอยการใช้งาน Facebook

มีรายงานจากศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์ประเทศไทย (ไทยเซิร์ต) เมื่อวันที่ 10 พ.ค. 2559 พบว่ามีการแพร่กระจายมัลแวร์ประเภท Malicious Code ผ่าน Facebook โดยอาศัยช่องทางการแจ้งเตือนของ Facebook การทำงานของมัลแวร์ เมื่อผู้ใช้ได้รับการแจ้งเตือนจาก Facebook ว่าถูกพาดพิงโดยบุคคลที่สาม หากผู้ใช้คลิกเข้าไปดูข้อความแจ้งเตือนดังกล่าวก็จะถูกนำไปยังไซต์อื่นทันที และเว็บไซต์ปลายทางที่ถูกนำพาไปจะปรากฏข้อความว่าเป็นส่วนขยายของ Browser สำหรับใช้เปลี่ยนสีของเว็บไซต์ Facebook และให้ดาวน์โหลดไฟล์ Instalador_Cores.scr มาติดตั้ง ซึ่งเป็นส่วนขยายของ Google Chrome หากผู้ใช้หลงเชื่อดาวน์โหลดและติดตั้งจะพบว่ามีการสร้างไฟล์ไว้ที่ไดเรกทอรี่ C:\User\[ชื่อผู้ใช้]\AppData\Local\Google\Update จากนั้นจะสร้าง Shortcut สำหรับเรียกใช้งาน Google Chrome ไว้ที่ Desktop โดยตัว Shortcut ดังกล่าวจะเป็นการเปิดใช้งาน Google Chrome โดยโหลดส่วนเสริมที่ถูกติดตั้งใหม่ขึ้นมาทำงานด้วย หากเปิดใช้งาน Google Chrome จาก Shortcut ดังกล่าว และเข้าใช้งานเว็บไซต์ Facebook ก็จะพบว่าสีของ Facebook เปลี่ยนเป็นสีเขียวดังรูปที่ 2 และยังสามารถปรับแต่งเป็นสีอื่นได้ตามต้องการ นอกจากการทำงานดังกล่าวแล้วมัลแวร์ตัวนี้ยังได้แฝงการทำงานเบื้องหลังไว้โดยจะตรวจสอบว่ามีการล็อคอิน Facebook ไว้หรือไม่ หากใช่ก็จะสวมรอยไปโพสต์คอมเมนต์ในเว็บไซต์ pinandwin8.co.nz ทันที โดยในคอมเมนต์ก็จะมีการอ้างถึงผู้อื่นที่อยู่ในรายชื่อเพื่อนของผู้ใช้อีกด้วย การแก้ไขหากตกเป็นเหยื่อ ไปที่ไดเรกทอรี C:\User\[ชื่อผู้ใช้]\AppData\Local\Google\Update แล้วลบไดเรกทอรี่และไฟล์ที่มัลแวร์สร้าง ดังนี้ ไดเรกทอรี่ css, img, js ไฟล์ manifest.json, popup.html และ background.html ลบไอคอน Google Chrome ที่ถูกสร้างขึ้นใหม่ออกจาก Desktop การป้องกันการโจมตี ผู้ใช้ Facebook ควรอ่านข้อความแจ้งเตือนที่ปรากฏบนหน้าจอ โดยเฉพาะเมื่อ Facebook แจ้งว่าการคลิกลิงก์จะเป็นการเปลี่ยนเส้นทางไปยังเว็บไซต์อื่น หากคลิกลิงก์จาก Facebook แล้วพบหน้าจอขอให้ใส่รหัสผ่าน ไม่ควรใส่ข้อมูลเพราะอาจเป็นหน้าเว็บไซต์หลอกลวง (Phishing) หากคลิกลิงก์จาก Facebook แล้วพบหน้าจอขอให้ดาวน์โหลดโปรแกรม ควรพิจารณาก่อนดาวน์โหลดโปรแกรมนั้นเพราะอาจเป็นอันตรายได้ ผู้ดูแลระบบอาจพิจารณาบล็อคเว็บไซต์ pinandwinco.nz เนื่องจากเป็นเว็บไซต์ที่เผยแพร่มัลแวร์ แหล่งข้อมูลอ้างอิง https://www.thaicert.or.th/alerts/user/2016/al2016ushtml

Read More »

มัลแวร์เรียกค่าไถ่ Ransomware

ทุกวันนี้อินเตอร์เน็ตเข้ามามีอิทธิพลต่อชีวิตประจำวันเป็นอย่างมาก ทุกคนไม่ว่าจะเป็นใคร ทำอาชีพอะไร อยู่ที่ไหนในโลกนี้ก็สามารถเข้าถึงอินเตอร์เน็ตได้ด้วยอุปกรณ์ต่าง ๆ ที่หลากหลาย เช่น คอมพิวเตอร์ แท็บเล็ต และสมาร์ทโฟน เป็นต้น อุปกรณ์เหล่านี้ทำให้เราเข้าถึงโลกอินเตอร์เน็ตที่กว้างใหญ่ได้ ดังนั้นเราจึงไม่ควรมองข้ามภัยอันตรายที่แฝงอยู่ในรูปแบบต่าง ๆ โดยเฉพาะอย่างยิ่งภัยอันตรายที่มาจากมัลแวร์ชนิดหนึ่งที่มันจะมาจับเครื่องหรือไฟล์ของเราเป็นตัวประกัน เพื่อเรียกค่าไถ่ มัลแวร์ชนิดนี้สร้างความตื่นตัวให้กับคนทั่วโลก รวมถึงประเทศไทยมาแล้ว  ดังจะเห็นได้จากหน่วยงานราชการต่าง ๆ ในประเทศไทยได้มีการออกหนังสือราชการ ประกาศแจ้งเตือนให้เพิ่มความระมัดระวังในการเปิดอ่านไฟล์ที่แนบมากับจดหมายอิเล็กทรอนิกส์ให้มากยิ่งขึ้น มัลแวร์ที่ประสงค์ร้ายต่อข้อมูลในอุปกรณ์ต่าง ๆ ของเราดังกล่าว จัดเป็นมัลแวร์ประเภท “Ransomware” หรือ “มัลแวร์เรียกค่าไถ่” มีเป้าหมายที่ตรวจพบการโจมตีแล้วทั้งในระบบปฏิบัติการ Window, Android, iOS และ Linux โดยแบ่งตามการทำงานออกเป็น 2 รูปแบบหลัก ๆ อุปกรณ์ต่าง ๆ ของเรานคือ Lock Screen Ransomware Ransomware รูปแบบนี้จะใช้ความสามารถของ Lock Screen ทำการล็อคหน้าจอหรือปิดกั้นการเข้าใช้งานเครื่องคอมพิวเตอร์ หรือสมาร์ทโฟนของเหยื่อไว้ ไม่ให้สามารถเข้าถึงโปรแกรมต่าง ๆ และข้อมูลในเครื่องได้ พร้อมทั้งแสดงข้อความเรียกค่าไถ่เพื่อปลดล็อคดังรูปที่ 2 เป็นหน้าจอของสมาร์ทโฟนระบบปฏิบัติการ Android ที่ติด Ransomware ชื่อ iToper File Encrypting Ransomware เครื่องผู้ใช้งานที่ติด Ransomware ในรูปแบบนี้จะสามารถใช้งานอุปกรณ์ และเข้าถึงโปรแกรมต่าง ๆ ได้ตามปกติ แต่ไฟล์ต่าง ๆ ที่อยู่ในเครื่องทั้งหมด ไม่ว่าจะเป็นไฟล์เอกสาร ไฟล์วีดีโอ หรือไฟล์รูปภาพ และอื่น ๆ จะถูกเข้ารหัสไว้ไม่ให้ผู้ใช้งานสามารถเข้าถึงได้ จากนั้นจึงเรียกค่าไถ่โดยการทิ้งข้อความแสดงคำแนะนำวิธีการจ่ายเงินเพื่อแลกกับคีย์ที่ใช้ในการถอดรหัสไฟล์กลับคืนมาดังรูปที่ 3 เป็นตัวอย่างหน้าจอการเรียกค่าไถ่ของ Ransomware รูปแบบนี้ที่ชื่อ CryptoLocker สถิติการโจมตีของ Ransomware มีสถิติที่น่าสนใจจาก Solutionary ซึ่งเป็นบริษัทด้านความปลอดภัยในเครือ NTT Group ได้ออกรายงานสถิติการโจมตีของ Ransomware ที่ตรวจพบได้ในไตรมาสที่ 2 ของปี 2016 พบว่าหน่วยงานด้านสาธารณสุขเป็นหน่วยงานที่ถูกโจมตีมากที่สุดถึง 88% รองลงมาคือหน่วยงานด้านการศึกษา 6% และหน่วยงานด้านการเงิน 4% โดย Ransomware สายพันธ์ที่ตรวจพบมากที่สุดคือ CryptoWall คิดเป็น 94% รูปที่ 4 สถิติการโจมตีของ Ransomware ในไตรมาสที่ 2 ปี 2016 [ที่มา : https://www.helpnetsecurity.com/2016/07/27/ransomware-healthcare-industry ] ช่องทางการโจมตีของ Ransomware การโจมตีส่วนใหญ่จะมาทางอีเมล์หลอกลวงที่แนบไฟล์ Ransomware ไว้ โดยเนื้อหาในอีเมล์จะดึงดูดให้ผู้อ่านอยากคลิกเข้าไปอ่าน เช่น อีเมล์แจ้งเลขที่ใบสั่งซื้อสินค้า (OrderID) หากผู้ใช้ไม่คลิกไปเปิดไฟล์แนบ ก็อาจจะทำให้สูญเสียโอกาสทางการค้าได้ ซึ่งถ้าผู้ใช้คลิกเปิดไฟล์โดยไม่ระมัดระวัง ก็จะตกเป็นเหยื่อของ Ransomware ทันที ไฟล์แนบที่มากับอีเมล์จะเป็น zip file หากแตกไฟล์ออกมาก็จะพบไฟล์นามสกุล .doc, .xls, .ppt หรือไฟล์อื่นๆ ที่เราคุ้นเคย แต่ถ้าสังเกตดี ๆ จะพบว่านามสกุลของไฟล์จริง ๆ แล้วเป็น .exe เรียกเทคนิคการตั้งชื่อไฟล์แบบนี้ว่า Double Extensions โจมตีด้วยวิธี Social Engineering เป็นการหลอกผู้ใช้งานให้ดาวน์โหลดโปรแกรมมาติดตั้งในเครื่อง เช่น ในขณะที่ใช้งานระบบลงทะเบียนเรียนออนไลน์ของมหาวิทยาลัย พบว่ามี Pop-up ขึ้นมาบอกว่า ให้ดาวน์โหลดโปรแกรมเสริมมาติดตั้งเพื่อให้สามารถลงทะเบียนได้สะดวก และรวดเร็วขึ้น ทั้ง ๆ ที่โปรแกรมนี้ไม่มีอยู่จริง หากผู้ใช้งานหลงเชื่อและทำการดาวน์โหลดมาติดตั้ง ไฟล์ต่าง ๆ ก็จะโดนจับเป็นตัวประกันทันที โจมตีทางช่องโหว่ของ Browser รวมถึง Add-on, Plug-in ต่าง ๆ เช่น Java, Flash และ Acrobat Reader เป็นต้น เทคนิคที่ File Encrypting Ransomware ใช้ในการเข้ารหัส Ransomware ส่วนใหญ่จะเข้ารหัสไฟล์โดยใช้ Asymmetric Key Algorithms ประกอบด้วยกุญแจ 2

Read More »