Một hook là chức năng được cung cấp bởi phần mềm để người dùng phần mềm đó có mã riêng được gọi trong các trường hợp nhất định. Mã đó có thể tăng hoặc thay thế mã hiện tại.
Vào thời xa xưa khi máy tính thực sự là cá nhân và virus ít phổ biến hơn (tôi đang nói đến thập niên 80), việc đơn giản là tự vá phần mềm hệ điều hành để gọi mã của bạn. Tôi nhớ đã viết một phần mở rộng cho ngôn ngữ Applesoft BASIC trên Apple II, đơn giản là nối mã của tôi vào trình thông dịch BASIC bằng cách thực hiện cuộc gọi đến mã của tôi trước khi bất kỳ dòng nào được xử lý.
Một số máy tính có các móc được thiết kế sẵn, một ví dụ là luồng I / O trên Apple II. Nó đã sử dụng một cái móc như vậy để tiêm toàn bộ hệ thống phụ đĩa (ROM Apple II ban đầu được chế tạo vào thời mà băng cassette là phương tiện lưu trữ chính cho PC). Bạn đã kiểm soát các đĩa bằng cách in mã ASCII 4 ( CTRL-D
) theo lệnh bạn muốn thực thi sau đó a CR
và nó đã bị hệ thống phụ đĩa chặn lại, nó đã tự móc vào các thói quen in ROM của Apple.
Vì vậy, ví dụ, các dòng:
PRINT CHR(4);"CATALOG"
PRINT CHR(4);"IN#6"
sẽ liệt kê nội dung đĩa sau đó khởi tạo lại máy. Điều này cho phép các thủ thuật như bảo vệ các chương trình BASIC của bạn bằng cách đặt dòng đầu tiên là:
123 REM XIN#6
sau đó sử dụng POKE
để chèn CTRL-D
ký tự vào vị trí X
. Sau đó, bất cứ ai cố gắng liệt kê nguồn của bạn sẽ gửi chuỗi khởi tạo lại thông qua các thói quen đầu ra nơi hệ thống phụ đĩa sẽ phát hiện ra nó.
Đó thường là loại mánh khóe mà chúng tôi phải dùng đến, để có được hành vi mà chúng tôi muốn.
Ngày nay, với hệ điều hành an toàn hơn, nó cung cấp các phương tiện cho chính hook, vì bạn không còn phải sửa đổi hệ điều hành "trên máy bay" hoặc trên đĩa.
Họ đã tồn tại trong một thời gian dài . Máy tính lớn có chúng (được gọi là lối thoát) và rất nhiều phần mềm máy tính lớn sử dụng các cơ sở đó ngay cả bây giờ. Ví dụ: hệ thống kiểm soát mã nguồn miễn phí đi kèm với z / OS (được gọi là SCLM) cho phép bạn thay thế hoàn toàn hệ thống con bảo mật bằng cách chỉ cần đặt mã của riêng bạn vào lối ra.