hook คือฟังก์ชันการทำงานที่ให้บริการโดยซอฟต์แวร์สำหรับผู้ใช้ซอฟต์แวร์นั้นเพื่อให้มีรหัสของตัวเองที่เรียกว่าภายใต้สถานการณ์บางอย่าง รหัสนั้นสามารถเพิ่มหรือแทนที่รหัสปัจจุบันได้
ในสมัยก่อนเมื่อคอมพิวเตอร์เป็นส่วนตัวอย่างแท้จริงและไวรัสนั้นแพร่หลายน้อยกว่า (ฉันกำลังพูดถึงยุค 80) มันเป็นเรื่องง่ายเหมือนการติดตั้งซอฟต์แวร์ระบบปฏิบัติการเพื่อเรียกรหัสของคุณ ฉันจำได้ว่าเขียนส่วนขยายไปยังภาษา Applesoft BASIC ใน Apple II ซึ่งเพียงแค่ติดรหัสของฉันไว้ในล่ามพื้นฐานโดยการฉีดการโทรไปยังรหัสของฉันก่อนที่จะประมวลผลบรรทัดใด ๆ
คอมพิวเตอร์บางเครื่องมี hooks ที่ออกแบบไว้ล่วงหน้าตัวอย่างหนึ่งคือ I / O สตรีมบน Apple II มันใช้เบ็ดนี้เพื่อฉีดระบบย่อยของดิสก์ทั้งหมด (แต่เดิม Apple II ROM ถูกสร้างขึ้นในสมัยที่เทปเป็นสื่อกลางในการเก็บข้อมูลหลักสำหรับพีซี) คุณควบคุมดิสก์โดยการพิมพ์รหัส ASCII 4 ( CTRL-D
) แล้วตามด้วยคำสั่งที่คุณต้องการเรียกใช้จากนั้น a CR
และถูกดักจับโดยระบบย่อยของดิสก์ซึ่งติดอยู่ในรูทีนการพิมพ์ Apple ROM
ตัวอย่างเช่นบรรทัด:
PRINT CHR(4);"CATALOG"
PRINT CHR(4);"IN#6"
จะแสดงรายการเนื้อหาของดิสก์จากนั้นเริ่มต้นเครื่องใหม่ สิ่งนี้อนุญาตให้ใช้เทคนิคต่าง ๆ เช่นการปกป้องโปรแกรมพื้นฐานของคุณโดยตั้งค่าบรรทัดแรกเป็น
123 REM XIN#6
จากนั้นใช้POKE
เพื่อแทรกCTRL-D
อักขระในตำแหน่งที่X
เคยเป็น จากนั้นทุกคนที่พยายามแสดงรายการที่มาของคุณจะส่งลำดับการเริ่มต้นใหม่ผ่านรูทีนเอาต์พุตที่ระบบย่อยของดิสก์จะตรวจพบ
นั่นมักเป็นกลอุบายที่เราต้องใช้เพื่อให้ได้พฤติกรรมที่เราต้องการ
ทุกวันนี้ด้วยระบบปฏิบัติการที่มีความปลอดภัยมากขึ้นก็มีสิ่งอำนวยความสะดวกสำหรับ hooks เองเนื่องจากคุณไม่ควรแก้ไขระบบปฏิบัติการ "บนเครื่องบิน" หรือบนดิสก์อีกต่อไป
พวกเขาอยู่แถวนี้มานานแล้ว เมนเฟรมมีพวกเขา (เรียกว่าออก) และซอฟต์แวร์เมนเฟรมจำนวนมากใช้สิ่งอำนวยความสะดวกเหล่านั้นแม้ตอนนี้ ตัวอย่างเช่นระบบควบคุมซอร์สโค้ดฟรีที่มาพร้อมกับ z / OS (เรียกว่า SCLM) ช่วยให้คุณสามารถแทนที่ระบบย่อยการรักษาความปลอดภัยโดยเพียงแค่วางรหัสของคุณเองในทางออก