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

การแกะแพ็ก

เอาชนะการทำให้อ่านยาก

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

การแพ็กคืออะไร

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

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

เหตุใดจึงต้องคลายแพ็ก

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

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

การตรวจหาตัวแพ็ก

เครื่องมืออย่าง Detect It Easy (DIE) และ PEiD ระบุตัวแพ็กที่รู้จักได้จากลายเซ็น เอนโทรปีสูงและตารางการนำเข้าขนาดเล็กก็เป็นเบาะแสสำคัญเช่นกัน

ตัวแพ็กที่พบได้บ่อย ได้แก่ UPX, ASPack และ Themida

die sample.exe
# Packer: UPX(3.96)

การคลายแพ็ก UPX

UPX เป็นตัวแพ็กที่พบได้ทั่วไปและไม่เป็นอันตราย ซึ่งสามารถย้อนกลับได้ด้วยเครื่องมือของตัวเอง ตัวเลือก -d จะคลายการบีบอัดไบนารีกลับเป็นรูปแบบเดิม

ตัวอย่างจากโลกจริงจำนวนมากใช้ UPX หรือ UPX ที่ถูกดัดแปลงเล็กน้อย ดังนั้นนี่จึงมักเป็นความพยายามแรก

upx -d sample.exe

การคลายแพ็กด้วยตนเอง: แนวคิด

ตัวแพ็กแบบกำหนดเองไม่สามารถย้อนกลับได้ด้วยเครื่องมือสำเร็จรูป แต่คุณสามารถปล่อยให้ส่วนต้นคลายแพ็กตัวเองในหน่วยความจำ แล้วเก็บผลลัพธ์ไว้

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

การค้นหา OEP

จุดเริ่มต้นเดิม (OEP) คือจุดที่การทำงานกระโดดไปเมื่อการคลายแพ็กเสร็จสิ้น การไปถึง OEP หมายความว่าโค้ดจริงอยู่ในหน่วยความจำแล้ว

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

จุดหยุดสำหรับการคลายแพ็ก

เทคนิคที่ใช้กันทั่วไปคือการตั้งจุดหยุดฮาร์ดแวร์บนสแตก (ส่วนต้นมักกู้คืนรีจิสเตอร์ก่อนกระโดดไปยัง OEP) หรือตั้งจุดหยุดที่การเรียกใช้ API ทั่วไปซึ่งโค้ดที่คลายแพ็กแล้วใช้

เมื่อจุดหยุดทำงานที่ OEP โค้ดต้นฉบับจะถูกถอดรหัสอย่างสมบูรณ์

การดัมป์โพรเซส

เมื่ออยู่ที่ OEP ให้ดัมป์หน่วยความจำของโพรเซสลงในไฟล์ใหม่ เครื่องมืออย่าง Scylla (ที่มีอยู่ใน x64dbg) หรือ PE-sieve จะเก็บอิมเมจที่คลายแพ็กแล้ว

ดัมป์นี้มีคำสั่งจริงอยู่แล้ว แต่ในตอนนี้อาจยังทำงานได้ด้วยตัวเองไม่ได้

การสร้างการนำเข้าใหม่

หลังการดัมป์ ตารางที่อยู่การนำเข้า มักเสียหาย เพราะตัวแพ็กแก้ไขการนำเข้าขณะทำงาน Scylla สามารถสร้าง IAT ใหม่ เพื่อให้วิเคราะห์ไฟล์ที่ดัมป์ได้

เมื่อแก้ไขการนำเข้าเรียบร้อยแล้ว คุณสามารถโหลดดัมป์ที่สะอาดเข้าสู่ Ghidra หรือ IDA ได้

การทำให้อ่านยากรูปแบบอื่น

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

วิธีจัดการสิ่งเหล่านี้ต้องพิจารณาเป็นกรณี ๆ ไป โดยมักผสานการติดตามแบบไดนามิกกับการอ่านโค้ดแบบสถิติอย่างอดทน

การตรวจสอบตัวอย่างที่คลายแพ็กแล้ว

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

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

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

ทบทวนว่า OEP บ่งบอกอะไรระหว่างการคลายแพ็กด้วยตนเอง

สรุปทบทวน

ขณะนี้คุณเข้าใจการคลายแพ็กแล้ว:

  • การแพ็กซ่อนโค้ดจริง ตรวจจับได้ด้วย DIE/PEiD เอนโทรปีสูง และการนำเข้าจำนวนน้อย
  • ตัวแพ็กที่รู้จัก เช่น UPX สามารถคลายแพ็กด้วยเครื่องมือ (upx -d)
  • สำหรับตัวแพ็กแบบกำหนดเอง ให้เรียกใช้ภายใต้เครื่องมือดีบัก ค้นหา OEP ดัมป์ด้วย Scylla และสร้างการนำเข้าใหม่
  • การทำให้อ่านยากรูปแบบอื่น (สตริงที่เข้ารหัส การป้องกันการดีบัก) ต้องจัดการเป็นกรณี ๆ ไป

คุณเรียนจบหลักสูตรวิศวกรรมย้อนกลับมัลแวร์แล้ว

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

บทเรียน “การแกะแพ็ก” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การแกะแพ็ก”

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

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

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

บทเรียน “การแกะแพ็ก” ใช้เวลานานแค่ไหน

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

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

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

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

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