Danh mục

Bài giảng Kỹ thuật lập trình Hook

Số trang: 17      Loại file: pdf      Dung lượng: 586.01 KB      Lượt xem: 12      Lượt tải: 0    
Thu Hiền

Hỗ trợ phí lưu trữ khi tải xuống: 10,000 VND Tải xuống file đầy đủ (17 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Kỹ thuật lập trình Hook giới thiệu đến các bạn những khái niệm cơ bản sự khác biệt giữa lập trình Windows và DOS, lập trình Windows, tìm hiểu về Hook, minh họa cách lập trình Hook. Mời các bạn tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình Hook Win32ProgrammingTutorials Kỹ thuật lập trình Hook Kỹ thuật lập trình Hooks NhatPhuongLe For more updated info, please check www.reaonline.net Trang 1 http://nhatphuongle.spaces.live.com Reverse Engineering Association Kỹ thuật lập trình Hook MỤC LỤCI. Các khái niệm cơ bản .................................................................................................................... 3 1. Sự khác biệt giữa lập trình Windows và DOS........................................................................... 3 2. Lập trình Windows .................................................................................................................... 3 a) Thông điệp và hàng đợi thông điệp ....................................................................................... 3 b) Lập trình sự kiện .................................................................................................................... 4II. Tìm hiểu về Hook.......................................................................................................................... 7 1. Hook là gì?................................................................................................................................. 7 2. Phân loại Hook .......................................................................................................................... 9 a) Phân loại theo phạm vi hoạt động.......................................................................................... 9 b) Phân loại theo thông điệp xử lý ........................................................................................... 10 3. Thủ tục Hook – Chuỗi Hook ................................................................................................... 12 a) Thủ tục Hook ....................................................................................................................... 12 b) Chuỗi Hook.......................................................................................................................... 13III. Minh họa cách lập trình Hook ................................................................................................. 15 1. Cài đặt thủ tục Hook................................................................................................................ 15 2. Chuyển thông điệp đến thủ tục Hook kế tiếp .......................................................................... 16 3. Hủy bỏ cài đặt Hook................................................................................................................ 17 NhatPhuongLe www.reaonline.net Trang 2 Reverse Engineering Association Kỹ thuật lập trình HookI. Các khái niệm cơ bản 1. Sự khác biệt giữa lập trình Windows và DOS Windows DOS Lập trình sự kiện dựa vào thông điệp Thực hiện tuần tự theo chỉ định Đa nhiệm Đơn nhiệm Hỗ trợ 32 bits hay hơn nữa Ứng dụng 16 bits Hỗ trợ nhiều công nghệ DLL, OLE, DDE, Không có COM, OpenGL, DirectX ....... ....... 2. Lập trình Windows a) Thông điệp và hàng đợi thông điệp Nhắc đến Windows, người ta thường nghĩ về nó như một hệ điều hành (HĐH) dễ sử dụng, ở đó, sự tương tác giữa người dùng với các ứng dụng cũng như với các thành phần tiện ích của Windows thông qua giao diện đồ họa (GUI) bằng các thao tác trên bàn phím và chuột vô cùng đơn giản. Một câu hỏi được đặt ra là: “Các ứng dụng làm thế nào để phân loại, lưu giữ cũng như phản hồi lại những tương tác đó cho người dùng?”. Đối với Windows vấn đề này được giải quyết một cách trọn vẹn: HĐH đưa ra cơ chế thông điệp (message) và hàng đợi thông điệp (message queue) cùng với tập hợp các cấu trúc dữ liệu và các hàm API hỗ trợ ứng dụng trong việc giao tiếp với người dùng. Windows có 2 loại hàng đợi thông điệp: Hàng đợi hệ thống (system queue) và hàng đợi ứng dụng (application queue). Hàng đợi hệ thống là hàng đợi duy nhất và được dùng chung cho toàn hệ thống, mọi tiến trình đang chạy đều chia sẻ hàng đợi này. Nhiệm vụ của hàng đợi hệ thống là nó ghi lại những sự kiện phần cứng (chuột, bàn phím, …) khi chúng xảy ra. NhatPhuongLe www.reaonline.net Trang 3 Reverse Engineering Association Kỹ thuật lập trình Hook Mỗi sự kiện sẽ được nhanh chóng chuyển thành thông điệp, sau đó Windows sẽlần lượt lấy thông điệp từ hàng đợi hệ thống để xem xét và chuyển những thông điệpđó đến chương trình ứng dụng tương ứng. Những thông điệp này khi được chuyển đếnứng dụng, chúng tạo thành hàng đợi ứng dụng. b) Lập trình sự kiện Mỗi ứng dụng có một hàng đợi ứng dụng khác nhau. Một ứng dụng nhận cácthông điệp từ hàng đợi ứng dụng bằng cách gọi hàm GetMessage, sau đó lại gọi tiếpTranslateMessage để dịch thông điệp, cuối cùng gọi hàm DispatchMessage để trả lạithông điệp cho Windows. Việc lấy thông điệp này cứ lặp đi lặp lại, tạo thành vòng lặpthông điệp. Vòng lặp này kết thúc khi hàm GetMessage trả về giá trị 0 nếu thông điệpcó định danh là WM_QUIT (0x0012). NhatPhuongLe ...

Tài liệu được xem nhiều: