protect

ถ้าเอาบทความไปเผยแพร่แล้วไม่ให้เครดิต ดำเนินคดีด้วย พรบ. คอมพิวเตอร์ฉบับใหม่ ขั้นสูงสุดและไม่ยอมความครับ

วันจันทร์ที่ 3 สิงหาคม พ.ศ. 2558

Execute โปรแกรม Managed Code ตอนที่ 1


จากบทความที่แล้วผมได้อธิบายโครงสร้างของ file Manage code ว่ามีทั้ง 4 ส่วนและแต่ล่ะส่วนไม่ได้มีการเก็บ Native code ไปให้ CPU ประมวลผลเลย

การอธิบายที่ดีที่สุดคือการยกตัวอย่าง ตัวอย่าง code ข้างล่างเขียนขึ้นด้วยภาษา C# เป็นตัวอย่างง่ายๆ น่ะครับ

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
            Console.WriteLine("Good Bye");
        }
    }
}

เมื่อเรา coding เสร็จ เราก็จะทำการ compile code กัน ตัว C# compiler จะทำการสร้าง file มาให้ 2 file ที่มีนามสกุล .EXE และ นามสกุล .PDB โปรแกรมที่เราจะเอาไปใช้งานก็มีแค่ file นามสกุล .EXE

เนื่องจาก file .EXE เป็น Managed code เราจึงสามารถดูเนื้อหาภายใน file ได้ทาง Microsoft ได้ออก tool ที่ชื่อว่า CorFlags.exe เป็นโปรแกรมสำหรับเรียกดู header information ของ Managed code รูปแบบคำสั่งคือ

CorFlags <ManagedCode.exe>


จากตัวอย่าง code ข้างบน เราสามารถใช้คำสั่ง

CorFlags HelloWorld.exe


นี้เป็นตัวอย่างผลที่ได้จากคำสั่ง CorFlags.



จะเห็นว่า โปรแกรมนี้ต้องการ .Net Framework version 4.0 และต้องการ CLR version 2.5 CPU Header เป็นชนิด PE32 สำหรับ ILONLY จะหมายถึงเนื้อหาภายใน Managed code มีแต่เนื้อหา IL และไม่มี unsafe code

แต่ถ้าใครไม่สะดวกที่จะใช้ command mode ยังมี Tool อีก 1 ชนิดคือ CFF Explorer เป็น GUI application ที่ใช้สำหรับดู header ของ file Managed code.

Microsoft ยังมี tool อีกตัวที่ชื่อว่า ILDASM เอาไว้ดู IL code ของ Managed code ตัวอย่างคำสั่งน่ะครับ


ILDASM HelloWorld.exe


จะได้ดังรูปครับ



แต่ความสามารถ ILDASM ค่อนข้างจะมีจำกัดผมขอแนะนำโปรแกรมที่ชื่อว่า .Net Reflector โปรแกรมที่เอาไว้ดู IL code ที่ดีตัวหนึ่งเลยครับ ถ้าอยากให้ review โปรแกรม .Net Reflector ขอแค่บอกครับ เดียวจัดให้

อา .... ผมลืมบอกไปว่า Tools ของ Microsoft จะมาพร้อมกับ Visual Studio และจะต้อง รัน โปรแกรม command prompt ของ Visual Studio เท่านั้น น่ะครับ ถ้าใช้ command prompt ของ Windows เองจะใช้ได้ไม่ค่อยดีน่ะครับ วิธีเข้า command prompt ของ Visual Studio ดูได้ตามรูปเลยครับ



ตอนหน้าเจอกันแน่นอนครับ execute Managed code.
TuChay





ไม่มีความคิดเห็น:

แสดงความคิดเห็น