0Pricing
Ethical Hacking Academy · บทเรียน

พื้นฐานการถอดแอสเซมบลี

Ghidra และ IDA

พื้นฐานการถอดแอสเซมบลี เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน

การแยกคำสั่งคืออะไร

การแยกคำสั่งจะแปลงโค้ดเครื่องของไบนารีกลับเป็นคำสั่งแอสเซมบลีที่มนุษย์อ่านได้ ทำให้คุณอ่านได้อย่างชัดเจนว่า CPU จะเรียกใช้คำสั่งใด

วิธีนี้จำเป็นเมื่อไม่มีซอร์สโค้ด ซึ่งเป็นกรณีปกติของมัลแวร์

การแยกคำสั่งเทียบกับการถอดกลับเป็นโค้ด

การแยกคำสั่งจะสร้างแอสเซมบลี ส่วนการถอดกลับเป็นโค้ดจะไปไกลกว่านั้นด้วยการสร้างซูโดโค้ดระดับสูงที่มีลักษณะใกล้เคียงภาษา C ขึ้นมาใหม่

ซูโดโค้ดอ่านได้เร็วกว่า ส่วนแอสเซมบลีมีความแม่นยำ นักวิเคราะห์ใช้ทั้งสองแบบและสลับไปมาตามความจำเป็น

Ghidra

Ghidra เป็นชุดเครื่องมือวิศวกรรมย้อนกลับแบบฟรีและโอเพนซอร์สจาก NSA สามารถแยกคำสั่งของสถาปัตยกรรมได้หลายแบบ และมีตัวถอดกลับเป็นโค้ดที่มีประสิทธิภาพ

ด้วยราคาและความสามารถ Ghidra จึงเป็นเครื่องมือเริ่มต้นที่นักวิเคราะห์ส่วนใหญ่เลือกใช้

IDA Pro

IDA Pro เป็นมาตรฐานเชิงพาณิชย์ที่มีประวัติยาวนาน โดดเด่นด้านเครื่องมือแยกคำสั่งที่ทรงพลัง และมีตัวถอดกลับเป็นโค้ดเมื่อใช้ปลั๊กอิน Hex-Rays

IDA Free และเครื่องมืออื่น ๆ เช่น Binary Ninja และ radare2/Cutter ก็เป็นทางเลือกที่ได้รับความนิยม

การโหลดไบนารี

คุณนำเข้าตัวอย่างไปยังเครื่องมือ ซึ่งจะวิเคราะห์โดยอัตโนมัติด้วยการระบุฟังก์ชัน การอ้างอิงข้าม และสตริง

เครื่องมือจะสร้างแผนผังของโปรแกรมที่คุณนำทางได้ โดยเริ่มจากจุดเริ่มต้นการทำงานหรืออิมพอร์ตที่น่าสนใจ

การอ่านแอสเซมบลี

คำสั่งแอสเซมบลีใช้เคลื่อนย้ายและประมวลผลข้อมูล ตัวอย่างคำสั่ง x86 ที่พบบ่อยมีดังนี้:

  • mov: คัดลอกข้อมูล
  • push / pop: การทำงานกับสแตก
  • call / ret: การเรียกและการส่งคืนจากฟังก์ชัน
  • cmp / jmp / je: การเปรียบเทียบและการแตกแขนง
mov eax, [ebp-4]
cmp eax, 0
je  short loc_401050

การอ้างอิงข้าม

การอ้างอิงข้าม (xrefs) แสดงว่าฟังก์ชันหรือสตริงถูกใช้งานที่ใด การค้นหา xrefs ไปยัง API ที่น่าสงสัย เช่น CreateRemoteThread จะพาคุณไปยังโค้ดที่เกี่ยวข้องโดยตรง

วิธีนี้ช่วยให้คุณนำทางตามพฤติกรรม แทนที่จะต้องอ่านโค้ดจากต้นจนจบ

การติดตามการเรียกใช้ API

การเรียกใช้ Windows API ที่นำเข้าเผยให้เห็นเจตนา การพบ VirtualAlloc ตามด้วย WriteProcessMemory และ CreateRemoteThread เป็นลำดับ การฉีดโพรเซส แบบคลาสสิก

การจดจำรูปแบบเหล่านี้คือหัวใจของการทำวิศวกรรมย้อนกลับมัลแวร์

มุมมองกราฟ

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

สำหรับตรรกะที่ซับซ้อน มุมมองนี้อ่านได้ง่ายกว่ารายการคำสั่งแบบเรียงเป็นเส้นตรงมาก

การทำงานร่วมกับการดีบัก

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

การเชื่อมต่อไปสู่การวิเคราะห์แบบไดนามิกนี้สำคัญอย่างยิ่งสำหรับตัวอย่างที่ถูกแพ็ก ซึ่งบทเรียนถัดไปจะกล่าวถึง

การเปลี่ยนชื่อและการใส่คำอธิบายประกอบ

เมื่อคุณเข้าใจฟังก์ชันและตัวแปรแล้ว ให้เปลี่ยนชื่อและเพิ่มหมายเหตุในเครื่องมือถอดแยกชิ้นส่วน การเปลี่ยน sub_401000 เป็น decrypt_config ทำให้การวิเคราะห์ส่วนที่เหลือง่ายขึ้นมาก

การติดป้ายกำกับทีละน้อยเช่นนี้คือวิธีที่นักวิเคราะห์ค่อย ๆ สร้างตรรกะทั้งหมดของตัวอย่างมัลแวร์ขึ้นใหม่

ตรวจสอบความเข้าใจ

ทบทวนความแตกต่างระหว่างผลลัพธ์หลักสองรูปแบบของ Ghidra

สรุปทบทวน

ขณะนี้คุณเข้าใจพื้นฐานของการถอดแยกชิ้นส่วนแล้ว:

  • การถอดแยกชิ้นส่วนให้ผลเป็นภาษาแอสเซมบลี ส่วนการดีคอมไพล์ให้ผลเป็นรหัสเทียม
  • Ghidra (ฟรี) และ IDA Pro เป็นเครื่องมือหลัก
  • ใช้การอ้างอิงข้ามและรูปแบบการเรียกใช้ API (เช่น ลำดับการฉีดโพรเซส) เพื่อสำรวจโค้ดตามพฤติกรรม
  • มุมมองกราฟช่วยแสดงลำดับการควบคุม และควรใช้ร่วมกับเครื่องมือดีบักเมื่อวิเคราะห์โค้ดที่ทำให้อ่านยาก

ถัดไปคุณจะจัดการตัวแพ็กด้วยการคลายแพ็ก

คำถามที่พบบ่อย

บทเรียน “พื้นฐานการถอดแอสเซมบลี” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐานการถอดแอสเซมบลี” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐานการถอดแอสเซมบลี”

Ghidra และ IDA คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “พื้นฐานการถอดแอสเซมบลี” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม

ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การวิเคราะห์แบบสแตติก
  2. การวิเคราะห์แบบพลวัต
  3. พื้นฐานการถอดแอสเซมบลี
  4. การแกะแพ็ก
← กลับไปที่ Ethical Hacking Academy