« Home « Kết quả tìm kiếm

Lập trình C trên Windows Kỹ thuật lập trình Hook


Tóm tắt Xem thử

- Lập trình C trên Windows.
- Kỹ thuật lập trình Hook (phụ lục).
- Khoa CNTT – ĐH.KHTN.Tp.HCM Email: nttuan@ fit.hcmuns.edu.vn.
- Lập trình sự kiện.
- Giới thiệu kỹ thuật Hook.
- Minh họa cách lập trình Hook.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 3.
- Các loại Hook.
- Thủ tục Hook (Hook procedure).
- Chuỗi Hook (Hook chain).
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 5.
- Giới thiệu kỹ thuật Hook – Hook là gì.
- Hook là một cơ chế trong lập trình sự kiện,….
- …cho phép ứng dụng có thể cài đặt một hàm giám sát vào quá trình lưu chuyển các thông điệp.
- Æ ứng dụng có thể chặn và xử lý các thông điệp trước khi nó đến được cửa sổ/ứng dụng đích.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 7.
- Có 2 cách cài đặt Hook:.
- Cài đặt cục bộ (Thread Hook): hàm giám sát được cài vào sau Thread message Queue Æ có tác dụng giám sát tất cả các thông điệp trong một tiểu trình hay một ứng dụng cụ thể.
- Cài đặt toàn cục (Global Hook): hàm giám sát được cài vào sau Systemd message Queue Æ có tác dụng giám sát tất cả các thông điệp trong toàn hệ thống.
- Với Global Hook, hàm cài đặt phải được lưu trong một DLL.
- Giới thiệu kỹ thuật Hook – Mục tiêu của Hook.
- Giám sát bàn phím: các ứng dụng gõ tiếng Việt, điều khiển thiết bị bằng bàn phím,….
- Giám sát mouse: Click’n See.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 9.
- Giới thiệu kỹ thuật Hook – Các loại Hook.
- WH_KEYBOARD: Hook giám sát thông điệp từ bàn phím: WM_KEYDOWN, WM_KEYUP.
- WH_MOUSE: Hook giám sát thông điệp từ chuột.
- WH_GETMESSAGE: Hook giám sát thông điệp chung (keyboard, mouse, hay các message khác).
- Giới thiệu kỹ thuật Hook – Các loại Hook ?...(tt).
- WH_JOURNALRECORD: giám sát và ghi nhận lại (record) các thông điệp từ chuột và bàn phím.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 11.
- Giới thiệu kỹ thuật Hook – Thủ tục Hook (Hook procedure).
- Thủ tục Hook: là hàm dùng để giám sát các thông điệp mà ứng dụng cài vào hệ thống.
- Giới thiệu kỹ thuật Hook – Thủ tục Hook…(tt).
- Có thể cài đặt nhiều Hook Procedure bằng cách dùng hàm SetWindowsHook hay SetWindowsHookEx.
- Hook Procedure cài sau sẽ luôn nằm ở vị trí đầu tiên trong dãy thủ tục Hook.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 13.
- Giới thiệu kỹ thuật Hook – Chuỗi Hook (Hook chain).
- Chuỗi Hook: là một dãy các thủ tục Hook được liên kết theo thứ tự độ ưu tiên thực hiện giảm dần.
- HĐH Windows quản lý các chuỗi Hook riêng biệt cho từng loại Hook.
- Khi có 1 message xảy ra, Windows sẽ gởi message đó đến thủ tục Hook đầu tiên trong chuỗi Hook có loại tương ứng….
- …message sẽ được chuyển lần lượt đến các thủ tục Hook kế tiếp sau đó.
- Giới thiệu kỹ thuật Hook – Chuỗi Hook…(tt).
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 15.
- Cài đặt thủ tục Hook.
- Ví dụ thủ tục Hook.
- Chuyển message cho thủ tục Hook kế tiếp.
- Hủy bỏ cài đặt Hook.
- Minh họa cách lập trình Hook - Các hàm thao tác với Hook.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 17.
- Minh họa cách lập trình Hook - Cài đặt thủ tục Hook.
- Một ứng dụng cần phải thực hiện việc Cài đặt thủ tục Hook khi muốn giám sát message.
- Hàm SetWindowsHookEx sẽ cài đặt thủ tục Hook vào điểm bắt đầu của chuỗi Hook.
- hookProc: con trỏ đến thủ tục Hook.
- Trường hợp Global Hook, thủ tục Hook phải lưu trong DLL.
- với Thread Hook, thủ tục Hook có thể chứa trong chính thread tương ứng.
- hIns: handle của module chứa thủ tục Hook.
- Minh họa cách lập trình Hook - Cài đặt thủ tục Hook…(tt).
- Ví dụ 1: cài đặt Keyboard Hook toàn cục (load-time) SetWindowsHookEx(WH_KEYBOARD,.
- Ví dụ 2: cài đặt Keyboard Hook toàn cục (run-time) HOOKPROC fnKeyboardProc;.
- Ví dụ 3: cài đặt Keyboard Hook cục bộ.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 19.
- Minh họa cách lập trình Hook - Ví dụ thủ tục Hook Ví dụ 4: Thủ tục hook cho Keyboard.
- Lập trình Hook - Chuyển message cho thủ tục Hook kế tiếp.
- Sau khi thực hiện xong, thủ tục Hook sẽ gọi hàm CallNextHookEx để chuyển message đến thủ tục Hook kế tiếp trong chuỗi Hook.
- code, wParam, lParam: các giá trị của thủ tục Hook hiện tại truyền cho thủ tục Hook kế tiếp trong chuỗi Hook.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 21.
- Lập trình Hook - Chuyển message cho thủ tục Hook kế tiếp….
- Thủ tục Hook có thể không chuyển thông điệp đến thủ tục Hook kế tiếp trong chuỗi Hook.
- Lập trình Hook - Hủy bỏ cài đặt Hook.
- Sử dụng kỹ thuật Hook sẽ làm giảm khả năng thực thi của hệ thống.
- C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 23

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt