Trao đổi với tôi

http://www.buidao.com

4/12/10

[Hooking] Debug Hooking (Part 1)

Debug Hooking (Part 1)
Author: Benina 2010
Chúng ta đã tìm hiểu qua IAT Hooking, EAT Hooking và Patch Hooking. Hôm nay tôi sẽ làm tiếp loạt bài này với phương pháp Debug Hooking. Kỹ thuật này tôi xin mô tả sơ qua như sau: Nếu ta muốn hook hàm nào đó, ta sẽ set một breakpoint trên điểm đầu hàm đó. 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 các 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.
Kỹ thuật này thật sự đòi hỏi quá nhiều kiến thức về hệ thống. Tôi không thể làm rõ ràng tất cả cho các bạn newbiez, mong mọi người thông cảm. Nhưng mục đích chính trong tut này là tôi sẽ đưa ra một framework cho tôi lưu trữ để dành sử dụng khi cần thiết .
Source trong tut này tham khảo hoàn toàn trong gói source của Darawk “CHook”.
Như các bạn đã biết, có hai loại breakpoint là: Software Breakpoint (INT 3) và Hardware Breakpoint (INT 1). Part 1 này chúng ta sẽ sử dụng Hardware Breakpoint (INT 1) để hook hàm.
Ưu điểm của pp này (part 1) là không thay đổi hàm gốc, vì vậy rất khó bị phát hiện ra hook. Nhưng nhược điểm là chỉ sử dụng được trên Win NT .


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