2009-10-01 28 views
6

Tôi đã đặt cho mình một nhiệm vụ mới liên quan đến "gián điệp" trên các đối tượng COM.Làm gián điệp trên các đối tượng COM

Thậm chí nếu bạn không thực hiện COM, có thể bạn đã quen với các kỹ thuật hooking API, nơi bạn có thể nối vào một hàm đã nhập và thực thi mã của riêng bạn trước khi gọi ban đầu. API hooking là hơi phức tạp nhưng nó nhanh chóng bị lộn xộn (quá lộn xộn cho mã sản xuất IMO) nếu bạn cố gắng móc vào phương pháp đối tượng COM.

Vì vậy, hiện tại, để làm "công việc của tôi", tôi đặt một móc API cho CoCreateInstance và tôi gửi các proxy viết tay cho các giao diện mà tôi quan tâm. Bây giờ không có nhiều giao diện nhưng nó không các giải pháp gọn gàng nhất.

Có cách nào để thực hiện điều này một cách gọn gàng hơn, tốt nhất là không sử dụng tính năng ghép nối API?

Trên ghi chú khác, bài viết này có vẻ là công việc tuyệt vời http://www.ddj.com/windows/184416546?pgno=5 nhưng nhị phân không hoạt động nữa (tôi đoán nó được viết xung quanh thời gian Win98). Có ai biết nội bộ của nó và có thể chỉ cho tôi đúng hướng để làm cho nó hoạt động trở lại?

Cảm ơn

Trả lời

2

Tôi chắc chắn sẽ khuyên bạn nên sử dụng 'Universal Delegator' của Keith Brown để thực hiện việc đánh chặn ở mức độ thấp. Công cụ ComTrace được đề cập bởi Kim Grasman sử dụng nó. Nó cho phép bạn bao bọc một đối tượng com tùy ý trong một 'trình bao' có thể thực hiện việc đánh chặn, ghi nhật ký, vv Các bài viết gốc (có mã) mô tả đại biểu chung là herehere.

Nếu bạn muốn theo dõi các đối tượng com trong các quy trình tùy ý (bạn không có nguồn), bạn cũng sẽ cần phải thực hiện việc tiêm mã, sử dụng CreateRemoteThread() hoặc một cái gì đó tương tự. Có một bài báo here có thể giúp bạn bắt đầu nếu bạn chưa từng làm điều đó trước đây.

3

Tôi không có một câu trả lời dứt khoát, nhưng tôi biết một anh chàng có thể :)

Jonas Blunck's công cụ được tất cả về đánh chặn ở các cấp khác nhau, ComTrace ông được dựa trên kỹ thuật Keith Brown, nếu tôi nhớ chính xác và âm thanh tương tự như những gì bạn đang làm, ngoại trừ việc anh phân tích các thư viện kiểu và tiêu đề để theo dõi các giao diện động.

Chúng tôi đã viết Developer Playground (tôi chủ yếu là UI), dựa trên API hooking, và tôi biết Jonas nói rằng anh ấy muốn làm lại ComTrace để sử dụng cùng thư viện API hooking, vì nó cho độ phân giải tốt nhất .

Tôi không biết bạn muốn sử dụng cái gì, nhưng tôi khuyên bạn nên kiểm tra các công cụ của Jonas và bắn anh ấy một e-mail - anh ta có thể đưa bạn đi đúng hướng.

Các vấn đề liên quan