การฮุก
ในการเขียนโปรแกรมคอมพิวเตอร์ การฮุก (อังกฤษ: hooking) คือเทคนิคที่ใช้ปรับเปลี่ยนหรือเสริมพฤติกรรมของระบบปฏิบัติการ แอปพลิเคชัน หรือส่วนประกอบอื่นของซอฟต์แวร์ โดยดักจับการเรียกใช้ฟังก์ชัน ข้อความ หรือเหตุการณ์ที่เกิดขึ้นระหว่างส่วนต่าง ๆ ของระบบ โค้ดที่ใช้จัดการกับการเรียกใช้หรือเหตุการณ์ที่ถูกดักจับนี้เรียกว่า ฮุก (hook)
เมธอดฮุกมีบทบาทสำคัญในแบบแผนเทมเพลตเมธอด ซึ่งทำให้คลาสย่อยสามารถขยายหรือปรับแต่งโค้ดพื้นฐานในคลาสนามธรรมได้ โดยทั่วไป เมธอดฮุกจะถูกประกาศไว้ในคลาสนามธรรมพร้อมพฤติกรรมเริ่มต้นที่อาจเว้นว่างไว้ เพื่อให้คลาสย่อยเขียนทับและกำหนดพฤติกรรมเฉพาะของตนเองได้
การฮุกถูกนำมาใช้ในหลายวัตถุประสงค์ เช่น การดีบั๊กและการขยายความสามารถของระบบ ตัวอย่างเช่น การดักจับเหตุการณ์จากแป้นพิมพ์หรือเมาส์ก่อนที่เหตุการณ์นั้นจะถูกส่งต่อไปยังแอปพลิเคชัน หรือการดักจับการเรียกระบบปฏิบัติการเพื่อตรวจสอบพฤติกรรมหรือปรับเปลี่ยนการทำงานของโปรแกรมหรือองค์ประกอบอื่น นอกจากนี้ การฮุกยังถูกใช้อย่างแพร่หลายในโปรแกรมทดสอบสมรรถนะ เช่น เครื่องมือวัดอัตราเฟรมในเกมสามมิติ โดยอาศัยการแทรกตัวเข้าไปในกระบวนการแสดงผลเพื่อเก็บข้อมูลระหว่างการทำงานของโปรแกรม
การฮุกอาจถูกนำไปใช้โดยโค้ดที่เป็นอันตรายได้เช่นกัน ตัวอย่างเช่น รูตคิต ซึ่งเป็นซอฟต์แวร์ที่พยายามซ่อนตัวเองโดยปลอมแปลงผลลัพธ์ของการเรียกใช้เอพีไอที่ตามปกติใช้ตรวจจับหรือเปิดเผยการมีอยู่ของตัวเอง มักอาศัยเทคนิคการฮุกเพื่อแทรกแซงการทำงานของระบบ
อ้างอิง
[แก้]- Jonathan Daniel (2013-11-27). "Hooking explained: detouring library calls and vtable patching in Windows/Linux/MAC-OSX". สืบค้นเมื่อ 2014-01-01.
- Binh Nguyen (2004-08-16). "Hacking-Lexicon / Linux Dictionary V 0.16". สืบค้นเมื่อ 2008-02-23.
Hook