Process Monitor là sử dụng trình điều khiển nhân hoặc ETW (xem bên dưới) để nắm bắt các sự kiện đăng ký. Tôi biết rằng Process Monitor sử dụng ETW cho một số dữ liệu của nó (như thông tin mạng).
Cơ chế hooking hoặc rút vòng API như EasyHook thường hoạt động ở cấp API Win32 (ví dụ: RegSetValue
hoặc RegCreateKeyEx
trong ADVAPI32.dll). Vì điều này, nó có giới hạn mà bạn đề cập: chỉ các truy cập đăng ký chế độ người dùng mới được chụp. Ngoài ra, việc lấy cắp API thường được thực hiện trên cơ sở từng quy trình, do đó bạn phải tự chèn mình vào từng quy trình mà bạn muốn thu thập dữ liệu. Bạn cũng sẽ phải theo dõi quá trình tạo nếu bạn muốn thực sự nắm bắt tất cả các truy cập trên toàn hệ thống.
Event Tracing for Windows (ETW) sẽ là một cách dễ dàng (tương đối) để nắm bắt tất cả các truy cập đăng ký. Ý tưởng cơ bản đằng sau ETW là hệ điều hành, thời gian chạy, thư viện và thậm chí các nhà phát triển ứng dụng hàng ngày có thể thêm công cụ cụ thể vào mã của họ để ghi lại dữ liệu về các sự kiện và kịch bản thú vị. Truy tìm này có chi phí thấp và có thể dễ dàng được thu thập. ETW đã được khoảng một thời gian, nhưng nó đã thực sự đạt được lực kéo trong suốt hạt nhân bắt đầu với Vista. Hầu như tất cả các hệ thống con hạt nhân lớn giờ đây đều được thiết kế với ETW. Nó cũng là cơ sở cho Nhật ký sự kiện Windows.
ETW đã chia sẻ công bằng của các hành lý và thiếu tài liệu đáng kể trong một số lĩnh vực, nhưng nếu bạn quan tâm, bạn có thể kiểm tra như sau:
Để bắt kernel mode registry truy cập tôi sẽ phải viết bằng C++?
Không, sử dụng thư viện TraceEvent được đề cập ở trên, bạn có thể sử dụng C# để chụp và phân tích truy cập đăng ký chế độ hạt nhân và người dùng trên toàn hệ thống.
Nguồn
2011-01-29 04:43:21
Bạn đang nghĩ đến việc RegMon từ Sysinternals đã được thay thế bằng Process Monitor http://technet.microsoft. com/en-us/sysinternals/bb896645 –
Trình theo dõi quá trình là bộ tôi đã sử dụng, có! – Tom
Không phải phiên bản trước của các tiện ích SysInternals này có kèm theo mã nguồn hay tôi đang mơ? –