Sep 3, 2010
Friday, September 03, 2010

ทำไมโปรแกรม AutoIt จึงมีปัญหากับโปรแกรมป้องกันไวรัสบางโปรแกรม

     เมื่อก่อนนี้ ปัญหาหนึ่งที่คุณมักจะพบหากนำโปรแกรมที่สร้างจาก AutoIt ไปแจกจ่ายให้กับผู้อื่นก็คือ โปรแกรมป้องกันไวรัสบางโปรแกรมจะแจ้งว่าไฟล์โปรแกรมของคุณเป็นไวรัสหรือหนอน ฯลฯ แม้ปัจจุบันโปรแกรมป้องกันไวรัสจำนวนมากได้ทราบและแก้ไขวิธีการตรวจจับแล้ว ก็ยังมีโปรแกรมบางโปรแกรมที่ยังมีปัญหากับ AutoIt อยู่ ดังตัวอย่างในภาพด้านล่างนี้

     ผมสร้างไฟล์โปรแกรมที่แสดงข้อความ โดยใส่โค้ดเพียงบรรทัดเดียวคือ
MsgBox(0,"สวัสดี","123456")
    จากนั้นก็คอมไพล์เป็น .exe นำส่งไปตรวจในเว็บตรวจไวรัส ในเว็บแจ้งว่ามีโปรแกรมป้องกันไวรัส 3 โปรแกรมด้วยกันที่มองว่าไฟล์ดังกล่าวเป็นไวรัส



    ความผิดพลาดเช่นนี้เกิดจากวิธีการตรวจหาไวรัสที่ยังไม่เข้าใจธรรมชาติของโปรแกรมที่สร้างจาก AutoIt เนื่องจากไฟล์โปรแกรมแบบ .exe ที่สร้างมาจากสคริปต์ AutoIt จะแบ่งข้อมูลในไฟล์ออกเป็น 2 ส่วนด้วยกันคือ
     [[A]] Interpreter เป็นส่วนของตัวแปลคำสั่งที่เราเขียนเอาไว้ในสคริปต์ AutoIt ส่วนนี้หากคอมไพล์จาก AutoIt เวอร์ชั่นเดียวกัน จะมีข้อมูลเหมือนกันหมดทุกประการ
     [[B]] Script  เป็นส่วนเก็บภาษาสคริปต์ที่เราเขียนเอาไว้ โดยทั่วไปพื้นที่ตรงนี้จะมีขนาดข้อมูลใกล้เคียงกับไฟล์ .au3 (ไฟล์สคริปต์ AutoIt ที่ยังไม่ได้คอมไพล์)


     ด้วยวิธีการเก็บข้อมูลแบบนี้ปัญหาที่เกิดขึ้นก็คือ ไม่ว่าไฟล์ข้อมูลใดๆ ก็ตามที่คอมไพล์ออกมาเป็น .exe จะมีข้อมูลในส่วนต้น (A) เหมือนกันหมด โปรแกรมตรวจจับไวรัสบางโปรแกรมเมื่อตรวจข้อมูลที่ส่วนต้นแล้วไปตรงกับข้อมูลไวรัส(ที่เขียนมาจากสคริปต์ AutoIt)ในฐานข้อมูล ก็เหมารวมว่าโปรแกรมนั้นๆ เป็นไวรัสทั้งที่ไม่ใช่

     อย่างไรก็ตามในปัจจุบันโปรแกรมป้องกันไวรัสส่วนใหญ่จะปรับแก้ไขวิธีการตรวจแล้ว แต่จะมีเพียงบางโปรแกรมเท่านั้นที่ยังเป็นปัญหาอยู่ หากคุณโชคไม่ดีนำไฟล์โปรแกรมไปแจกจ่ายให้กับผู้ใช้บางคนที่ใช้โปรแกรมเหล่านี้ อาจจะถูกเหมาว่าเป็นการแกล้งปล่อยไวรัสใส่เครื่อง
     ดังนั้นจุดประสงค์ในบทความนี้จริงๆ ก็คือ ป้องกันความเข้าใจผิดที่อาจเกิดขึ้นได้จากมาใช้งานโปรแกรมที่สร้างจากสคริปต์ AutoIt (เท่าที่ทำโปรแกรมแจกจ่ายในบล็อกนี้ ยังไม่พบปัญหาดังกล่าว แต่ก็กันความเข้าใจผิดไว้ดีกว่า)

หมายเหตุ
     คุณสามารถทดสอบได้ด้วยตนเองโดยการ พิมพ์โค้ด MsgBox(0,"สวัสดี","123456") เพียงบรรทัดเดียว แล้วคอมไพล์เป็นโปรแกรม .exe จากนั้นก็นำไฟล์ดังกล่าวไปตรวจยังเว็บ http://www.virustotal.com/ เพื่อดูผลว่ามีโปรแกรมป้องกันไวรัสตัวไหนที่เป็นปัญหากับโปรแกรมที่คุณสร้างขึ้นมา

###จบแล้วครับ###

0 comments:

Post a Comment

    ส่วนนี้สำหรับแสดงความคิดเห็นทั่วไป สอบถามปัญหาตั้งถามได้ที่ฟอรั่ม


>>> [โปรดอ่าน] เนื่องจาก บทความการใช้งานบางโปรแกรมได้โฟสไปนานแล้ว
โปรแกรมอาจมีการอัปเดท วิธีการใช้งาน อาจใช้ไม่ได้ หรือมีวิธีที่ง่ายกว่าในเวอร์ชั่นใหม่
หากคุณพบว่าวิธีการใช้งานไม่ตรงกับบทความในบล็อกนี้ สามารถแนะนำเพิ่มเติมได้ครับ