เป็นที่รู้กันว่า Trojan หรือ Virus (หรือที่เขาเรียกรวม ๆกันว่า Malware) นั้นส่วนมากจะเขียนขึ้นด้วย Assembly , C++, Delphi แต่ที่สุดแล้วก็หนีไม่พ้น Windows API และภาษาที่ใกล้ชิดกับแกนหลักของระบบปฏิบัติ (windows) ก็คือ Assembly หากเราต้องการศึกษาโครงสร้างการทำงานรวมถึงการทำงานของ Malware ต่าง ๆ แล้วเราจำเป็นอย่างยิ่งที่จะต้องรู้ภาษา Assembly
บทความต่อ ๆไปของผมจะมีการใช้งาน Assembly และ C++ เป็นส่วนใหญ่ อีกทั้ง Source code ที่มีอยู่ทั่วไปใน internet นั้น(ที่เกี่ยวกับเรื่องนี้นะ) ส่วนมากก็เป็น Assembly ดังนั้นวันนี้เราจะมาเริ่มกันที่การติดตั้ง MASM32 ซึ่งเป็น Assemble (compiler) ของค่าย M$ ที่ให้ใช้งานได้ฟรี และก็มีการใช้งานค่อนข้างง่าย คือมีความคล้ายกับภาษาระดับสูงเช่น C/C++ และเพิ่มความสะดวกในการทำงาน เราก็จะมาดูการติดตั้งและ Config IDE ที่ช่วยให้เราเขียนโปรแกรม Assembly ได้สะดวกขึ้นนั่นก็คือ WinASM
วิธีติดตั้ง MASM
ก่อนอื่นไปดาว์นโหลด
MASM32 และ
WinAsm กันมาก่อนนะครับ หลังจากนั้นแตกไฟล์และเรียก Install.exe เลือก Drive ที่ต้องการติดตั้ง
โปรแกรมติดตั้งจะทำการสร้าง Libraries สำหรับ MASM ซึ่งใช้เวลาติดตั้งพอสมควร
หลังจากทำการสร้าง Libraries เสร็จเรียบร้อยแล้ว จะมีหน้าต่างแสดงข้อความ “installation success” เป็นอันว่าเราติดตั้ง MASM32 เป็นที่เรียบร้อยแล้ว
คำแนะนำ ทำควรทำการสร้าง Libraries บนเครื่องเราเองเสมอ ดีกว่าที่จะ copy มาจากเครื่องอื่น เพื่อป้องกันไฟล์สำคัญๆ เสียหาย
การติดตั้ง WinAsm Studio
ต่อไปเรามาดูการติดตั้ง WinAsm ซึ่งก็เป็น IDE สำหรับการเขียนภาษา Assembly ช่วยอำนวยความสะดวกให้เราเป็นอย่างมากในการเขียนโปรแกรม ซึ่งมีทั้งส่วนในการสร้าง UI (User Interfaces) หรือ Resource ที่เรารู้จักกันในการเขียนโปรแกรมภาษา C++ นั้นเอง รวมไปถึงการ Compile และ Debug โปรแกรมที่เราเขียนขึ้นมาให้ง่ายขึ้น ไปดูการติดตั้งกันเลยครับ
1. แตกไฟล์ไปยัง C:\Program Files\WinAsm Studio (หรือจะเอาไว้ที่ไหนก็ได้ตามชอบ)
2. ต่อไปก็ทำการ Config นิดหน่อยให้ทำงานได้ดียิ่งขึ้น เปิดโปรแกรม WinAsm และไปที่เมนู Tools>Options… ไปยังแท็ป Files&Path ตรวจสอบ Path ต่าง ๆ เพื่อให้มั่นใจได้ว่าชี้ไปยังตำแหน่งที่ถูกต้อง
3. ตั้งค่า โปแกรมที่จะใช้ในการ Debug และ resource editor ได้จากแท็ป Miscellaneous
เมื่อเราตั้งค่าโปรแกรมที่เราจะใช้ในการ Debug เสร็จแล้ว (ในที่นี้เราใช้ OllyDBG) พอเราเขียนโปรแกรมแล้วเราต้องการจะ Debug ให้เรากด Ctrl+F9 โปรแกรม OllyDBG ถูกเปิดขึ้นมาพร้อมโหลด exe ปัจจุบันขึ้นมาทันที นับว่าสะดวกอย่างยิ่งในการเขียนโปรแกรม
หมายเหตุ หากเรากด Ctrl+F9 แล้วมีหน้าต่าง MiniDBG เปิดขึ้นมาแทน ให้เราเข้าไปเช็คที่ Tools>Add-Ins manager… เอาเครื่องหมายถูกหน้า Loader/Unloaded และ Load On StartUp ออกดังรูป
4. ต่อไปเป็นการตั้งค่าทั่วๆ ไป ลองตรวจสอบดูว่าเป็นเหมือนในรูปหรือไม่

5. ต่อไปมาให้ตรวจดู Help File (WinAsm.chm) ให้อยู่ใน C:\Program Files\WinAsm Studio\Help.
6. เราสามารถเพิ่ม Utilities อื่น ๆ ได้จาก Tools Manager… (อยู่ใต้ Tools เมนู) Tools ที่น่าสนใจที่น่าจะเพิ่มเข้าไป คือ mnemonix.exe ทำหน้าที่แปลงจาก hex opcode ไปเป็น mnemonic code ที่อ่านได้ และอีกอันหนึ่งก็คือ liblist.exe ใช้สำหรับหาว่า API Function ใดๆ อยู่ใน DLL ตัวไหน และตัวอื่นๆ ที่น่าจะเพิ่มเข้าไปด้วยเหมือนกันก็คือ Table Extractor, RGN Creator และ Help ไฟล์อื่น ๆ
7. Add-Ins Manager… เป็นการตัวจัดการ Add-ins ต่าง ๆ ที่น่าสนใจ สามารถหาไดจากเว็บไซต์ WinASM โดยเฉพาะอย่างยิ่ง NewProjectWizard เป็นตัวที่ปรับปรุงจากที่มีอยู่และช่วยงานเราได้เป็นอย่างมาก หากเราต้องการติดตั้ง Add-ins เพิ่มเติมสามารถทำได้ง่าย ๆ โดยการ Copy DLL ของ Add-In ไปยังไดเร็คทรอรี่ “C:\Program Files\WinAsm Studio\AddIns” จากนั้นปิด/เปิด WinAsm ใหม่อีกครั้ง ไปที่เมนู Add-Ins>Add-Ins manager และทำการตั้งค่าตามที่ต้องการ มีตัวที่น่าลองหามาใช้งานดูก็คือ Quick Help system (QHS) และ H2 Context Help ลองหามาใช้ดูนะครับ :-)
QHS จะเปิดแถบด้านข้างซึ่งอธิบายความหมายของคำที่อยู่ภายใต้ cursor ในหน้าต่าง code edit คำอธิบายความหมายของแต่ละคำเก็บไว้คนละ .rft ไฟล์อยู่ใน C:\Program Files\WinAsm Studio\Help\QHS\ ซึ่งเราสามารถเพิ่มหรือแก้ไขได้ง่ายๆ ด้วยตัวเอง.
ลองเอาไปติดตั้งดูก่อนนะครับ :-) บทความต่อไปต้องได้ใช้แน่นอน.... และเจอกันตอนหน้าครับ