Trao đổi với tôi

http://www.buidao.com

4/15/10

[Hooking] Debug Hooking (Part 3)

Debug Hooking (Part 3)
Author: Benina 2010
Chúng ta đã tìm hiểu qua Debug Hooking part 1, part 2. Trong tut này chúng ta sẽ nghiên cứu tiếp đề tài này nhưng không sử dụng các BP mà sử dụng Memory Protection để hook hàm. Kỹ thuật này do tôi phát triển thêm.
Kỹ thuật này tôi xin mô tả sơ qua như sau: Nếu ta muốn hook hàm nào đó, thay vì ta sẽ set một breakpoint trên điểm đầu hàm đó. Nhưng ở đây chúng ta sẽ thay đổi cơ chế bảo vệ memory page tại điểm đầu hàm thành PAGE_NOACCESS. Tức là không cho truy xuất page này. Khi chương trình thực thi gọi hàm, thì bộ vi xử lý sẽ quăng ra một exception. Chúng ta có thể điều khiển được hàm xử lý exception này bằng cách lập trình. Vì vậy chúng ta có thể làm lệch luồng điều khiển chương trình đi theo hướng ta mong muốn.
Mục đích chính trong tut này cũng như tut trước là tôi sẽ đưa ra một framework cho tôi lưu trữ để dành sử dụng khi sau này .
Ưu điểm của pp này (part 3) là thực hiện được trên các Win mà ít bị dò tìm ra do không thay đổi gì hàm cả .


http://www.mediafire.com/?oydmvenxmmo