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
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 ...
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ìm kiếm theo từ khóa liên quan:
Kỹ thuật lập trình Hook Lập trình Hook Bài giảng Kỹ thuật lập trình Hook Tìm hiểu về Hook Minh họa cách lập trình Hook Lập trình WindowsTài liệu liên quan:
-
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 186 0 0 -
bảo mật mạng các phương thức giả mạo địa chỉ IP fake IP
13 trang 160 0 0 -
information technology outsourcing transactions process strategies and contracts 2nd ed phần 3
65 trang 111 0 0 -
Excel add in development in c and c phần 9
0 trang 110 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Hướng dẫn lập trình OpenGL căn bản
33 trang 53 0 0 -
The CISA Prep Guide Mastering the Certified Information Systems Auditor Exam phần 1
60 trang 43 0 0 -
thủ thuật windows XP hay nhất phần 2
14 trang 42 0 0 -
Bài giảng Lập trình Windows nâng cao: ADO.NET - Bùi Công Danh
57 trang 38 0 0 -
Báo cáo nghiên cứu khoa học: Nghiên cứu phần mềm bãi giữ xe thông minh
37 trang 34 0 0