Chẩn đoán Windows khởi động chậm bằng Process Monitor

Có thể ai đó đã đọc và sử dụng lâu rồi, có người thậm chí có thể chưa nghe nói đến nó, nên tôi muốn kể lại cho các bạn nghe về nó, nhất là khi tôi đã không ngồi yên suốt một năm rưỡi . Cái này hệ thống tự động theo dõi trình theo dõi torrent, tự động hóa quá trình tải xuống các tệp torrent.


Điều quan trọng nhất đối với một hệ thống như vậy là mở rộng số lượng trình theo dõi được hỗ trợ, tất nhiên là không phải hy sinh chất lượng. Trong thời gian này, số lượng trình theo dõi được hỗ trợ đã tăng gấp đôi. Trên thực tế, phải mất vài giờ để thêm hỗ trợ cho trình theo dõi tiếp theo, trừ khi nó sử dụng một loại công cụ rất trừu tượng nào đó hoặc quá bất tiện cho việc phân tích cú pháp (điều này chủ yếu liên quan đến việc đặt tên cho các chủ đề phân phối, chẳng hạn, không thể thêm animereactor.ru, do thiếu tiêu chuẩn cho việc phân phối đặt tên). Bây giờ danh sách các trình theo dõi được hỗ trợ trông như thế này:

  • anidub.com
  • baibako.tv
  • casstudio.tv
  • rạp chiếu phim.tv
  • phim bị mất.tv
  • newstudio.tv
  • nnm-club.me
  • novafilm.tv
  • rutor.org
  • rutracker.org
  • tfile.me
Tracker được chia thành 2 loại:
- Diễn đàn - những người đã cập nhật bản phân phối
- Đĩa đơn - những tập phim mới được đăng cùng một lúc

Ở đây tôi sẽ cho bạn biết thêm một chút về cách thức hoạt động của nó, bởi vì nó một câu hỏi phổ biến. Nhiều người thêm một loạt phim vào chương trình theo dõi trên lostfilm.tv và mong đợi điều gì đó sẽ xảy ra ngay lập tức, nhưng thực tế không phải vậy. Màn hình sẽ chỉ phản ứng với loạt bài này khi nó xuất hiện trong nguồn cấp dữ liệu RSS, nhưng nếu bạn thêm chủ đề từ rutracker.org, tệp torrent sẽ được tải xuống ngay sau lần khởi động đầu tiên của hệ thống và lần tiếp theo, chỉ khi tệp torrent được tải lại lên trình theo dõi.

Trình theo dõi biểu mẫu cũng có khả năng giám sát người phát hành


Theo tôi, điều này cũng tiện lợi và hữu ích khi trình theo dõi có trình phát hành tải nhạc theo phong cách bạn yêu thích chẳng hạn.

Cuối cùng, cải tiến chính thứ hai là hỗ trợ cho máy khách torrent, cho phép bạn chuyển tệp torrent trực tiếp đến máy khách tải xuống, đồng thời có thể xóa bản phân phối trước đó khỏi máy khách (bất kể loại phân phối nào, “công thức” hoặc “đơn”). TM “thân thiện” với Transmission và Deluge, bởi vì Đây là những khách hàng phổ biến nhất trong số những người dùng của tôi và họ được yêu cầu “buộc chặt”. Đây có lẽ là lần mở rộng chức năng lớn nhất trong thời gian này. Nhưng thật không may, có những hạn chế ở đây - tính năng này chỉ hoạt động trên *nix, bởi vì công việc được thực hiện thông qua bảng điều khiển của những khách hàng này.


Ngoài ra, do các nhà cung cấp dịch vụ gia đình chặn một số trình theo dõi, họ đã được yêu cầu bổ sung khả năng hoạt động thông qua proxy, tính năng này cũng đã được triển khai và giờ đây hệ thống có thể được gói trong tor (nó sẽ phải được cài đặt và định cấu hình , tất nhiên là riêng biệt). Và lớp làm việc với cơ sở dữ liệu đã trở nên phổ biến và hỗ trợ: MySQL, SQLite, PostgreSQL.

Đáng ngạc nhiên là TM đã trở nên khá phổ biến, tôi thấy rằng nó không chỉ được cài đặt trên các máy chạy hệ điều hành Windows/Linux/Mac mà nó hoạt động tốt một cách tự nhiên mà còn trên nhiều thiết bị dựa trên Linux “đóng hộp” khác nhau: zyxel nhạy bén, nhiều NAS khác nhau, cũng như trên nas4free.

Tôi hy vọng bài đăng này và sự phát triển nhỏ của tôi sẽ hữu ích với ai đó và ngay cả khi chỉ có một người bắt đầu sử dụng nó sau khi đọc nó, điều đó cũng đủ đối với tôi.

Nói chung, tôi cực kỳ quan tâm đến việc phát triển dự án hơn nữa, tôi sẽ cực kỳ quan tâm đến việc làm việc với các lập trình viên để cải thiện hệ thống hoặc bổ sung cho nó chức năng mới, thêm trình theo dõi torrent mới cho công việc và tìm hiểu điều gì đó mới mẻ cho chính bạn. Vì lý do này, tôi mời mọi người tham gia github.

Vâng, và quan trọng nhất, liên kết đến phiên bản 0.9.2 mới nhất cũng như cách triển khai và kiểm tra hệ thống được mô tả trong tệp readme trong kho lưu trữ.

Và ở đây tôi sẽ ẩn các ảnh chụp màn hình còn lại :)







Yêu cầu hệ thống:
PHP 5.3 trở lên phải được xây dựng với sự hỗ trợ của cURL và PDO.
Ngoài ra, trong php.ini (đối với CLI), bạn cần thay đổi các tham số sau:
max_execution_time = 300
allow_url_fopen = on (nên bật tùy chọn này trong php.ini cho cả CLI và máy chủ web)
đặt ngày.múi giờ

Mở rộng:

  • tải xuống kho lưu trữ
  • nhập kết xuất cơ sở dữ liệu từ thư mục db_schema tùy thuộc vào cơ sở dữ liệu được sử dụng - *.sql
  • chuyển tất cả các tệp vào một thư mục trên máy chủ của bạn (ví dụ /var/www/htdocs/torrentmonitor/)
  • chỉnh sửa config.php và chỉ định dữ liệu để truy cập cơ sở dữ liệu
  • đi tới giao diện web (mật khẩu mặc định là torrentmonitor, thay đổi (!) nó sau lần đăng nhập đầu tiên).
  • chỉ định thông tin xác thực từ trình theo dõi
  • chỉ định trong cài đặt đường dẫn lưu torrent (thư mục được máy khách torrent của bạn giám sát), e-mail và bật/tắt gửi thông báo
  • thêm torrent để theo dõi
  • đi tới tab "kiểm tra" và kiểm tra xem mọi thứ có hoạt động chính xác không
  • thêm vào cron engine.php
*/10 * * * * php -q /path/to/folder/torrent_monitor/engine.php

Và một vài lời dành cho người hoang tưởng: Mật khẩu tài khoản của bạn được lưu trữ trong cơ sở dữ liệu của bạn, không có gì được gửi cho tôi. Vì sự bình yên của chính mình bạn có thể đóng bất kỳ hoạt động nào trên miền của tôi, ngoại trừ tệp korphome.ru/torrent_monitor/version.xml, cần phải kiểm tra các bản cập nhật (nhưng nếu bạn thực sự hoang tưởng, bạn không cần phải kiểm tra các bản cập nhật).

Tôi muốn nghe suy nghĩ của bạn về chủ đề này phát triển hơn nữa dự án và chức năng thú vị.

Khi tốc độ tải xuống giảm các cửa sổ Theo truyền thống, nên dọn sạch hệ thống các tệp tạm thời và vô hiệu hóa chúng bằng các chương trình tối ưu hóa dịch vụ chưa sử dụng Tuy nhiên, tất cả những phương pháp này không phải lúc nào cũng hiệu quả. Như thực tế cho thấy, việc xóa dữ liệu tạm thời và dọn dẹp sổ đăng ký là hoàn toàn vô ích và việc sử dụng các trình tối ưu hóa cũng không mang lại hiệu quả như mong muốn, vì các thuật toán được nhúng trong chúng hoạt động theo một khuôn mẫu, thường vô hiệu hóa các thành phần không nên tắt.


Tất nhiên là có tiện ích đặc biệt, cho phép bạn xác định chính xác nguyên nhân tải chậm, nhưng việc sử dụng chúng có thể gây khó khăn không chỉ cho người dùng thông thường mà cả những người mới bắt đầu quản trị viên hệ thống. Có một cách ở giữa - để xác định các ứng dụng, trình điều khiển và dịch vụ đang chạy chậm lại Khởi động Windows, bạn có thể sử dụng tiện ích miễn phí . Mặc dù cho phép bạn xác định chính xác nguyên nhân khiến hệ thống tải chậm nhưng nó cũng tương đối dễ sử dụng.

Tiện ích này đa chức năng, nhưng trong ví dụ này chúng tôi quan tâm đến một chức năng - tính năng giám sát được khởi chạy trong khi khởi động các cửa sổ quá trình. Nó hoạt động như sau: trong khóa đăng ký HKLM\HỆ THỐNG\CurrentControlSet\Services một dịch vụ đặc biệt được tạo ra để tải trình điều khiển procmon23.sys, theo dõi quá trình khởi chạy của tất cả các tiến trình bắt đầu sau khi tệp khởi động chính được khởi chạy Winload.exe . Dữ liệu được ghi vào nhật ký và hiển thị trong cửa sổ tiện ích ở dạng đồ họa, giúp dễ dàng xác định thành phần nào tải lâu nhất.

Vì vậy, hãy tải xuống từ trang web của nhà phát triển technet.microsoft.com/en-us/sysinternals/processmonitor.aspx và chạy với tư cách quản trị viên. Từ menu chính chọn -> Cho phép đăng nhập khởi động.

Trong cửa sổ mở ra, hãy chọn hộp Tạo các sự kiện lược tả chủ đềđã bật nút radio Mỗi giây.

Nhấp chuột "ĐƯỢC RỒI"khởi động lại máy tính của bạn. Khi màn hình nền xuất hiện, hãy chạy lại. Một cửa sổ thông báo sẽ mở ra "Nhật ký hoạt động lúc khởi động đã được tạo...". Nhấp chuột "ĐƯỢC RỒI" và lưu tập tin P.M.L. đến bất kỳ địa điểm nào thuận tiện cho bạn.

Lưu ý: ghi nhật ký sự kiện theo trình điều khiển procmon23.sys sẽ bắt đầu ngay sau khi hệ thống khởi động lại và sẽ tiếp tục lý lịch cho đến khi người dùng chạy tiện ích . Nếu tiện ích chưa được khởi động, tệp kết xuất tạm thời procmon.pmb trong thư mục *C:\Windows* sẽ lấp đầy toàn bộ dung lượng đĩa trống.

Trong ví dụ của chúng tôi, hai tệp kết xuất đã được tạo Bootlog.pmlBootlog-1.pml kích thước tổng thể 464MB . Trước khi bạn bắt đầu phân tích chúng, hãy nhấp vào cửa sổ vào tiêu đề của bảng dữ liệu bằng nút chuột phải, nhấp vào

Và đánh dấu mục trong cửa sổ mở ra (cột) .

Và thiết lập các thông số trong cửa sổ tạo bộ lọc Thời lượng, hơn10 , như thể hiện trong ảnh chụp màn hình.

10 trong ví dụ này, đây là số giây mà các quy trình dành để thực hiện các hoạt động của chúng.

Bây giờ bấm vào đầu tiên "Thêm vào", Sau đó "ĐƯỢC RỒI" và kết quả là cửa sổ tiện ích sẽ hiển thị các tiến trình mất nhiều thời gian nhất để tải.

Để phân tích chi tiết hơn, bạn có thể sử dụng tùy chọn từ menu Công cụ, hiển thị các quy trình dưới dạng danh sách cây cho biết thông tin thêm về thời gian, thời gian bắt đầu và kết thúc của mỗi quá trình.

Như vậy đã bộc lộ quy trình có vấn đề và bằng cách kết hợp chúng với các tệp và dịch vụ thực thi, bạn có thể thực hiện tối ưu hóa hệ thống chính xác bằng cách loại bỏ phần sau khỏi quá trình khởi động.

Khá nhiều tài liệu đã được cung cấp trong chương trình Giám sát quy trình và việc tìm hiểu những kiến ​​​​thức cơ bản về hoạt động của tiện ích này luôn có thể truy cập được ngay cả đối với người dùng chưa qua đào tạo. Tuy nhiên, cá nhân tôi vẫn chưa hiểu rõ nhiều khía cạnh của tác phẩm (và tôi vẫn chưa hiểu một số khía cạnh :), vì vậy tôi quyết định viết một ghi chú khác về vấn đề này. tiện ích hữu ích, để sau này bạn có thể sử dụng bài viết như một loại gợi ý. Nếu chúng ta xem xét bất kỳ hệ điều hành nào theo quan điểm khái quát hóa, thì chúng ta có thể phân biệt nó một cách có điều kiện thành các khối mã/dữ liệu tương tác với nhau dựa trên các mẫu nhất định. Để tiến gần hơn đến các thuật ngữ mà chúng ta quen thuộc, chúng ta sẽ coi khối được đề cập là một quy trình kết hợp cả mã và dữ liệu, nhằm giải quyết một vấn đề cụ thể. Do đó, sự tương tác giữa các quá trình tương tự tạo thành (với một số ngoại lệ) khái niệm về chức năng hệ điều hành. Trong khi hệ điều hành đang chạy, nó chạy một số lượng lớn các quy trình và mục đích của bất kỳ quy trình nào trong số này có thể khác nhau trong phạm vi khá rộng.

Mỗi quy trình trong hệ điều hành, bằng tổng thể các hoạt động của chính nó và kết quả thực thi của chúng, thực sự xác định dấu vết của hoạt động của hệ thống vào lúc này hay lúc khác. Tuy nhiên, như chúng ta biết từ lý thuyết, bản thân các tiến trình chỉ là nơi chứa các luồng (luồng), trực tiếp thực hiện tất cả công việc tính toán. Rõ ràng rằng các luồng là mã, một tập hợp các lệnh máy được bộ xử lý thực thi, nhưng đây là mức độ nhận thức khá thấp. Nếu chúng ta hoạt động với cấu trúc Windows, thì các luồng vẫn chứa mã máy, nhưng tất cả chức năng của hệ điều hành đều khả dụng thông qua quyền truy cập vào các chức năng khác nhau. thư viện hệ thống và lệnh gọi trình điều khiển, do đó, các luồng, ngoài các phép toán số học-logic đơn giản, còn tương tác với nhiều Hệ thống con Windows: bộ nhớ ảo, hệ thống tập tin, sổ đăng ký, các thành phần phần cứng và nhiều thứ khác. Giao tiếp giữa các tiến trình mạnh mẽ đến mức tại bất kỳ thời điểm nào, hàng nghìn thao tác như vậy được thực hiện trong hệ thống. Theo đó, trong thực tế của Windows, sẽ rất thú vị khi chúng ta quan sát sự tương tác của các quy trình với các thành phần nhất định của hệ điều hành ở cấp độ chức năng và kết quả thực thi của chúng, vì cấp độ hoạt động này khá đủ để giải quyết hầu hết các vấn đề. các vấn đề. Những thông tin như vậy sẽ cực kỳ hữu ích cho chúng tôi cả từ quan điểm nghiên cứu thuần túy về thuật toán và từ quan điểm tìm ra giải pháp cho một số vấn đề phát sinh trong quá trình làm việc. Nhưng chúng ta sẽ cần một công cụ có thể cung cấp những điều đó thông tin chi tiết, bởi vì chúng ta cần đi sâu vào giao tiếp giữa các quá trình sâu hơn nhiều so với cấp độ của các công cụ tích hợp sẵn, để hiểu chính xác những gì các quy trình đang thực hiện. Một cái gì đó tương tự được cung cấp cho chúng tôi bởi một công cụ gọi là Giám sát quá trình, thuộc nhóm công cụ có chức năng mở rộng, sẽ là chủ đề của bài viết hôm nay của chúng tôi.
Giám sát quá trình- một chương trình giám sát hoạt động của quy trình trong hệ điều hành, ở chế độ ghi nhật ký hoạt động, cho phép bạn giám sát hoạt động của các quy trình liên quan đến các hệ thống con của hệ điều hành đó như hệ thống tệp, sổ đăng ký và mạng. Cho phép bạn ước tính lượng thời gian CPU dành để thực thi các luồng trong các tiến trình.
Trình giám sát quy trình cung cấp giám sát thời gian thực cho các loại sự kiện sau:

  • Hệ thống tập tin: tạo (mở)/đóng/đọc/ghi/xóa các thành phần hệ thống tập tin: tập tin, thư mục, thuộc tính, nội dung.
  • Sổ đăng ký: tạo/đọc/ghi/liệt kê/xóa các phần tử đăng ký: nhánh, khóa, giá trị.
  • Mạng: thiết lập kết nối, truyền dữ liệu, đóng kết nối. Thông tin về nguồn/người nhận lưu lượng TCP/UDP. Thông tin chung về các giao thức và gói. Bản thân dữ liệu được truyền không được ghi lại.
  • Tiến trình/luồng: Tạo một tiến trình, tạo một luồng trong một tiến trình, chấm dứt một luồng/tiến trình. thông tin chi tiết về quy trình (đường dẫn, dòng lệnh, ID người dùng/phiên), khởi động/chấm dứt, tải hình ảnh (thư viện/trình điều khiển), ngăn xếp thực thi.
  • Hồ sơ: Lớp học đặc biệt các sự kiện được ghi lại để theo dõi lượng thời gian CPU đã sử dụng cho mỗi quy trình. Xử lý việc sử dụng bộ nhớ.

Các tình huống chính, rất có thể xảy ra khi sử dụng Trình giám sát quy trình ngay lập tức xuất hiện trong đầu bạn:

  • Chương trình này hoặc chương trình đó lưu trữ các cài đặt của nó trong khóa đăng ký nào?
  • Quá trình thực hiện những hoạt động nào khi khởi động, trong quá trình vận hành và ở giai đoạn kết thúc?
  • Ai sở hữu những tập tin này hoặc những tập tin đó? Chủ sở hữu có thường xuyên liên hệ với họ không?
  • Quá trình nào truy cập các nút mạng bên ngoài?
  • Quá trình nào làm chậm quá trình tải hệ điều hành?

Trình giám sát quy trình cho phép bạn nhận được câu trả lời cho câu hỏi: hành động nào được thực hiện bởi một quy trình cụ thể trong hệ thống.

Tuy nhiên, không giống như các công cụ như Process Explorer, đây không phải là tiện ích thời gian thực cho phép bạn tương tác nhanh chóng với các quy trình, đóng các tay cầm, tắt các quy trình và thực hiện các hành động tương tự khác. tạp chí toàn cầu, bao gồm các sự kiện xảy ra trong hệ điều hành. Từ khóa trong câu trước là “chi tiết”, bởi vì điều này không có nghĩa là các sự kiện mà chúng ta thường thấy, chẳng hạn như trong Nhật ký sự kiện, mà là các sự kiện cấp thấp hơn xảy ra trên một tập hợp hàm API nhất định của một số Các thành phần hệ điều hành. Những thứ này, giống như một số thứ khác, tính năng độc đáo Chức năng này làm cho chương trình Process Monitor trở thành một công cụ gần như không thể thiếu để khắc phục sự cố và xác định nguyên nhân của hoạt động đáng ngờ trong hệ thống.
Nhưng đừng vội bị mê hoặc, vì cứ mỗi thùng mật ong luôn có một con ruồi trong thuốc mỡ. Vì vậy, trong trường hợp của Process Monitor, có một số “sắc thái”. Bạn không nên coi Process Monitor như một loại cây đũa thần cho mọi trường hợp, vì nó không “nhìn thấy” mọi thứ. Ví dụ: nó sẽ không theo dõi chuyển động của con trỏ chuột, kéo các cửa sổ, sẽ không hiển thị nội dung của các gói lưu lượng mạng, sẽ không hiển thị toàn bộ các chức năng mà chương trình gọi và đây không phải là danh sách đầy đủ các chức năng đó. những điều mà Process Monitor không thể làm được. Như trong bất kỳ trường hợp chẩn đoán sự cố nào của hệ điều hành, những công cụ như vậy, nói một cách đại khái, cung cấp: bộ giới hạn các chức năng và hoạt động của dòng chảy, để lại một lĩnh vực hoạt động và yêu cầu chuyên gia đưa ra kết luận độc lập và đôi khi là kiến ​​​​thức khá sâu sắc, tạo thành cơ sở cho bất kỳ phân tích nào. Tôi không dám nói rằng tất cả các vấn đề được chẩn đoán bằng Process Monitor đều yêu cầu cấp độ cao kiến thức về kiến ​​trúc hệ điều hành, nhưng điều này không phải vậy một sự kiện hiếm hoi. Một ví dụ thực tế: Tôi đã từng gặp phải lỗi với Outlook 2010, khi các tùy chọn tương thích được đặt trong thuộc tính của chương trình Outlook.exe, khiến chương trình không thể khởi động với lỗi khởi động “Không thể mở các thư mục thư mặc định . Ngân hàng tin nhắn không mở được.” . Theo dõi vấn đề này Bạn có thể sử dụng tiện ích Process Monitor, nhưng bạn cần biết chính xác những gì cần tìm trong đống thư khổng lồ từ quy trình Outlook. Trong trường hợp đó, chúng tôi phải tìm cờ WINSRV08SP1 và RUNASADMIN khi đọc khóa AppCompatFlags, điều này gợi ý rằng đôi khi chúng tôi cần tưởng tượng những gì chúng tôi muốn tìm. Lý tưởng nhất (và lý tưởng là không thể đạt được), thật tuyệt khi tưởng tượng chính xác cấu hình của chương trình được tải ở chế độ tương thích thay đổi như thế nào ở cấp độ các sự kiện được tạo liên quan đến tải ứng dụng thông thường. Cuối cùng, cần phải hiểu chính xác tại sao ứng dụng thư Không tải được cấu hình người dùng. Tất nhiên, có lẽ ví dụ cụ thể này không mang tính biểu thị nhiều vì nó khá phức tạp và sẽ hợp lý hơn nếu sử dụng các phương tiện khác. Tôi chỉ muốn bạn chú ý rằng thực tế là Process Monitor không phải là một trình gỡ lỗi và nó không thể bắt lỗi ở chỗ chức năng hiển thị cửa sổ được gọi, sẽ không thể thâm nhập vào logic hoạt động của cái này hay cái kia chức năng nội tại, sẽ không hiển thị trạng thái của các thanh ghi, vùng bộ nhớ và các cấu trúc quan trọng khác đối với quy trình. Đôi khi không có kết quả rõ ràng về việc thiếu quyền truy cập, vì vậy đôi khi thông tin được thu thập ngầm chứa mô tả về vấn đề và bạn cần suy nghĩ thêm về kết quả mà Process Monitor thu được. Đôi khi có trường hợp khi chức năng Process Monitor" đơn giản là không đủ để đi đến tận cùng của vấn đề, nhưng điều này không mang lại giá trị gì của nhạc cụ này, bởi vì trong hầu hết các trường hợp, nó cho phép bạn tìm ra nguyên nhân gây ra lỗi khá nhanh chóng. Chà, bạn sẽ không ngay lập tức sử dụng trình gỡ lỗi để tìm mọi lỗi và dành hàng giờ bay vòng quanh để nghiên cứu thuật toán của mô-đun bị lỗi phải không? .. Mặc dù:)
Tiện ích Process Monitor bao gồm các khả năng của các chương trình Sysiternals trước đó: chương trình giám sát sổ đăng ký Regmon và chương trình giám sát hệ thống tệp Filemon, những chương trình này đã biến mất khỏi hiện trường từ lâu. Ngoài ra, Process Monitor có thể lưu toàn bộ nhật ký sự kiện vào một tệp có dung lượng lên tới 1 gigabyte.

Làm thế nào nó hoạt động

Trong khi theo dõi hoạt động của Process Monitor, đã xác định được tính năng thú vị, hóa ra chương trình sử dụng trình điều khiển chế độ kernel riêng (còn chữ ký thì sao? Nhưng chữ ký là của Symantec). Trên hệ thống 32 bit, Process Monitor sử dụng trình điều khiển bộ lọc 32 bit có tên procmon23.sys cả trong quá trình thực thi hình ảnh thực thi trực tiếp và ở giai đoạn khởi động hệ điều hành (khi tùy chọn Bật ghi nhật ký khởi động được bật). Nhưng ngoài bản thân hình ảnh thực thi procmon.exe, không có tệp nhị phân nào khác trong thư mục làm việc của ứng dụng? Thực tế là trình điều khiển được đóng gói trong phần thân của mô-đun thực thi chính procmon.exe. Sử dụng bất kỳ công cụ nào để làm việc với tài nguyên tệp PE, bạn có thể đảm bảo rằng trình điều khiển procmon23.sys được chứa bên trong tệp thực thi trong tài nguyên RCDRIVERNT của thư mục BINRES của phần tài nguyên, nghĩa là nó là một phần của tệp chính:

Trên hệ thống 64 bit, Trình giám sát quy trình sẽ giải nén %TEMP% vào một thư mục tạm thời khi khởi chạy. tập tin ẩn có tên là Procmon64.exe. Hình ảnh procmon64.exe được chứa trong tài nguyên 1308 của thư mục BINRES bên trong phần tài nguyên của tệp procmon.exe chính. Nhưng trong chính Procmon64.exe, phần BINRES của phần tài nguyên chứa trình điều khiển 64-bit được sử dụng trong quá trình hoạt động.

Trình điều khiển procmon23.sys cũng có thể hoạt động như trình điều khiển chế độ khởi động. Khi người dùng kích hoạt tùy chọn Bật ghi nhật ký khởi động, Trình giám sát quy trình sẽ sao chép trình điều khiển vào thư mục %SystemRoot%\System32\Drivers và ghi nó vào khóa đăng ký HKLM\HỆ THỐNG\CurrentControlSet\Services với giá trị tham số Start = 0, biểu thị rằng trình điều khiển sẽ được tải ở giai đoạn thực thi Winload.exe khi hệ điều hành khởi động.

Có vẻ như tất cả các sự kiện được Giám sát quy trình giám sát đều đi qua trình điều khiển bộ lọc này. Ngoài ra, Process Monitor còn sử dụng công nghệ Dấu vết sự kiện(ETW, Truy tìm sự kiện cho cửa sổ), ít nhất là để theo dõi các sự kiện hoạt động mạng. Vẫn chưa hoàn toàn rõ ràng liệu cùng một trình điều khiển được sử dụng làm bộ điều khiển và bộ thu cho ETW hay chính mô-đun thực thi? Hãy để tôi nhắc bạn rằng ETW là một loại hệ thống ghi nhật ký có thể mở rộng được tích hợp trong hệ thống Windows, được triển khai ở cấp hạt nhân và cho phép (theo yêu cầu) thu thập các sự kiện từ các ứng dụng chế độ người dùng và mô-đun chế độ hạt nhân. Và như chúng ta biết, hầu hết tất cả các thành phần của hệ điều hành đều có khả năng theo dõi các hoạt động đang diễn ra. Rõ ràng là chức năng ETW rộng hơn nhiều; nó cung cấp thông tin mở rộng về hoạt động: chuyển ngữ cảnh, thống kê ngắt, gọi thủ tục trì hoãn (DPC), quy trình dịch vụ ngắt (ISR), tạo và hủy các tiến trình và luồng, I/O đĩa , trang lỗi, chuyển đổi bộ xử lý giữa các chế độ trạng thái p, hoạt động đăng ký, v.v.

Giao diện

Trước khi bắt đầu, bạn nên lấy mô-đun thực thi của tiện ích. Bạn có thể tải xuống Trình giám sát quy trình từ đây. Tiện ích này được phân phối dưới dạng một ứng dụng di động và không yêu cầu cài đặt mà có thể được trích xuất đơn giản từ tệp lưu trữ vào một thư mục tùy ý, cực kỳ hữu ích khi chẩn đoán từ phương tiện di động và khi được tích hợp vào môi trường cài đặt sẵn (WinPE).

Vì Process Monitor sử dụng trình điều khiển riêng nên nó yêu cầu quyền quản trị viên cục bộ để chạy.

Nếu Trình giám sát quy trình được khởi chạy cùng với các bộ lọc được cài đặt trong các phiên làm việc trước đó, chương trình sẽ mở cửa sổ cài đặt bộ lọc (Bộ lọc). Điều này được thực hiện để người dùng có thể sửa đổi các bộ lọc nếu muốn trước khi bắt đầu quy trình thu thập dữ liệu.
Giao diện Process Monitor cực kỳ đơn giản và trông như thế này theo mặc định:

Đồng ý, mọi thứ khéo léo đều thực sự đơn giản. Sự đơn giản của giao diện giúp bạn có thể nhận biết trực quan những gì đang xảy ra trong hệ thống. Ngay sau khi khởi chạy Process Monitor, nó ngay lập tức bắt đầu ghi lại các sự kiện xảy ra trong hệ điều hành, giám sát các thành phần chính như: hệ thống tệp, sổ đăng ký, mạng, hoạt động của tiến trình/luồng. Sau khi chụp, các sự kiện không nằm trong bộ lọc sẽ được hiển thị theo thứ tự thời gian trong cửa sổ ứng dụng chính. Hơn nữa, người dùng quan sát thấy một lượng dữ liệu khổng lồ đến mức ban đầu có thể dễ dàng nản lòng; tất cả hàng tấn dữ liệu này ngay lập tức lấp đầy cửa sổ chương trình chính và vượt quá giới hạn của nó, bằng chứng hùng hồn là thanh trượt cuộn bên giảm nhanh chóng. Mỗi đầu ra dòng theo cách này đại diện cho một sự kiện đã xảy ra trong hệ thống, được trình điều khiển Trình giám sát quy trình hiển thị và ghi lại và không tuân theo các quy tắc lọc. Phần thông tin chính được định dạng dưới dạng bảng, theo đó, mỗi hàng được chia thành một số cột, thành phần và cách sắp xếp có thể được thay đổi thông qua cài đặt chương trình. Cấu hình mặc định sử dụng các cột sau:

Cột Tên chỉ định
1 Thời gian trong ngày Thời điểm sự kiện xảy ra. Được hiển thị theo phân số của giây ở định dạng HH:MM:SS,SSSSSSS với độ chính xác là bảy chữ số thập phân. Độ chính xác của giá trị thời gian được hiển thị phụ thuộc vào độ chính xác của bộ hẹn giờ phần cứng được sử dụng trong máy tính (8254/RTC/HPET).
2 Tên quy trình Tên quy trình. Cột hiển thị tên của quá trình thực hiện thao tác. Chỉ tên quy trình được hiển thị, nhưng nếu bạn di chuột qua tên quan tâm, đường dẫn đầy đủ đến mô-đun cũng sẽ được hiển thị. Cột hiển thị biểu tượng ứng dụng (icon), được đóng gói trong phần tài nguyên của tệp nhị phân.
3 PID Xử lý ID. Một tham số khá hữu ích, đặc biệt đối với các tiến trình “phức tạp” như svchost.exe.
4 Hoạt động Hoạt động. Tên của hoạt động cấp thấp đã cam kết được thực hiện bởi quy trình trên đối tượng đích. Thường xuyên Tên khớp với tên của hàm được gọi để thực hiện thao tác. Ngoài ra, biểu tượng lớp sự kiện (đăng ký, tệp, mạng, quy trình) được hiển thị.
5 Con đường Đường dẫn đến đối tượng đích mà tiến trình đang thực hiện thao tác trên đó. Đừng nhầm lẫn với đường dẫn đến quy trình (mô-đun). Chỉ được in nếu đường dẫn được áp dụng cho đối tượng. Những giá trị khả thi:
  • Đường dẫn hệ thống tệp bắt đầu bằng ký tự ổ đĩa;
  • Đường dẫn đến nhánh/khóa đăng ký;
  • Đường dẫn mạng (địa chỉ nguồn và đích và cổng);
  • Đường dẫn mạng (ở định dạng UNC);
6 Kết quả Kết quả của hoạt động. Kết quả của một thao tác được hàm trả về, cho biết mức độ thành công của một hành động cụ thể. Được mô tả chi tiết hơn ở bàn riêngđưa ra dưới đây.
7 Chi tiết Thông tin chi tiết về các chi tiết của sự kiện. Chẳng hạn như: Mức truy cập được yêu cầu, kích thước dữ liệu, loại dữ liệu, kích thước gói I/O mạng, mã thuộc tính tệp.

Trường kết quả hoạt động (Kết quả) là một trong những trường quan trọng và cần giải thích thêm:

Kết quả Kết quả Sự miêu tả
THÀNH CÔNG THÀNH CÔNG Các hoạt động đã được hoàn thành thành công.
TRUY CẬP TỪ CHỐI TRUY CẬP TỪ CHỐI Các hoạt động đã không được hoàn thành. Bộ mô tả bảo mật của đối tượng không cấp cho tiến trình các quyền truy cập cần thiết vào đối tượng.
CHIA SẺ KHÔNG ĐÚNG CÁCH VI PHẠM CHIA SẺ TẬP TIN Các hoạt động đã không được hoàn thành. Đối tượng đã được ai đó mở và không hỗ trợ chế độ chia sẻ.
TÊN va chạm Mâu thuẫn tên Quá trình đã cố gắng tạo một đối tượng đã tồn tại.
KHÔNG TÌM THẤY TÊN KHÔNG TÌM THẤY TÊN Nỗ lực mở một đối tượng không tồn tại: đường dẫn đã được tìm thấy nhưng tên đối tượng không được tìm thấy. Mặc dù cách diễn đạt “ồn ào” nhưng trong hầu hết các trường hợp, nó không được quan tâm khi tìm kiếm vấn đề. Thực tế là kết quả này thường được trả về do hoạt động thường xuyên. Một ví dụ điển hình có thể dùng để kiểm tra sự tồn tại của tệp hoặc khóa đăng ký tại một đường dẫn cụ thể. Sau khi trả về kết quả tương tự, mã thực hiện kiểm tra sẽ chỉ đi theo một nhánh logic khác. Đó là lý do tại sao: Kết quả này có thể được sử dụng để tìm ra vấn đề với việc đặt chỗ.
KHÔNG TÌM THẤY CON ĐƯỜNG KHÔNG TÌM THẤY CON ĐƯỜNG Đang cố mở một đối tượng không tồn tại: không tìm thấy đường dẫn. Tương tự như lần trước. Kết quả này có thể được sử dụng để tìm ra vấn đề với việc đặt chỗ.
KHÔNG CÓ TẬP TIN TẬP TIN KHÔNG TỒN TẠI Một nỗ lực đã được thực hiện để mở một đối tượng hoặc nhóm đối tượng không tồn tại. Thường được trả về khi yêu cầu một nhóm đối tượng theo mặt nạ, ví dụ *.exe cho biết tất cả các tệp có phần mở rộng .exe trong thư mục được yêu cầu. Nếu không tìm thấy tệp nào khớp với mặt nạ đã đặt thì kết quả tương tự sẽ được trả về.
TÊN KHÔNG HỢP LỆ SAI TÊN Quá trình yêu cầu một đối tượng có tên không chính xác. Có thể xảy ra khi tên của đối tượng được yêu cầu không đúng định dạng, chứa các ký tự không hợp lệ hoặc nói chung là không hợp lệ.
KHÔNG CÓ NHỮNG ĐĂNG NHẬP THÊM CẤM VÀO Quá trình đã hoàn tất việc liệt kê nội dung của key đăng ký. Thường nói về sự hoàn thành thực tế của quá trình này, chỉ ra rằng nhiều mục hơn KHÔNG.
KHÔNG CÓ TẬP TIN THÊM TẬP TIN ĐANG THIẾU Xảy ra khi có yêu cầu liệt kê các đối tượng trong thư mục hệ thống tệp. Thông thường, nó cho biết sự kết thúc thực sự của quá trình này, nó không cho biết rằng không còn tệp nào nữa.
PHẦN CUỐI CỦA TẬP TIN PHẦN CUỐI CỦA TẬP TIN Đã đến cuối tập tin. Quá trình đã đến cuối tệp trong một trong các thao tác của nó (ví dụ: đọc từ một tệp).
BỘ ĐỆM QUÁ NHỎ BỘ ĐỆM QUÁ NHỎ Khối lượng đệm không đủ. Bộ đệm được cấp phát quá nhỏ để hoàn thành thao tác này; cần cấp phát một bộ đệm lớn hơn. Một trạng thái cực kỳ giàu thông tin thông báo cho hàm xử lý rằng bộ đệm được chỉ định trong các tham số đầu vào của hàm là nhỏ và cần được tăng lên. Trong hầu hết các trường hợp, nó không được coi là thông tin quan trọng trong phân tích lỗi.
TRÀN BỘ NHỚ TRÀN BỘ NHỚ Bộ đệm đã đầy. Bộ đệm do ứng dụng phân bổ quá nhỏ để chứa dữ liệu được yêu cầu. Hàm được gọi cho hàm gọi biết rằng cần cấp phát một bộ đệm lớn hơn. Trạng thái mang tính thông tin thuần túy, thông báo cho chức năng xử lý rằng bộ đệm cần được tăng lên. Trong hầu hết các trường hợp, nó không được coi là thông tin quan trọng khi phân tích lỗi, nhưng vẫn tiếp tục khiến người dùng sợ hãi với những nghi ngờ vô căn cứ về việc hack và hoạt động độc hại khác :).
SỬA CHỮA LẶP LẠI Một tiến trình đã yêu cầu một đối tượng tham chiếu đến một đối tượng khác. Thường được trả về khi tìm thấy một liên kết.
KHÔNG SỬA ĐIỂM KHÔNG XỬ LÝ LẠI Đối tượng được yêu cầu không đề cập đến đối tượng khác. Thường xảy ra như một phản hồi để chuyển mã điều khiển FSCTL_GET_REPARSE_POINT tới trình điều khiển hệ thống tệp.
IO NHANH CHÓNG KHÔNG ĐƯỢC PHÉP CẤM I/O NHANH Cơ chế I/O NHANH CHÓNG không khả dụng cho đối tượng được yêu cầu, nghĩa là yêu cầu I/O sử dụng cơ chế I/O NHANH CHÓNG tới trình điều khiển không được hỗ trợ. Trong hầu hết các trường hợp, nó không được coi là thông tin quan trọng trong phân tích lỗi.
TẬP TIN ĐƯỢC KHÓA CHỈ CÓ NGƯỜI ĐỌC TẬP TIN CHỈ ĐỌC Tệp hoặc trình chiếu tệp bị khóa. Tệp chỉ đọc. Trình quản lý bộ nhớ liên hệ với hệ thống tệp để lấy khóa trong khi phần tệp được tạo trong bộ nhớ trong quá trình ánh xạ. Nói cách khác, kết quả này chỉ ra rằng việc ghi vào tệp bị chặn trong khi phần tệp đang được tạo và hiện tại không ai có quyền truy cập ghi vào tệp này. Bằng cách này, người quản lý bộ nhớ có thể đảm bảo rằng dữ liệu không thể thay đổi trong thời gian khóa. Kết quả nên được coi là thông tin.
TẬP TIN KHÓA BẰNG NGƯỜI VIẾT TẬP TIN CÓ THỂ GHI Tệp hoặc trình chiếu tệp bị khóa. Ít nhất một người dùng có thể ghi dữ liệu vào nó.
LÀ THƯ MỤC ĐỐI TƯỢNG LÀ MỘT THƯ MỤC Đối tượng được yêu cầu là một thư mục.
YÊU CẦU THIẾT BỊ KHÔNG HỢP LỆ YÊU CẦU THIẾT BỊ KHÔNG HỢP LỆ Yêu cầu này không hợp lệ đối với thiết bị mục tiêu.
THAM SỐ KHÔNG HỢP LỆ THAM SỐ KHÔNG ĐÚNG Một tham số không hợp lệ đã được chuyển đến dịch vụ hoặc chức năng.
KHÔNG ĐƯỢC CẤP KHÔNG CUNG CẤP Không thể cấp khóa tệp được yêu cầu do các khóa khác.
ĐÃ HỦY ĐÃ HỦY Yêu cầu I/O đã bị hủy. Ví dụ: lệnh gọi tới NotifyChangeDirectory thường trả về khi kiểm tra thư mục hệ thống tệp để biết các thay đổi.
ĐƯỜNG DẪN MẠNG XẤU KHÔNG TÌM THẤY ĐƯỜNG DẪN Không tìm thấy đường dẫn mạng.
TÊN MẠNG Xấu KHÔNG TÌM TÊN MẠNG Không tìm thấy tên mạng được chỉ định trên máy chủ từ xa.
MEDIA VIẾT ĐƯỢC BẢO VỆ BÀI VIẾT NÀY ĐÃ ĐƯỢC VIẾT KÍN Phương tiện truyền thông không thể được ghi vào. Bài viết này đã được viết kín.
KHÓA ĐÃ XÓA PHẦN ĐÃ XÓA Một nỗ lực đã được thực hiện để thao tác trên khoá đăng ký đã được đánh dấu để xóa.
KHÔNG ĐƯỢC THỰC HIỆN KHÔNG ĐƯỢC THỰC HIỆN Thao tác được yêu cầu chưa được hoàn thành vì nó không được triển khai trong đối tượng mục tiêu.
KHÔNG DỄ DÀNG TRÊN TẬP TIN KHÔNG CÓ THUỘC TÍNH MỞ RỘNG Không tìm thấy thuộc tính mở rộng nào nữa. Lỗi xảy ra khi cố gắng yêu cầu các thuộc tính mở rộng từ một đối tượng không có chúng.
OPLOCK KHÔNG ĐƯỢC CẤP KHÔNG CUNG CẤP KHÓA THÀNH CÔNG Từ chối cấp một khóa cơ hội. Oplock (khóa cơ hội) là một khóa cho phép máy khách (mạng) khóa tệp nằm trên máy chủ và lưu vào bộ đệm dữ liệu từ tệp cục bộ (ở phía máy khách), đồng thời ngăn các máy khách khác sửa đổi tệp. Chặn cơ hội được liên kết với cơ chế tệp ngoại tuyến, giúp giảm lưu lượng mạng và cải thiện thời gian phản hồi từ máy chủ. Trạng thái OPLOCK NOT GRANTED là phản hồi cho việc chuyển mã điều khiển FSCTL_REQUEST_OPLOCK tới trình điều khiển hệ thống tệp. Được sử dụng để chẩn đoán các đối tượng có vấn đề không hoạt động chính xác với tài nguyên mạng.

* - Tôi đã cố gắng sử dụng màu sắc để đánh dấu những kết quả có thể có ý nghĩa quan trọng trong việc tìm ra vấn đề, nhưng mọi thứ khá tùy tiện và sự hiện diện của một số kết quả có thể không chỉ ra lỗi; mọi thứ cần được xem xét trong bối cảnh những gì đang xảy ra và xung quanh sự kiện.
Các sự kiện mới được ghi lại sẽ được thêm vào cuối danh sách các sự kiện theo thứ tự thời gian và theo đó, nếu có nhiều sự kiện, chúng sẽ ngay lập tức vượt ra ngoài ranh giới của cửa sổ đang hoạt động. Như vậy, khi cài đặt cơ bản giao diện, thông tin trong cửa sổ vẫn ở trạng thái tĩnh và chỉ phản ánh các sự kiện được ghi lại trước tiên, sự kiện cuối cùngđược ghi vào cuối danh sách và sự thay đổi về độ dài tổng thể của nó chỉ được biểu thị bằng kích thước thay đổi của con trỏ cuộn bên. Tuy nhiên, hành vi này của chương trình có thể được thay đổi bằng cách bật Tự động cuộn danh sách sự kiện bằng cách bật tùy chọn tương ứng hoặc bằng cách nhấn tổ hợp Phím Ctrl+A. Trong trường hợp này, danh sách các sự kiện sẽ liên tục cuộn lên, hiển thị các sự kiện hệ thống mới nhất theo thời gian thực.

Thanh công cụ

Hãy để chúng tôi giải thích mục đích của các nút nằm trên thanh công cụ của giao diện tiện ích Process Monitor:

Từ trái sang phải:

  • Mở - Đang tải các sự kiện đã lưu trước đó (dấu vết);
  • Lưu - Lưu tất cả các sự kiện đã ghi lại (dấu vết);
  • Chụp - Bật/Tắt chụp sự kiện;
  • Autoscroll - Sự kiện Autoscroll trong màn hình chính;
  • Clear - Xóa cửa sổ chính và tất cả các sự kiện đã chụp;
  • Bộ lọc - Thiết lập tính năng lọc và đánh dấu sự kiện;
  • Đánh dấu - Thiết lập đánh dấu sự kiện;
  • Bao gồm quy trình từ cửa sổ - Định cấu hình lọc sự kiện cho một cửa sổ cụ thể trên màn hình. Cho phép bạn trỏ mục tiêu vào cửa sổ đã chọn, chính Process Monitor sẽ xác định xem cửa sổ đó có thuộc về một tiến trình hay không và cho phép lọc theo tiến trình này;
  • Show Process Tree - Cây quy trình;
  • Tìm - Tìm kiếm các sự kiện dựa trên tiêu chí cụ thể;
  • Chuyển đến đối tượng - Chuyển đến khóa hoặc tệp đăng ký. Trình giám sát quy trình phân tích nội dung của cột Đường dẫn của hàng đã chọn, khởi chạy trình khám phá/trình soạn thảo sổ đăng ký và mở phần tử cây tương ứng;
  • Hiển thị hoạt động đăng ký - Chuyển trạng thái hiển thị của các sự kiện hoạt động đăng ký giữa tất cả các sự kiện hệ thống;
  • Trình diễn Hệ thống tập tin Hoạt động - Chuyển trạng thái hiển thị các sự kiện hoạt động của hệ thống tệp giữa tất cả các sự kiện hệ thống;
  • Hiển thị hoạt động mạng - Chuyển trạng thái hiển thị các sự kiện hoạt động mạng giữa tất cả các sự kiện hệ thống;
  • Hiển thị hoạt động của tiến trình và luồng - Chuyển trạng thái hiển thị các sự kiện hoạt động của tiến trình/luồng giữa tất cả các sự kiện hệ thống;
  • Hiển thị sự kiện lập hồ sơ - Chuyển trạng thái hiển thị các sự kiện lập hồ sơ giữa tất cả các sự kiện hệ thống. Hồ sơ – Các sự kiện được tiện ích Trình giám sát quy trình ghi lại để tính toán lượng thời gian CPU và bộ nhớ được sử dụng bởi mỗi quy trình.

Phím nóng

Sự kết hợp Sự miêu tả
Ctrl+E Kích hoạt/dừng ghi sự kiện.
Ctrl+X Xóa nhật ký của các sự kiện đã ghi.
Ctrl+A bật/tắt tính năng tự động cuộn các sự kiện.
Ctrl+F tìm kiếm một sự kiện trong số tất cả các sự kiện được ghi lại.
Ctrl+C Sao chép sự kiện đã chọn dưới dạng một chuỗi văn bản được phân tách.
Ctrl+J đi đến đối tượng đã chọn.
Ctrl+L đang mở cửa sổ cài đặt bộ lọc.
Ctrl+R Đặt lại bộ lọc về cài đặt mặc định.
Ctrl+H mở cửa sổ đèn nền.
Ctrl+T mở cây quy trình.

Lọc sự kiện

Như đã lưu ý, số lượng sự kiện xảy ra (được tạo ra bởi các thành phần khác nhau) trong hệ thống là khá lớn. Số lượng sự kiện mà Process Monitor “nhìn thấy” nhỏ hơn nhưng không nhiều. Một câu hỏi hợp lý được đặt ra: chúng ta có cần tất cả các sự kiện không? Câu trả lời là hiển nhiên. Hầu hết các sự kiện được hiển thị trong cửa sổ chương trình chính là hoàn toàn không cần thiết trong bối cảnh một số tác vụ người dùng có tính chuyên môn cao nhất định. Chà, người dùng không cần phải xem các sự kiện tải hình ảnh của một chương trình cập nhật được khởi chạy đột ngột trong khi anh ta đang bận nghiên cứu các khóa đăng ký lưu trữ cấu hình của chương trình mà anh ta quan tâm. Với mục tiêu che giấu các sự kiện không cần thiết, Process Monitor có các công cụ lọc linh hoạt và mạnh mẽ. Bộ lọc cho phép bạn ẩn các sự kiện không cần thiết, từ đó hạn chế số lượng phần tử được hiển thị và thu hẹp khu vực tìm kiếm cho vấn đề.

Bằng cách lọc, bạn có thể ẩn một sự kiện, nghĩa là tắt hiển thị của nó. Tuy nhiên, tất cả các sự kiện sẽ được ghi lại và bạn có thể xem các sự kiện đã lọc (ẩn) bất kỳ lúc nào bằng cách tắt (đặt lại) bộ lọc.

Vì lọc là một trong những yếu tố chính của Procmon nên khả năng của nó được phát triển rất tốt trong chương trình này. Bạn có thể lọc các sự kiện bằng cách sử dụng bất kỳ thuộc tính sự kiện nào có sẵn cho chương trình. Có một số cách để lọc sự kiện trong Process Monitor:

Lọc theo lớp

Đây là cách tổng quát nhất, có thể nói là lọc sự kiện thô, cho phép bạn loại trừ toàn bộ lớp sự kiện khỏi đầu ra cùng một lúc: sổ đăng ký, hệ thống tệp, mạng, hoạt động quy trình/luồng, lập hồ sơ sự kiện. Thiết lập lọc theo lớp sự kiện được thể hiện bằng năm nút ở bên phải thanh công cụ:

Theo đó, tại thời điểm bất kỳ nút lớp nào được liệt kê bị người dùng vô hiệu hóa (nhấn) trên thanh lệnh, bộ chung bộ lọc, bộ lọc tương ứng sẽ được thêm vào bằng lệnh Loại trừ, ẩn tất cả các sự kiện của lớp này khỏi đầu ra.

Trình đơn bộ lọc

Bất kỳ loại bộ lọc nào được sử dụng trong Trình giám sát quy trình, chúng đều có sẵn thông qua menu Bộ lọc và mục phụ Bộ lọc. Đây là bộ tham số lọc (chung) hoàn chỉnh và được trình bày dưới dạng sau:

Cửa sổ cài đặt bộ lọc tương tự có thể được mở nhanh chóng bằng các cách khác: bằng cách nhấn tổ hợp phím Ctrl + L hoặc bằng cách nhấp vào nút Bộ lọc trên thanh công cụ. Cửa sổ cài đặt bộ lọc cung cấp cho người dùng các tùy chọn khá phong phú để che giấu các sự kiện hệ thống. Cửa sổ Bộ lọc Giám sát Quy trình được chia thành hai phần: phần trên chứa các thành phần giao diện để thêm bộ lọc, phần dưới chứa danh sách những phần đã được áp dụng cho đến đầu ra tiêu chuẩn bộ lọc. Bộ lọc được thêm vào bằng cách chuyển từ trái sang phải qua tất cả các thuộc tính, lần lượt được biểu thị bằng danh sách thả xuống. Một số thuộc tính có liên quan với nhau, nghĩa là việc chọn một thuộc tính từ một danh sách có thể dẫn đến việc tự động thiết lập giá trị trong các danh sách khác. Trong một số trường, bạn có thể chỉnh sửa giá trị. Sau khi hoàn thành việc hình thành, để thêm bộ lọc, bạn phải nhấp vào nút Thêm, nó thêm các tham số lọc mới vào các bộ lọc được trình bày ở khu vực phía dưới của cửa sổ.
Để chỉnh sửa các quy tắc của bộ lọc đã chọn, chỉ cần nhấp đúp vào dòng tương ứng mô tả bộ lọc ở cuối cửa sổ. Điều này sẽ di chuyển các tham số đến phần trên cùng(các điều kiện tương ứng sẽ được điền vào), nơi bạn có thể chỉnh sửa chúng và bằng cách nhấn lại nút Thêm, hoàn tất chỉnh sửa bộ lọc, lại di chuyển nó xuống cuối cửa sổ, vào danh sách các bộ lọc đang hoạt động. Bạn có thể xóa bộ lọc bằng nút Xóa. Sau khi chỉnh sửa các bộ lọc, chúng có thể có hiệu lực (kích hoạt) bằng cách nhấp vào nút OK hoặc Áp dụng. Để khôi phục cài đặt bộ lọc mặc định về trạng thái ban đầu khi chương trình được khởi chạy lần đầu tiên, hãy nhấp vào nút Đặt lại.
Như bạn có thể nhận thấy, theo mặc định, danh sách các bộ lọc được xác định trước chứa một bộ quy tắc thuộc loại Loại trừ. Các quy tắc này dùng để che dấu các sự kiện mà tác giả tin là các sự kiện hoạt động của các thành phần hệ điều hành, trong hầu hết các trường hợp, không cung cấp thông tin hữu ích cho việc khắc phục sự cố ứng dụng. Tại đây bạn có thể tìm thấy các ngoại lệ cho: các quy trình của Procmon (Trình giám sát quy trình), Procexp ( Trình khám phá quy trình), Tự động chạy, quy trình hệ thống, yêu cầu I/O cấp thấp từ trình điều khiển Windows IRP_MJ, hoạt động FAST_IO cấp thấp, sự kiện theo dõi, sự kiện pagefile.sys, sự kiện siêu dữ liệu của trình quản lý NTFS.

Lọc nhanh

Bạn có thể áp dụng cái gọi là "bộ lọc nhanh" cho một số thông số sự kiện được hiển thị trong cửa sổ chính. Nó được kích hoạt bằng cách nhấn nút bên phải chuột vào sự kiện trong cửa sổ chương trình chính:

Trong menu ngữ cảnh mở ra, bạn có thể thấy một số phương pháp lọc khác nhau cùng một lúc. Tùy thuộc vào giá trị cột nào trong hàng được nhấp vào phím phải chuột, chúng ta có thể loại trừ hoặc bao gồm khỏi toàn bộ các sự kiện mảng đầu ra có giá trị cột khớp. Điều này được thực hiện bằng cách chọn mục thích hợp bắt đầu bằng Bao gồm ... (Bao gồm) và Loại trừ ... (Loại trừ). Menu ngữ cảnh cũng chứa các mục sau: Chỉnh sửa bộ lọc..., Loại trừ sự kiện trước, Loại trừ sự kiện sau.

Lọc theo chủ sở hữu cửa sổ

Ngoài các tùy chọn lọc cơ bản, tiện ích Procmon còn có khả năng lọc các sự kiện bằng tay cầm cửa sổ ứng dụng (mã định danh). Nó khá thoải mái tính năng chức năng, vì nó cung cấp cho người dùng cơ hội xem các sự kiện của quá trình có cửa sổ xuất hiện trên màn hình nền. Để bật chức năng này, hãy tìm biểu tượng hình chữ thập trên thanh công cụ:

Kéo nó vào cửa sổ mà bạn quan tâm và Procmon sẽ tạo bộ lọc tương ứng cho quy trình sở hữu cửa sổ đã chọn, thay đổi đầu ra trong cửa sổ chính cho phù hợp.

Làm nổi bật sự kiện

Ngoài các bộ lọc, Procmon còn có khả năng đánh dấu các sự kiện bằng cách đánh dấu chúng bằng màu sắc. Trong khi quá trình lọc ẩn các sự kiện không cần thiết khỏi đầu ra, việc đánh dấu chỉ đơn giản là làm nổi bật các sự kiện cần thiết trong danh sách. Có vẻ như trực tiếp, nó không áp dụng cho các bộ lọc, vì nó không ẩn các sự kiện mà chỉ đánh dấu chúng bằng một màu khác trong danh sách. Bạn có thể mở cửa sổ cài đặt đèn nền Process Monitor bằng cách nhấn tổ hợp phím Ctrl + H hoặc nhấp vào biểu tượng tương ứng trên thanh tác vụ. Nó trông như thế này:

Như bạn có thể thấy, nó giống hệt với cửa sổ cài đặt bộ lọc, ngoại trừ việc theo mặc định, nó không có cài đặt nào, tức là đèn nền bị tắt hoàn toàn. Thuật toán thiết lập các tham số đèn nền và lấy mẫu kết quả của cửa sổ Đánh dấu về nhiều mặt tương tự như thuật toán trong cửa sổ Bộ lọc.

Tìm kiếm theo sự kiện

Kết quả lọc là tuyệt vời! Bộ lọc cho phép chúng ta thao tác linh hoạt một mẫu từ luồng sự kiện chung, tuy nhiên, trong hầu hết các trường hợp, rất khó tạo điều kiện để thu hẹp phạm vi sự kiện được lọc đến mức tối thiểu có thể chấp nhận được. Vẫn còn rất nhiều kết quả và đôi khi trong khu vực các hàng được lọc, bạn cần tìm một hằng số được phát hiện bất ngờ. Đôi khi thật hữu ích khi tìm thấy một số từ khóa trong toàn bộ khối thông tin được thu thập mà không hiểu nó có thể nằm ở cột nào, do đó việc tạo bộ lọc hóa ra có vấn đề. Những điều này và nhiều điểm hoạt động khác ủng hộ việc sử dụng tìm kiếm truyền thống, quen thuộc với mọi người từ thời thơ ấu. Cửa sổ tìm kiếm được mở bằng cách nhấn tổ hợp phím Ctrl + F hoặc bằng cách vào menu Edit - Find:

Cửa sổ tìm kiếm quen thuộc với các sản phẩm khác của Microsoft sẽ được hiển thị. Việc tìm kiếm được thực hiện bằng cách sử dụng các giá trị của tất cả các trường đầu ra của cửa sổ chính Process Monitor mà không có ngoại lệ và khi tìm thấy kết quả khớp đầu tiên, tiện ích sẽ cuộn màn hình đến giá trị tìm thấy và đánh dấu toàn bộ dòng bằng đoạn khóa được phát hiện màu xanh lam.

Chi tiết sự kiện

Trình giám sát quy trình nhận được từ Các thành phần khác nhau hệ điều hành có một lượng thông tin bổ sung khá lớn. Tất cả chúng đều được hiển thị trong cột Chi tiết. Hầu hết chúng chỉ mang tính chất cung cấp thông tin nên thường bị bỏ qua trong quá trình phân tích. Tại đây, bạn có thể tìm thấy cấp độ truy cập được yêu cầu cho hoạt động, chi tiết về yêu cầu chức năng, tham số bổ sung cho một số chức năng, tên gói trình điều khiển, v.v.

Khám phá sự kiện

Tất cả thông tin được tiện ích Trình giám sát quy trình thu thập trong quá trình ghi lại các sự kiện được trình bày dưới dạng một bảng lớn, mỗi hàng trong đó chỉ phản ánh mô tả tổng quát về một sự kiện cụ thể đã xảy ra. Vậy bạn nghĩ sao, thông tin này được trình bày trên màn hình chính của tiện ích dưới dạng thông tin hạn chế chia thành nhiều cột là đủ? Đôi khi có, nhưng thường thì không! Chúng ta phải ghi công các tác giả của Process Monitor vì đã cung cấp logic để nghiên cứu chi tiết hơn về các sự kiện được ghi lại. Hãy nhấp đúp vào dòng sự kiện và xem điều gì sẽ xảy ra? Sau khi nhấp đúp, một cửa sổ riêng sẽ mở ra, trông như thế này:

Trong tab Sự kiện, chúng tôi thấy thông tin chung về sự kiện mà chúng tôi quan tâm. Nói chung, tab cụ thể này không có giá trị lớn đối với nhà nghiên cứu vì nó chứa thông tin có thể lấy được trong giao diện tiện ích theo những cách khác. Nhưng hai tab còn lại của cửa sổ chắc chắn có thể khiến chúng ta quan tâm. Tab ở giữa được gọi là Process và trông như thế này:

Ở đây chúng ta thấy đường dẫn đến module (Path), dòng lệnh, nhờ đó mô-đun đã được khởi chạy ( Dòng lệnh), người dùng có đặc quyền mà quy trình đã được khởi chạy (Người dùng), ID phiên đăng nhập (ID xác thực) trong đó quy trình, chủ sở hữu của hoạt động, đang chạy và mức độ toàn vẹn được gán cho quy trình, chủ sở hữu của hoạt động khi khởi động. Đặc biệt chú ý đến cửa sổ thông tin với danh sách các thư viện được tải trong (Mô-đun), giúp ích rất nhiều cho việc xác định vị khách không mời dưới dạng nhiều loại phần mềm độc hại. Nhưng đối với các nhà nghiên cứu nâng cao, giá trị thực là tab Ngăn xếp cuối cùng, ngoài cùng bên phải, cho phép bạn xem ngăn xếp cuộc gọi của luồng chính của một quy trình:

Như chúng ta có thể thấy, trong tab này, bạn có thể tìm thấy chuỗi lệnh gọi hàm cổ điển, được chúng ta biết đến nhiều từ trình gỡ lỗi WinDbg, được gọi là ngăn xếp cuộc gọi. Đầu tiên, nó cho phép bạn theo dõi chuỗi các lệnh gọi hàm kể từ thời điểm hàm bắt đầu của luồng bắt đầu thực thi. Thứ hai, theo trình tự các lệnh gọi hàm, bạn có thể xác định các chức năng này thuộc về mô-đun (thư viện) nào, từ đó xác định các thành phần hệ thống yêu cầu cập nhật hoặc hoàn toàn không nên sử dụng trong một mô-đun nhất định (ví dụ: vi-rút).

Trường hợp sử dụng

Một số lưu ý về trạng thái chương trình Process Monitor:

  • Một sự kiện có trường hoạt động là Load Image giúp chẩn đoán các sự cố khởi động chương trình. Nếu chương trình không khởi động vì lý do nào đó, hãy kiểm tra danh sách chung sự kiện bằng thao tác Tải Hình ảnh và xem danh sách các tệp DLL được tải (được mô tả bằng các sự kiện của chúng) ngay sau sự kiện tải hình ảnh. Nếu chúng ta nhớ lại thuật toán tải một hình ảnh, chúng ta sẽ hiểu rằng thông thường thao tác Tải hình ảnh được theo sau bởi các sự kiện tìm kiếm các thư viện DLL cần thiết. Thực tế là trình tải Windows chuẩn bị không gian địa chỉ tiến trình bằng cách chiếu mọi thứ vào đó cần thiết cho chương trình thư viện và thực hiện liên kết ngầm ở giai đoạn đầu. Nếu một trong các DLL mà chương trình chính yêu cầu gặp lỗi khi tải hình ảnh của nó thì rõ ràng là trình tải Windows sẽ không thể khởi chạy chương trình chính. Sự kiện tải hình ảnh được ghi lại với trạng thái "truy cập bị từ chối" (TRUY CẬP TỪ CHỐI);
  • Các trạng thái mà bạn nên chú ý trước tiên: TỪ CHỐI TRUY CẬP, VI PHẠM CHIA SẺ, KHÔNG TÌM THẤY TÊN (có những trường hợp ngoại lệ đối với các trạng thái sau). Trạng thái KHÔNG TÌM THẤY TÊN trong hầu hết các trường hợp là trạng thái hoàn thành khá điển hình, bạn không nên phóng đại tầm quan trọng của nó quá nhiều và coi nó là thủ phạm của mọi rắc rối. Thông thường, trạng thái được hiển thị khi ứng dụng kiểm tra sự hiện diện của tệp hoặc khóa đăng ký (chứa cấu hình chương trình) và dựa trên kết quả của việc kiểm tra này, nó sẽ thực thi mã này hoặc mã đó, nghĩa là nó phân nhánh hợp lý tùy thuộc vào kết quả của yêu cầu. Chương trình có thể không tìm thấy khóa đăng ký chứa cấu hình của chính nó và trong những trường hợp như vậy, chúng ta sẽ thấy trạng thái TÊN KHÔNG TÌM THẤY tương tự. Nói tóm lại, trạng thái TÊN KHÔNG TÌM THẤY phải được xem trong bối cảnh sự kiện dẫn đến nó.
  • Để xác định thủ phạm của việc tải quá mức trên hệ thống con đĩa: khởi chạy Procmon, tạo bộ lọc với cài đặt Đường dẫn - bắt đầu bằng - C:\ (mặc dù mọi ổ đĩa logic quan tâm đều có thể được chỉ định tại đây) và nhấp vào OK. Sau đó, sau khi thu thập dữ liệu ngắn (~ một phút), hãy chuyển đến menu Công cụ và chọn mục Tóm tắt hoạt động quy trình. Trong cửa sổ mở ra, hãy sắp xếp theo cột Sự kiện tệp và lấy ở đầu danh sách tên của các quy trình đang hoạt động tích cực với hệ thống tệp. Sau đó, để tìm ra tệp nào liên quan đến trao đổi dữ liệu chuyên sâu, bạn có thể chọn menu Công cụ và mục Tóm tắt tệp, đồng thời trong cửa sổ mở ra, hãy quan sát danh sách các tệp liên quan đến hoạt động của đĩa. Đầu ra được tự động sắp xếp theo cột Tổng sự kiện, do đó, ở đầu danh sách, chúng ta thấy các tệp được sử dụng nhiều nhất trong các hoạt động I/O của đĩa.

Chẩn đoán giai đoạn khởi động

Khá thường xuyên có những tình huống khi các vấn đề với hệ điều hành bắt đầu từ rất lâu trước khi giao diện người dùng được vẽ, đã ở giai đoạn khởi động. Để chẩn đoán các lỗi mạng như vậy, có một số công cụ chuyên dụng, chẳng hạn như. Tiện ích Process Monitor rất phù hợp với phạm vi này. Procmon ghi lại các sự kiện của tất cả các tiến trình đang chạy trong giai đoạn khởi động, sử dụng trình điều khiển giai đoạn khởi động có tên procmon23.sys (tên có thể thay đổi tùy theo phiên bản), được mô tả ở đầu bài viết. Thật không may, trình điều khiển khởi động ở giai đoạn mô-đun Winload.exe, điều này ngăn không cho sửa giai đoạn Bootmgr trước đó, tuy nhiên, trong hầu hết các trường hợp, bạn có thể nhắm mắt làm ngơ trước chi tiết nhỏ này. Việc kích hoạt ghi nhật ký quá trình khởi động được kích hoạt thông qua tùy chọn Bật ghi nhật ký khởi động trong menu Tùy chọn.

Ngoài việc kích hoạt cơ chế này, Procmon còn cung cấp tính năng định cấu hình luồng theo định kỳ. Điều này rất quan trọng vì trong hầu hết các trường hợp, sự cố khởi động đều liên quan đến hoạt động chậm của một số quy trình nhất định. Để theo dõi các quá trình "làm chậm" như vậy, tính năng lập hồ sơ được bật, cho phép bạn tạo các loại ảnh chụp nhanh về hoạt động của các luồng trong một quy trình (ngăn xếp cuộc gọi và dữ liệu khác) theo các khoảng thời gian đều đặn. Do đó, thông tin được ghi lại giúp hiểu chính xác những hoạt động nào mà luồng đang sử dụng thời gian của CPU.
Sau khi kích hoạt tùy chọn Enable Boot Logging, bạn có thể khởi động lại hệ điều hành. Sau khi tải xuống hoàn tất, hãy chạy tiện ích Process Monitor để lưu file nhật ký của quá trình tải xuống và thấy hộp thoại sau:

Trong đó chúng tôi được yêu cầu lưu các sự kiện của quá trình tải xuống vào một tệp nhật ký riêng có phần mở rộng .pml. Tùy thuộc vào lượng thông tin, tệp nhật ký có thể được lưu trong một tệp duy nhất hoặc được chia thành một loạt tệp có kích thước xấp xỉ bằng nhau.

Lượng thông tin được trình điều khiển Process Monitor ghi lại ở giai đoạn khởi động cho hệ điều hành "tải trung bình" :) Hệ thống Windows 7 SP1 x64, đủ lớn. Kích thước thông thường khi bật cấu hình luồng có thể vượt quá 1500 megabyte.

Sau khi lưu các tệp nhật ký của hoạt động giai đoạn khởi động, bạn có thể phân tích chúng sau này bằng cách mở chúng trong Trình giám sát quy trình hoặc nhấn đúp chuột bằng tệp .pml hoặc bằng cách mở tệp trực tiếp thông qua menu Tệp - Mở. Tuy nhiên, có một lưu ý ở đây: nếu tệp nhật ký quá trình khởi động hoặc tập hợp tệp quá lớn và tiện ích không thể tìm thấy đủ dung lượng trong tệp trang hoặc xử lý không gian ảo để tạo bộ đệm thì sẽ xảy ra lỗi “Unable to open Bootlog”. .pml để đọc” được hiển thị. . . ". Cá nhân tôi đã giải quyết nó bằng cách tạm thời kích hoạt tệp hoán đổi, thứ mà theo truyền thống tôi đã tắt hoàn toàn.

Hôm nay tôi sẽ cố gắng tìm hiểu vấn đề vận hành chính xác của phần mềm theo quyền của người dùng bằng ví dụ về phần mềm (Kính hiển vi kỹ thuật số Prima Expert) cho kính hiển vi kỹ thuật số của Công ty Cổ phần LOMO.


Giống như nhiều doanh nghiệp, chúng tôi có chính sách bảo mật nghiêm ngặt được quy định trong STP và nhân viên bình thường không có quyền quản trị viên nên đôi khi có vấn đề với hoạt động của phần mềm bằng tài khoản người dùng tài khoản, bởi vì Phần mềm yêu cầu quyền nâng cao.

Vậy lúc đầu tôi phải làm gì, bộ phận Kiểm soát chất lượng kiểm soát kỹ thuật) đã yêu cầu cài đặt phần mềm đi kèm kính hiển vi “Expert Prima phiên bản 1.0” trên máy người dùng thông thường chạy Windows XP.

Quá trình cài đặt đã hoàn tất nhưng vấn đề sau đã được phát hiện. Chương trình không nhìn thấy camera và cắt giao diện sau khi khởi chạy với tư cách người dùng, nó hoạt động chính xác dưới sự quản trị viên phần mềm.

Điều đầu tiên tôi thử là cấp cho người dùng quyền thay đổi thư mục bằng chương trình LOMO.

Hành động này không mang lại kết quả tích cực. Được trang bị tiện ích Process Monitor, tôi đã thiết lập một bộ lọc trong đó cho quy trình Prima.exe và khởi chạy phần mềm Prima Expert.

Tiện ích hiển thị tất cả tài nguyên hệ thống bị ảnh hưởng để Prima.exe chạy

Tôi sắp xếp theo trường Chi tiết và xem xét các bụi cây bị ảnh hưởng, tôi quan tâm đến giá trị Truy cập mong muốn: Đọc/Ghi.

Tôi cấp cho người dùng toàn quyền truy cập vào các thư mục đăng ký:

Trình ánh xạ HKLM\Software\Microsoft\VfWWDM
HKLM\System\CurrentControlSet\control\MediaResources\msvideo\MSVideo.VFWWDM

Tại sao lại có những thư mục này? Bởi vì người dùng có toàn quyền truy cập vào HKCU - đây là chi nhánh của anh ấy.

Tôi chạy nó để kiểm tra, chương trình hoạt động như mong đợi.

Tôi hy vọng bài viết sẽ hữu ích cho các quản trị viên và người mã hóa mới làm quen. Tôi đã sử dụng phương pháp này trong một thời gian rất dài. Nó rất linh hoạt và chưa bao giờ làm tôi thất vọng.

Nhiều người quan tâm đến câu hỏi “Làm cách nào để biết chương trình làm gì khi cài đặt, khởi động, đóng, chạy? Làm thế nào tôi có thể theo dõi chương trình? Trả lời: Sử dụng một chương trình khác có tên Process Monitor.

Quá trìnhMàn hình- một chương trình dành cho Windows hiển thị trong thời gian thực nơi các tệp được ghi hoặc xóa, tệp nào được đọc bởi một chương trình cụ thể, chương trình thực hiện hành động gì với sổ đăng ký, cách thức và thời điểm chương trình được giám sát sử dụng mạng (Internet) và cũng giám sát các tiến trình và luồng. Chương trình được trang bị bộ lọc mạnh mẽ để theo dõi quy trình cần thiết hoặc các sự kiện. Process Monitor là công cụ hàng đầu để khắc phục sự cố hệ thống và loại bỏ phần mềm độc hại(vi rút).

Bây giờ chúng ta hãy xem xét kỹ hơn cách làm việc với chương trình và phân tích các chức năng chính của nó. Để biết phần giới thiệu chi tiết hơn về chương trình, hãy xem cột “video” ở bên phải, vì mô tả đầy đủ về chương trình sẽ yêu cầu viết sách).

Đây là giao diện của cửa sổ chương trình chính khi bạn khởi động Trình giám sát quy trình. Quá trình ghi bắt đầu ngay sau khi khởi chạy Quy trình Windowsđây là truy cập và tạo tập tin, truy cập vào sổ đăng ký, mạng, v.v.

Tất nhiên, một lượng thông tin rất lớn được ghi lại cùng một lúc và không dễ để tìm thấy những gì bạn cần trong đó, nhưng ở đây các bộ lọc sẽ hỗ trợ chúng tôi, nhưng trước tiên chúng ta sẽ xem xét giao diện chương trình sau một chút.

Trên bảng chương trình chính:

Các chức năng chính của nó được đăng. Nhóm biểu tượng ngoài cùng bên phải

Đây là các biểu tượng lọc sơ bộ (thô). Từ trái sang phải: hiển thị quyền truy cập vào sổ đăng ký, hệ thống tệp, mạng (Internet), hiển thị các quy trình và luồng, lập hồ sơ cho từng quy trình. Theo đó, nếu bạn chọn một biểu tượng, chẳng hạn như quyền truy cập vào sổ đăng ký, thì chỉ có quyền truy cập vào sổ đăng ký sẽ được hiển thị, nếu có hai thì hai, v.v. Tôi lưu ý rằng ngay cả khi bạn không chọn bất kỳ biểu tượng nào, quá trình ghi vẫn tiếp tục và nếu bạn bật nó lên, các sự kiện trước khi bật sẽ được hiển thị.

Hai điểm tiếp theo là tìm kiếm và chuyển tiếp:

Theo đó, nếu bạn nhấp vào tìm kiếm, một cửa sổ sẽ xuất hiện nơi bạn cần nhập cụm từ hoặc tham số và nếu bạn nhấp vào, một trình thám hiểm sẽ mở ra, chẳng hạn như nếu bạn xem loại tệp nào đang được tạo hoặc sổ đăng ký editor, nếu bạn xem những thông số đăng ký nào được thay đổi hoặc đọc.

Bộ lọc nhóm menu tiếp theo

Mục đầu tiên là chính bộ lọc, khi nhấp vào, một cửa sổ sẽ mở ra nơi bạn cần chọn các tham số lọc.
Điểm thứ hai là làm nổi bật một số dòng nhất định, tức là. Nó cũng là một bộ lọc nhưng nó chỉ chọn những dữ liệu cần thiết.
Điểm thứ ba “tầm nhìn” là cần thiết cho thêm nhanh xử lý nếu bạn không biết nó được gọi là gì. Ví dụ: một số cửa sổ đã mở nhưng bạn không biết đó là loại cửa sổ nào, hãy nhấp vào hình chữ thập và giữ, kéo vào cửa sổ xuất hiện, một bộ lọc sẽ tự động được tạo để theo dõi quá trình này.

Nhóm menu tiếp theo có nhiệm vụ hiển thị các sự kiện trong cửa sổ chính

Kính lúp dừng lại và bắt đầu theo dõi. Danh sách có mũi tên tự động cuộn khi có mục mới xuất hiện. Và danh sách có cục tẩy là xóa danh sách các sự kiện hiển thị trên vòi.

Hai menu cuối cùng, tôi nghĩ không cần phải giải thích nhiều về việc lưu hoặc tải các tiến trình theo dõi

Bây giờ hãy xem cách chương trình hoạt động bằng một ví dụ. Giả sử chúng ta muốn tìm hiểu xem ứng dụng nào đó đang hoạt động trên máy tính của chúng ta. Hãy để ứng dụng này là một notepad. Trong các quy trình, chúng tôi biết trước rằng nó được gọi là sổ tay.exe. Khởi chạy Process Monitor, nhấn nút “Filter” (Ctrl+L) và xem cửa sổ sau:

Theo mặc định, nó đã bao gồm một số bộ lọc loại trừ nhiều loại khác nhau khỏi danh sách quy trình hệ thống, các quy trình của chính chương trình Giám sát quy trình và các quy trình khác thường không cần thiết để phân tích.

Hãy tạo bộ lọc của riêng chúng ta để chỉ hiển thị quá trình sổ tay.exe.Để thực hiện việc này, hãy nhấp vào mũi tên xuống đầu tiên, trong đó “Architecture” được viết theo mặc định và chọn “Process Name” từ danh sách đề xuất. Tiếp theo, từ danh sách thứ hai, chọn mục “is”, đây là mục mặc định Hình 2. Trong menu tiếp theo, chúng ta có thể chọn một quy trình từ những quy trình đã chạy hoặc tự thêm quy trình đó bằng cách viết “notepad.exe” vào trường. Chúng ta chưa có notepad, chúng ta hãy tự viết nó. Hình 3. Điểm cuối cùng là cách định vị quy trình này “Bao gồm” để chỉ để lại nó và “Loại trừ” để loại trừ nó khỏi quy trình chung. Chọn “Bao gồm” Hình 4. Nhấp vào nút “Thêm” bên dưới để thêm bộ lọc.

Kết quả là, chúng ta sẽ nhận được những điều sau đây:

Chúng tôi nhấp vào “Áp dụng” “Ok” ở dưới cùng và chúng tôi thấy rằng danh sách trong chương trình đã trở nên rõ ràng, điều này là do chúng tôi đã bật bộ lọc cho một quy trình chưa chạy và thêm một điều kiện để bỏ qua mọi thứ ngoại trừ quy trình này.

Chúng tôi khởi chạy notepad và thấy như sau:

Dòng đầu tiên chúng ta thấy là khởi chạy quy trình với PID và Parent PID, sau đó một luồng được tạo, các tệp đồ họa được tải, một tệp được tạo trong thư mục C:WindowsPrefetch và có tên là NOTEPAD.EXE-D8414F97.pf. Chúng ta có thể vào ngay thư mục này; để thực hiện việc này, chỉ cần đánh dấu dòng trong trong trường hợp này thứ năm và nhấp vào bảng điều khiển chính mũi tên xanh, và thư mục chứa tệp này sẽ được mở ngay lập tức. Tiếp theo là tải các thư viện hệ thống khác nhau, đọc cài đặt từ sổ đăng ký, cả hệ thống và người dùng, v.v.

Có một biểu tượng khác trên menu chính chưa được đề cập trước đó:

Đây là biểu tượng cây quy trình. Nếu bạn nhấp vào nó, bạn sẽ thấy cửa sổ sau:

Cây này hiển thị chương trình nào, quy trình nào đã được khởi chạy, thư mục nơi nó được khởi chạy, quá trình tồn tại trong bao lâu và nhiều thông tin khác nhau.

Chỉ vậy thôi, như tôi đã nói, mọi thứ sẽ cần phải được viết ra cả một cuốn sách, vì vậy hãy xem các video bên phải; chúng kể nhiều hơn và hiển thị nhiều hơn).