Procmon. הכלי השם המוכר של Sysinternals של Windows למעקב אחר פעילות בכל הקשור לווינדוס. מוכר כתוכנה מסוגתו שיכולה לעקוב אחרי מתקן תוכנה רוג', עושה שינויים לרשומות הרישום או אולי בודק את עקבות הוירוס.
אם תצטרכו לבדוק את רישום הווינדוס, מערכת הקבצים, התהליכים או פעילות הרשת והחלטתם להשתמש ב-procmon, מאמר זה מיועד לכם.
במדריך האולטימטיבי הזה, תלמדו הכול על השימוש בכלי procmon מההתקנה, דרך השימוש הבסיסי ועד למקרים שונים שיעזרו לכם לעקוב אחרי כל סוג של פעילות.
דרישות מוקדמות
המדריך האולטימטיבי הזה יחול על רוב מערכות הווינדוס אך, למען השלמות (וכדי למנוע מכם לנסות להפעיל את procmon על מחשב עם ווינדוס 3.1), תצטרכו לזהות את הפריטים הבאים:
- A Windows Vista or Windows Server 2008 or higher machine (x86 or x64)
זהו! תורידו ותתקינו את procmon בקטעים הבאים. המדריך ישתמש בגרסה 3.6 של procmon על מחשב בעל מערכת הפעלה Windows 10 Build 1909 x64.
הורדה והפעלת Procmon
כדי להתחיל, תצטרכו להפעיל את procmon על מחשב הווינדוס שלכם. תוכלו לעשות זאת בשני דרכים שונות; דרך ההורדה המסורתית או מה ש-Sysinternals של Windows קוראת Sysinternals Live .
בדרך הישנה
Procmon לא צריך להתקין; זהו קובץ יישומון בודד. תוכל להוריד אותו על ידי הורדת קובץ ה-ZIP. לאחר שתוריד אותו, תחלץ את קובץ ה-ZIP בעזרת הכלי האהוב עליך. להלן קטע קוד PowerShell אם שמרת עליו בתיקיית הבית שלך. קטע קוד זה ייצור תיקייה ב-~\ProcessMonitor עם כל הקבצים הדרושים.
בתוך התיקייה ~\ProcessMonitor, תראה חמישה קבצים:
- Eula.txt – ההסכם הרשיוני שעליך לקבל לפני הפעלת procmon.
- procmon.chm – קובץ העזרה המכיל את כל התיעוד שניתן לך.
- Procmon.exe – הקובץ הנפרד הראשי שיפעיל את ההתקן הנכון של procmon (x86 או x64).
- Procmon64.exe – הבינארי x64 של procmon.
- Procmon64a.exe – הבינארי x64 אלפא של procmon.
כעת הפעל את procmon על ידי הפעלת קובץ ~\ProcessMonitor\procmon.exe.
Procmon רץ רק עם הרשאות מלאות, כך שתתבקש לקבל את זה אם יש לך UAC מופעל כאשר אתה מפעיל אותו. יש דרך לעבור על זה שתתפסט במהלך זה.
Sysinternals Live
אם לא תרצה (או לא תוכל) להוריד קובץ EXE, תוכל גם להשתמש בתיקיית הגלישה החיה של Sysinternals. כדי לעשות זאת, פתח את מסיימת הקבצים והדבק \\live.sysinternals.com\tools. אז תראה תיקייה כמו כל תיקיית שיתוף רשת רגילה המכילה את כל קבצי Sysinternals כולל procmon.

גלול מטה עד שתמצא procmon, לחץ פעמיים ווואלה, אתה מפעיל את procmon!
התאמה אישית של הפעלת Procmon
בדרך כלל, procmon משיק אותך להסכים להסכם רישיון של משתמש סופי (EULA) וגם לפתוח חלון. באמצעות שורת הפקודה, תוכל להתאים אישית את ההתנהגות ברירת המחדל הזו.
לדוגמה, אם תרצה להפעיל את procmon במצב ממוזער על ידי השימוש במתג /Minimized
.
אולי אתה מפעיל את procmon על מחשב חדש ותוכל לעדיף שלא לראות את תיבת ההסכמה להפעלה. באפשרותך לנטרל את זה בהפעלה באמצעות המתג /AcceptEula
.
למרות שזה פחות סביר בימינו, בכל פעם שתפעיל את procmon, הוא יזהה האם אתה מריץ מערכת הפעלה 64-ביטית או 32-ביטית. אם אתה על מחשב 64-ביטי, הוא יפעיל תהליך 64-ביטי ולהיפך. אם אתה על מחשב 64-ביטי ותרצה להריץ את procmon כתהליך 32-ביטי או לקרוא קובץ לוג (עוד על זה מאוחר יותר) שנוצר ממחשב 32-ביטי, השתמש במתג /Run32
.
Procmon יש לו מתגי שורת פקודה אחרים שמתאימים את ההתנהגות אך תלמד על זה בסעיפים הבאים.
מבוא ל-Procmon
כאשר אתה מפעיל את procmon לראשונה, ייתכן שתתפלא מהאפשרויות. אל דאגה, תלמד על כל מה שצריך במדריך הזה! תוכל לראות למטה דוגמה של תפיסת procmon בתהליך.

ברגע שאתה מפעיל את procmon, הוא מתחיל לתפוס מגוון של אירועי Windows שונים.
אם אינך רוצה ש-procmon יתחיל לתפוס אירועים באופן אוטומטי, תוכל להתחיל אותו מהשורת פקודה על ידי הרצת
procmon.exe /NoConnect
.
כפי שניתן לראות בתמונת המסך למעלה בעמודת פעולה, ישנם סמלים שונים המייצגים כל מחלקה של אירועי Windows. Procmon מתפס אירועים מחמישה מחלקות שונות:
- Registry
- Filesystem
- Network
- Processes
- Profiling events
כל אירוע בכל מחלקה מיוצג בפנל רשימה יחיד של שבע עמודות:
- זמן היום – הזמן בו התרחש האירוע.
- שם התהליך – שם התהליך שגרם לאירוע.
- PID – מזהה התהליך.
- פעולה – סוג האירוע כמו אם התהליך פתח קובץ, שינה ערך של מפתח ברישום, וכו'
- נתיב – הנתיב אל האובייקט שהאירוע פעל עליו כמו נתיב קובץ, נתיב רישום, וכו'.
- תוצאה – בעמודה זו יהיו מספר ערכים שיציינו את תוצאת האירוע. ערך זה יכול להיות כל כך פשוט כמו הצלחה או ספציפי לאירוע כמו REPARSE, BUFFER OVERFLOW, NAME NOT FOUND וכו '.
- פרט – בעמודה זו נמצאים כל הפרטים הקטנים עם שהיית רוצה לראות אירוע.
אם תרצה שלא לראות עמוד מסוים או תרצה לראות אילו עמודות אחרות יש לך זמינות, לחץ עם העכבר על כותרת העמודה ובחר בחר עמודות. תקבל תיבת דו שיח שבה תוכל להתאים אישית את העמודות שניתן להציג.

בחלון האירועים, לחץ פעמיים על אירוע מסוים. תוכל למצוא עוד פרטים רבים על התהליך והאירוע עצמו בעזרת צפייה בכרטיסיות אירוע, תהליך, ו- מחסנית.

הפעלת וניטרול תפיסות
יש לך שליטה מוחלטת על תהליך התפיסה. באפשרותך להשבית את כל תהליך התפיסה או להשבית תפיסה לפי קטגוריה של אירוע.
בתפריט העליון, תראה סמל זכוכית מגדלת (למטה). אם על הזכוכית המגדלת יש X אדום מעליה, זה אומר שהתפיסה מנוטרלת. אחרת, התפיסה מופעלת.

אל תשאיר את Procmon מקלוט אירועים לזמן רב יותר מהנדרש. זה משתמש בזיכרון וירטואלי כדי לאחסן את כל האירועים האלה ואם אתה לא זהיר, ייתכן שתגרום להתהפכות בווינדוס! אפשר לשנות את ההתנהגות הזו כפי שתראה מעט מאוחר יותר.
אם ברצונך להיות יותר בררני, תוכל גם לשלוט על תפיסת כל קבוצת אירועים. בסרגל התפריט, תראה חמישה סמלים זהים המוצגים בעמודת פעולה. על ידי לחיצה על הכפתורים אלו, תוכל לאפשר או להשבית כל קבוצת אירועים שלמה.

העבר את העכבר מעל כל סמל כדי לראות איזה פעילות מסוג כל סמל מייצג.
תראה מיד לאחר שתלחץ על סמל, procmon יפעיל מסנן אירועים. בהתאם לכמות האירועים שנתפסו עד כה, עשוי להופיע חלון קופץ כמו התמונה למטה.

לפי ברירת המחדל, הסמל הרחוק ביותר לימין (הגרף השחור והירוק) לא מופעל. אם ברצונך להפעיל קבוצת אירועים זו כאשר procmon מתחיל, תוכל להפעיל את procmon משורת הפקודה באמצעות
.\procmon.exe /Profiling
.
תוכל לראות את מספר האירועים בחלון על ידי הסתכלות למטה. כפי שתוכל לראות מתחת, procmon עיבד 84,334 אירועים אך עקב המסנן שהופעל, רק 15,912 מהם מוצגים או 18% מהם. תוכל גם לראות כי האירועים אלה מאוחסנים בזיכרון וירטואלי (יותר על כך מאוחר יותר).

מסנני אירועים
כדי להבין את procmon, חשוב בוודאות להבין את המושג של מסנני אירועים. מסנני אירועים הם אופן הבחנה בין הרעש לאות. מסנני האירועים מסתירים את כל האירועים שאינך מעוניין בהם. למעלה, פעלת במסנני אירועים לפי קבוצות אירועים שלמות אך תוכל להיות הרבה יותר דקדוקי.
ישנם מספר דרכים להתקשר עם מסנני אירועים. בואו נתחיל בדברים פשוטים. לחצו על פריט התפריט מסנן בחלק העליון. תראו מספר אפשרויות שונות לעבוד עם מסננים.

צפייה במסננים
באופן ברירת מחדל, Procmon יוצר מסנן עבורך. בתפריט מסנן, לחצו על מסנן…. תראו חלון מסנן של מוניטור תהליכים עם שתי אזורים; אחד לסינון של כללי המסנן שלך ואחד לצפייה בכל הכללים שהגדרת. תראו דוגמה לכך למטה.

באופן ברירת המחדל, Procmon יציג את המסננים הנ"ל בכל פעם שתפעילו אותו. אם תרצו להסתיר את החלון הזה, תוכלו לעשות זאת על ידי הפעלת Procmon עם המתג
/Quiet
.
תראו שללא יצירת מסננים משלכם, Procmon משתמש גם הוא בערכי מסננים מובנים. אם תגללו למטה בחלון מסנן של מוניטור תהליכים, תראו שונות רבה של כללים מוגדרים. כאן תוכלו לצפות בכל קטגוריה, אופרטור, ערך ופעולה לביצוע על כל כלל.
המסננים האלו מיושמים מכיוון שבדרך כלל לא תצטרכו לראות את האירועים שהמסננים האלו מוחקים. אך, אם תרצו לראות את כל האירועים, תוכלו גם להסיר את כל המסננים ברירת המחדל או ללחוץ על מסנן —> אפשר פלט מתקדם כפי שמוצג למטה.

לדוגמה, תראו כמה כללים בראש העמוד שמציגים את שם התהליך לערך העמוד , הוא לערך היחס, תהליכים הקשורים ל-procmon לערך העמוד , ופעולה של הוסר. בעברית פשוטה, הכללים האלה אומרים ל-procmon לא להציג (להוסיף) תהליך בשם procmon.exe, לדוגמה.
ניהול כללי סינון אירועים
בהתאם לשימוש שלך, כמובן שתצטרך להוסיף את הכללים שלך. ישנם כמה דרכים שונות להוסיף כללים.
שימוש בתיבת סינון של Process Monitor
בחלק האחרון, ראיתם איך נראית תיבת הסינון של Process Monitor והצגת כל הכללים. בתיבה זו, אתם יכולים גם ליצור, לשנות ולהסיר כללים.
נניח תרצו לראות רק את הפעמים בהן התהליך explorer.exe חיפש מפתח ברישום.
הוספת סנני אירועים
בתיבת הסינון של Process Monitor:
- לחצו על רשימת הנפילה השמאלית ביותר. ברשימה זו מוצגות כל הקטגוריות השונות של האירועים שאפשר לסנן לפין. ניתן לראות למטה שיש הרבה מאוד!
כל פריט שנראה ברשימה זו מתאים לעמוד המוצג בחלק הראשי כפי שמוצג למטה. לצורך המאמר הזה, בחרו ב-שם התהליך.

2. בחר קטגוריה ואז בחר אופרטור. כברירת מחדל, תיבת הנפתחות תהיה הוא אך יש לך הרבה אפשרויות אחרות אם תלחץ על התיבה הנפתחת. אלה האופרטורים מאפשרים לך לסנן את האפשרות שבחרת בכמה דרכים שונות. מאחר שאתה מחפש תהליך שהוא בדיוק explorer.exe, בחר הוא.

3. לבסוף, בחר את שם התהליך כפי שמוצג למטה. תישים לב שמאחר שבחרת שם התהליך כקטגוריה, Procmon מביא אוטומטית את כל התהליכים שרצים כרגע לבחירה.

4. ודא שבחרת כולל מאחר שאתה רק רוצה לראות את האירועים שמתאימים לקריטריון זה. ולאחר מכן לחץ על כפתור ההוספה הוסף כדי להוסיף את הכלל לסינון הנוכחי שלך. כפי שניתן לראות למטה, הכלל של הכלול מוצג כסימן ביטוח ירוק.
5. לבסוף, מאחר שאתה רוצה את כל האירועים שבהם explorer.exe מפעיל שאילתה ברשומת הרגיסטר, וודא שגם הפעולה RegQueryKey מתווספת. כאשר אתה מסיים, עליך לראות את שני הכללים המתווספים.

6. לחץ על אישור ולאחר מכן תראה את החלון הראשי מסיר את כל האירועים שאינם תואמים לכללי הסינון שהגדרת כעת.

מחיקת כללי סינון לאירועים
באפשרותך גם להסיר ולשנות כללי סינון בקלות כאמצעות הקישור.
- לחץ על סמל הסינון בראש החלון הראשי כדי לפתוח את תיבת סינון עבור ניטור התהליכים.

2. הדגש את שני כללי הסינון שיצרת למעלה, לחץ על הכפתור הסר כפי שמוצג למטה ולחץ אישור. פעולה זו תסיר את שני כללי הסינון המותאמים אישית שנוספו לפני כן.

בנוסף, תוכל גם ללחוץ על הכפתור איפוס כדי להסיר אוטומטית את כל כללי הסינון המותאמים אישית.
כל פעם שתחילה סינון, תפסיק את procmon ותתחיל אותו שוב, הסינון הזה יחול שוב. אם ברצונך לוודא שאין שום סינון שנחול כאשר אתה מפעיל את procmon, תוכל להפעיל את procmon עם המפתח /NoFilter.
הוספת כללי סינון באמצעות לחיצה ימנית
תוכל גם להוסיף כללי סינון באמצעות תפריט לחיצה ימנית אם תלחץ על תהליך. כפי שתוכל לראות למטה, תוכל ליצור כל סוג של כלל ישירות מהתפריט הזה; אין צורך לעבור לתיבת Process Monitor Filter בכלל!

כדי להסיר כללי סינון שנוצרו דרך תפריט הלחיצה הימנית, עדיין תצטרך לעבור לתיבת Process Monitor Filter כדי להסיר אותם.
שמירה וניהול של סינונים מותאמים אישית
אם אתה משתמש מתקדם ב-procmon, ייתכן ובזמן מסוים תהיה לך סטים של כללי סינון למגוון מקרים. באמצעות יכולות השמירה והארגון של procmon, תוכל לנהל ולשמור על כמה מהסטים האלה ככל שתרצה.
נניח שיש לך סט כללי סינון מותאמים אישית רבים ותרצה לשמור אותם כדי להשתמש בהם שוב בעתיד. תוכל לשמור את הסינון הזה על ידי מעבר ל- Filter, בחירת Save Filter וסימון שם כפי שמוצג למעלה.

פעם שהמסנן נשמר, תוכל לעלות לפי מסנן, ללחוץ על ארגן מסננים ושם תראה את כל המסננים ששמרת. מכאן, תוכל ללחוץ על מסנן, ללחוץ אישור והמסנן ששמרת ייחול לחלון הנוכחי.

בנוסף, תוכל לטעון מסנן ששמרת על ידי העברת העכבר מעל טען מסנן בתפריט הנפתח מסנן ובחירת המסנן ששמרת מהרשימה בימין.

ייבוא וייצוא של מסננים
אם תרצה לטעון את Procmon במחשב אחר ולשמור את כל המסננים ששמרת, תצטרך להתאכסן. Procmon אין לו שירות ענן לסנכרון מסננים. אך, תוכל לייצא מסננים באופן ידני ולייבא אותם מאוחר יותר.
לייצוא מסנני Procmon:
- עבור לתיבת ארגן מסננים.
- לחץ על המסנן שכבר שמרת ותרצה לייצא.
- לחץ על הכפתור ייצוא.
- ציין שם, בחר נתיב ולחץ אישור. תראה שכל מסנני Procmon נשמרים עם סיומת PMF.
לייבוא מסנני Procmon:
- עבור לתיבת ארגן מסננים.
- לחץ על הכפתור ייבא.
- מצא את המסנן שתרצה לייבא ולחץ אישור.
תוכל לראות הדרכה חזותית של השלבים הללו למטה.

ייבוא וייצוא תצורות Procmon
כפי שלמדתם לעיל, ניתן לייצא ולייבא פילטרים של Procmon דרך קבצי PMF. אך הפילטרים הם רק אחד מהרכיבים שמרכיבים את התהליך של Procmon. ניתן להתאים אישית את העמודות, לשנות את מיקום האחסון (יותר על כך מאוחר יותר) ועוד. האם לא היה נחמד לשמור את כל ההגדרות האלה גם? אפשר!
כדי לשמור את כל התצורה של Procmon, לחצו על קובץ —> ייצוא הגדרות ואז בחרו מיקום בו תרצו לשמור את קובץ ה-PMC (הגדרות Procmon).

לאחר שנשמר, תוכלו לסגור את Procmon באותו מחשב (או אפילו במחשב שונה), לפתוח מחדש את Procmon וללחוץ על קובץ —> ייבוא הגדרות, כאשר Procmon יחיל את כל הפילטרים וההגדרות השונות בדיוק כפי שיצאו.
ניתן גם לטעון הגדרות שנשמרו (כולל פילטרים) דרך שורת הפקודה באמצעות הפרמטר /LoadConfig ולאחריו את הנתיב של הקובץ למשל: ./procmon.exe /LoadConfig C:\ProcmonConfigs\file_deletion.pmc.
הדגשת אירועים והמרתם לפילטרים
אולי תרצו להפוך אירועים מסוימים לניתנים לזיהוי יותר אך לא בהכרח תרצו להסתיר כל אירוע מהתצוגה עם פילטר. במקרה כזה, ניתן להשתמש בהדגשות. הדגשות מאפשרות לך לבנות סטים של כללים בדיוק כמו פילטרים אך במקום להסתיר אירועים, צבע רקע האירועים משתנה.
אולי אתה רואה תהליך ברשימת האירועים בשם ctfmon.exe שתרצה להדגיש ברשימה. תוכל ליצור כלל הדגשה על ידי:
- לחיצה ימנית על האירוע שברצונך להדגיש את המאפיין שלו.
- לחץ על הדגש ובחר מאפיין של אותו אירוע להדגשה. בדוגמה זו, תבחר שם תהליך. תראה אז שהצבע הרקע משתנה לצבע כחול בהיר.
- לאחר שנוצרה חוק ההדגשה, תוכל לעבור לתיבת הדגשות במוניטור תהליכים על ידי לחיצה על סנן —> הדגש. תראה שם את חוק ההדגשה שנוצר.
- מתוך תיבת הדגשות במוניטור תהליכים, תוכל להוסיף ולהסיר חוקים כמו שניתן לעשות עם פילטר.
- אם יצרת חוקי הדגשה ותרצה להפוך אותם לפילטר, תוכל לעשות זאת על ידי לחיצה על כפתור צור פילטר בתיבת הדגשות במוניטור תהליכים.
תוכל לראות הדרכה חזותית של השלבים הללו למטה.

ייצוא ופתיחת אירועים אל/מקבצי יומן
כדי ש־Procmon יציג אירועים לך בחלון, עליך לאחסן אותם במקום מסוים. באופן ברירת המחדל, האירועים מאוחסנים בזיכרון וירטואלי, ובדיוק כמו יש לך קובץ דף.

תלוי בגודל של קובץ הדף שהגדרת (ובמגבלת המערכת) תלוי כמה אירועים יכול Procmon לאחסן.
Procmon יכול לתפוס עד 199 מיליון אירועים.
שמירת אירועים לקובץ יומן
אולי עליך לשמור את האירועים הללו לחקירה מאוחרת או wel אולי לטעון על מחשב אחר? במקרה כזה, עליך לשמור את האירועים לקובץ יומן (PML).
דרך אחת לשמור את האירועים השימושיים האלה היא ללחוץ על קובץ —> שמור. פעולה זו מעלה את תיבת הדו-שיח "שמור בקובץ" למטה שבה תוצג בפניך מספר אפשרויות.
אירועים לשמירה:
- כל האירועים – אפשרות זו היא בדיוק כפי שנשמע. היא תשמור את כל האירועים שה- Procmon תפס בלתי תלוי אם החלפת מסנן אירוע או לא לקובץ.
- אירועים המוצגים באמצעות מסנן האירוע הנוכחי – אפשרות זו אינה שומרת את כל האירועים שתפסת, אלא רק את אלה שעברו את מסנני האירוע הפעילים כעת.
- אירועים מודגשים – אפשרות זו מייצאת ליומן רק את האירועים שבחרת כעת.
תבנית:
- תבנית מוניטור תהליכים טבעית (PML) – התבנית ברירת המחדל לשמירת כל האירועים (PML).
- ערכים מופרדים בפסיקים (CSV) – שמירת כל האירועים בקובץ CSV.
- שפת סימון תגיות נרחבת (XML) – שמירת כל האירועים בקובץ XML. תבנית זו גם נותנת לך את היכולת לשמור מעקבי מסלול (עוד על כך מאוחר יותר) ותפתור סמלי תקנים.

לחץ אישור וה- Procmon יקבע את כל האירועים שתפס כעת לקובץ שבחרת.
פתיחת יומני אירועים שנשמרו
לקחת אלפי אירועים מהתקן האחד, לשמור את ההפעלה הזו לקובץ PML ולהעתיק אותו למחשב אחר לצורך חקירה. וכעת מה? יש לך לפתוח את הקובץ.
ניתן לפתוח כל קובץ PML, ללא קשר אם נתפס על המחשב המקומי שלך או לא, פשוט על ידי המעבר ל File —> Open ובחירת הקובץ PML.
ניתן גם לפתוח לוגים מהשורת פקודה באמצעות המפתח /OpenLog לדוג' procmon.exe /OpenLog C:\MyLogFile.pml.
שמירה אוטומטית של אירועים
בחלק הקודם, למדת כיצד לייצא אירועים ללוג לאחר שתפסת אותם. אך מה לעשות אם אתה יודע מראש שברצונך לקבל אירועים בקובץ PML, XML או CSV? אפשר לקבוע ש-Procmon ילכוד אוטומטית אירועים באחד מפורמטי הלוג האלו.
גם שמירה של אירועים בקובץ הדף יכולה להיות אפשרות אם אתה נמצא בסשן פרובלמים פשוט שעשוי להימשך פחות משעה. אך ישנם כמה חסרונות לשיטה זו.
- כל פעם שתסגור את Procmon, האירועים יימחקו.
- כפי שאומר לפני, גודל קובץ הדף שלך יכול לצמוח מחורבן.
כאשר אתה משתמש בזיכרון וירטואלי כמקום אחסון, אתה יכול לראות כמה מקום פנוי נשמר ל-Procmon על ידי לחיצה על File —> Backing Files.
מה לעשות? לשנות את מקום האחסון.
שמירת אירועים בדיסק
אתה יכול לשנות את המקום שבו Procmon שומרת אירועים מהקובץ הדף שלך לדיסק על ידי:
- לעצור את הלכידה אם אתה מפעיל אותה כרגע.
2. לחץ על קובץ —> קבצי גיבוי. תראה כעת סיכום של אירועים שמאוחסנים וגודלם, יחד עם אפשרות לשנות את מיקום האחסון.

3. כדי לשנות את מיקום האחסון לקובץ, לחץ על שדה השתמש בשם הקובץ:, לחץ על לחצן הנקודות הגלויות והגדר מיקום לקובץ.
נסה להשתמש בנפח דיסק שונה מהנפח שבו פועל procmon לביצועים מיטביים.
אפשר לכפות על procmon להשתמש בקובץ כמקום אחסון על ידי הפעלתו גם מהשורת פקודה ושימוש במתג
/BackingFile
. אם תרצה לחזור לשימוש בקובץ דף שוב, השתמש במתג/PagingFile
.
המרת קבצי לוג
Procmon יכול לשמור קבצי לוג בשלושה פורמטים שונים: PML, CSV ו-XML. אולי שמרת קובץ לוג כ-PML ותצטרך לפענח את האירועים עם סקריפט או כלי אחר. במקרה כזה, ניתן להמיר את קובץ הלוג הזה מ-PML ל-XML או CSV בשורת הפקודה.
נניח שיש לך קובץ לוג בפורמט PML בנתיב C:\capture.pml. תרצה להמיר את קובץ הלוג הזה ל-XML ול-CSV. ניתן לעשות זאת תחילה על ידי פתיחת הקובץ לוג עם מתג /OpenLog
ולאחר מכן להשתמש במתג /Save*
כדי לשמור אותו.
יש ל-Procmon פרמטר סטנדרטי בשם /SaveAs
שמאפשר לך לשמור לוג באחד משלושת הפורמטים שנאמרו למעלה. הפרמטר /SaveAs
יגדיר את פורמט הקובץ על פי הסיומת שתספק.
להלן דוגמאות:
המרת קובץ capture.pml לקובץ capture.xml:
המר את קובץ ה־capture.pml ל־capture.csv:
זכור את אפשרויות ה־stack trace וה־stack symbol resolution בתיבת הדו־שיח שמעל? ניתן להפעיל גם את האפשרויות הללו באמצעות /SaveAs1
ו־/SaveAs2
.
ניתן לשמור רק עקבות מחסנית ומידע סמל בפורמט XML.
המר את קובץ ה־capture.pml ל־capture.xml כולל מידע על המחסנית:
המר את קובץ ה־capture.pml ל־capture.xml כולל מידע על המחסנית עם סמלים:
שים לב שהוספת עקבות מחסנית וסמלים תגדיל באופן משמעותי את זמן ההמרה וללא ספק תראה מחולק כהלך כמודגם למטה.

לכידת אירועי זמן אם ההפעלה
לעתים קרובות המידע שאתה זקוק לחקר לא נוצר כאשר Windows פועל. יתכן גם שתצטרך לחקור מה תהליך עושה בעת שהווינדוס רק מתחיל להפעיל.
נפוץ לצורך לאתר בעיות כמו ביצועי אתחול איטיים או אולי תוכנת זדון שמחליטה להפעיל מיד כשהווינדוס מתחיל להפעיל. Procmon מציע את אפשרות הקריאה לרישום זמן אתחול שניתן להפעיל כדי ללכוד את המידע הזה.
כדי להפעיל רישום אתחול, לחץ על אפשרויות —> הפעל רישום אתחול בתפריט כפי שמוצג למטה.

לאחר שתלחץ על הפעל רישום אתחול, תראה תיבת דו־שיח קופצת ששואלת על מידע אופציונלי. תיבת הדו־שיח הזו היא המקום בו תוכל ללכוד אירועי פרופיל תהליך.
הפעלת אירועים של פרופיל תהליכי תהליכות הוא מקרה שימוש מתקדם. כשאתה מפעיל פרופיל של תהליכי תהליכות, procmon מקלט גלישות תרשימיות של תהליכי תהליכות ושימוש במעבד שתוכל להשתמש בו כדי לזהות את מקור הבעיות בביצועי המעבד.

לאחר שתלחץ על אשר, procmon יפעיל רישום זמן טעינת מערכת שמורה על תהליך הסינון (יותר על כך מאוחר יותר) לחכות להפעלה מחדש של Windows. כשתפעיל מחדש את Windows, procmon יתחיל לרשום אירועי תהליכים כמו שהיית מפעיל אותו באופן ידני.
כל נתוני האירועים בזמן הטעינה מאוחסנים בקובץ יומן זמני בשם C:\Windows\procmon.pmb.
כש-Windows עולה מחדש, פתח מחדש את procmon. תראה תיבת דו-שיח כמו בתמונה למטה. כאן, לחץ על כן כדי להמיר את נתוני הטעינה לתבנית ה-PML על ידי בחירת קובץ היומן לשמירת הנתונים בו.

בזמן המרת הנתונים על ידי procmon, תראה סרגל התקדמות כפי שמוצג בתמונה למטה.

אל תשכח לפתוח מחדש את procmon לאחר הפעלה מחדש! Procmon יתחיל לרשום אירועים בהתחלת עליה של Windows ב-C:\Windows\procmon.pmb. הוא ימשיך לעשות זאת עד שתכבה אותו על ידי פתיחה מחדש של procmon.
הפעלת Procmon מרחוק
אף על פי ש-procmon רץ רק במחשב מרוחק במערכת Windows, אתה יכול להפעיל את procmon מרחוק באמצעות psexec או פקודת Invoke-Command
בפוֹוֶרְשסֶל.
קשור: PsExec: המדריך המוחלט, Invoke-Command: הדרך הטובה ביותר להפעיל קוד מרחוק
כדי להפעיל את procmon עם פקודת Invoke-Command
של PowerShell, עקוב אחר השלבים הבאים:
- הפעל את פעולת הריבוי של PowerShell על המחשב המרוחק אם עדיין לא מופעלת.
העתק את תיקיית ה-procmon למחשב המרוחק דרך מסוף הפקודות של PowerShell.
הפעל את procmon דרך PowerShell וודא שאתה דולף את אישור תנאי השימוש ומכריח את procmon לאחסן את האירועים בקובץ תמיכה במקום בזיכרון וירטואלי ולא לבקש משתמש את המסנן בהפעלה.
בנקודה זו, procmon התחיל לכוד. שחזר את הבעיה שאתה מנסה לתפוס.
עצור את procmon על המחשב המרוחק על ידי שימוש במתג /Terminate.
חכה שה-procmon ייסגר. כדי לחסוך זמן, אתה יכול לבדוק מדי פעם אם תהליך ה-procmon סיים ולהחזיר שליטה למסוף הפקודות של PowerShell כאשר הוא מושלם.
העתק את קובץ היומן המרוחק למחשב המקומי.
עכשיו יש לך את קובץ היומן שנכנס לתהליך במחשב המקומי שלך!
אם ברצונך סקריפט PowerShell מתאים כדי לנהל את תהליך התפיסה הזה, תוכל למצוא אותו למטה.
הגדרת תהליכי תפיסת Procmon הרצים לטווח זמן ארוך
A busy Windows system can produce a lot of events procmon captures that can overwhelm your PC. If you intend to run procmon for an extended amount of time, there a few measure you should take into consideration.
הורדת אירועים מסוננים
כאשר procmon רץ בתהליך תפיסה, הוא מכיל אירועים כל. אתה יכול ליצור ולהחיל סינוני אירועים אך סינונים אלו רק מסתירים את האירועים במסך; הם לא מונעים מ-procmon לתפוס אותם.
אם אתה מתכוון לבצע תפיסות Procmon ארוכות יותר, תמיד כדאי לבחור ב שחרור אירועים מסוננים מתוך תפריט סנן כפי שמוצג למטה.

פעם שתבחר בפריט שחרור אירועים מסוננים, Procmon מתחיל מיד לשחרר את כל האירועים המסוננים. Procmon לא מציג אותם על המסך ולא שומר אותם בזיכרון וירטואלי או בקובץ לוג. שחרור אירועים שאינם רצויים באופן מוחלט עוזר לשמור על משאבים.
נושאים מתקדמים
האם עדיין אתה רוצה מידע נוסף על Procmon ואיך להשתמש בו? בוא נתעקב אחרי כמה נושאים מתקדמים! אלה הם הנושאים שאולי לא תצטרך לדעת עליהם כל כך הרבה. אלה הם נושאים סביב יותר מתכונת האוכלוסייה של תכונות procmon, אך, מידע זה יכול להיות מועיל בעת פיתרון בעיות של Procmon.
מנהלי סננים
כדי לתפוס אירועים, Procmon רשום ומשתמש במנהל סינון שמשתמש ב מנהל סינון Windows (FltDrv). מנהל סינון זה בשם PROCMON24 מותקן כאשר אתה מתחיל תפיסה. לפעמים מנהל הסינון הזה יכול להתנגש עם יישומים אחרים.
לאחר שאתה מתחיל את Procmon, פתח קונסולת פווה או פקודה מוגברת של PowerShell והפעל את fltmc filters
. הכלי fltmc
מפרט, טוען ומוריד מנהלי סינון. כשאתה מריץ את זה, תראה את הסינון PROCMON24 טעון כפי שמוצג למטה.
שים לב שהגובה של PROCMON24 ברירת המחדל הוא 385200, עם מסננים אחרים שיש להם מספר נמוך יותר. גובה דרך המסנן מייצג את הרמה בה ניתן לפקח על אירועים במסנן. לדוגמה, אירועים שקורים ברמות wcifs, luafv או Wof, procmon לא יוכל לזהות. יותר על שינוי זה בהמשך.

מסנן PROCMON24 נשאר טעון גם כש-procmon אינו פועל.
לעיתים ייתכן שייתכן ש-procmon ייתקל בבעיות בטעינה של מסנן. לצורך איתור תקלות, פתח את procmon עם ההפעלה
/NoConnection
כדי למנוע מ-procmon להתחבר למסנן.
פתיחת מסנן PROCMON24
ישנם מקרים בהם מסנן PROCMON24 עשוי להתנגש עם מספר מכשירים חומרה שונים ותהליך הפתיחה שלו עשוי לא להיות פשוט כפי שנראה.
ניתן לפתוח מסננים באמצעות הפקודה fltmc unload
ואז הכנס את שם המסנן.
אם תנסה את הפקודה הנ"ל, בקרוב תגלה שזה לא עובד. אי אפשר לפתוח מסנן זה מכיוון שדבר נראה שהמפתח לא הוסיף את היכולת הזו.

אם יש צורך לפתוח את מסנן PROCMON24, אין ברירה, עליך לאתחל את המחשב לצורך כך.
עקבות מחסנית
לפעמים אירועים פשוטים כמו קריאה לרגיסטרי, פתיחת קובץ או קריאה לכתובת רשת אינם מספיקים במידה מסוימת. יש צורך לחפש עמוק יותר ולראות היסטוריית שיחות הפונקציות האמיתיות של API של Windows שתהליך קורא. יש להביט ב-עקבות הערמה של התהליך.
A stack trace is the history of various functions called during various function calls when a process is running.
עם רשימת אירועים שמופיעים ב-Procmon, יש ללחוץ פעמיים על כל אירוע וללחוץ על לשונית ה-ערימה כפי שמוצג למטה. לשונית ה-ערימה מייצגת שיחות לפונקציות שהתהליך הפרטי קרא בזמן ביצוע האירוע.

נושא עקבות הערימה יכול להיות מורכב לזמן רב. אם ברצונך לדעת עוד על הבנת ערימת שיחות של תהליך, אני ממליץ לקרוא את המאמר שיפור עקבות הערימה ב-Process Monitor
שינוי אלטיטיוד של Procmon (ללכידת אירועים ברמה נמוכה)
כפי שכבר נדון למעלה, Procmon משתמש במנהל סינון כדי ללכוד אירועים. אף שיש תחושה ש-Procmon לוכדת כל אירוע ב-Windows (יש הרבה אירועים שמופיעים בחלון ה-Procmon!), זה אינו נכון. Procmon רק לוכדת אירועים שהמנהל סינון שלו מכיר או את ה-אלטיטיוד שלו.
לדוגמה, אם יש צורך לרשום פעילות של אנטיוירוס, אחסון ברמה נמוכה ואירועים אחרים ברמה נמוכה של חומרה, יש לשנות את האלטיטיוד של נהג הסינון PROCMON24 להיות נמוך מאחרים.
לעשות זאת:
- וודא ש־procmon נסגר.
2. מצא את הגובה הנמוך ביותר של דרייברי המסננים שטעונים כעת עם הפקודה fltmc
.
3. שנה את ערך הרישום של הגובה תחת מפתח הרישום HKLM\System\CurrentControlSet\Services\PROCMON24\Instances\Process Monitor 24 Instance ל־100 פחות מערך הגובה הנמוך ביותר (כדי לראות את כל האירועים).
בהתאם לגרסה של procmon שמותקנת לך עשויים להשתנות מיקום מפתח הרישום. המדריך הזה משתמש ב־Procmon 2.4.
ניתן לפתוח סשן PowerShell מוגבה ולהריץ את קטע הקוד הבא כדי לשנות במהירות את הערך.
ככל שתקבע את הגובה למטה, כך יהיו לך יותר אירועים לניהול. אל תקבע את הגובה למטה ממה שאתה צריך.
4. השעה מחק וזכויות ה־הגדר ערך עבור כל אחד על המפתח Process Monitor 24 Instance. כאשר procmon ירוץ שוב, הוא ינסה להגדיר את ערך ה־Altitude
חזרה לברירת המחדל. ניתן לשנות את ההרשאות הללו דרך כלי העריכת הרישום regedit או פשוט להריץ את קטע הקוד ב־PowerShell הבא.
5. הפעל מחדש את מנהל המכשירים של Windows כדי לבטל את דרייבר המסנן PROCMON24.
6. הפעל את procmon.
7. פתח קונסולת PowerShell או פקודת ה-prompt והרץ את fltmc filters
. עכשיו אתה צריך לראות את דרייבר המסנן של procmon בגובה החדש.

אתה יכול כעת ללכוד כל מה שאתה צריך. אם תוריד את הרמה של Altitude
של procmon לנמוכה ביותר שהיא, תהיה מוכן לאירועי הגשם!
דוגמאות מהחיים האמיתיים
עכשיו אמור לך להבין באופן טוב מה יכול procmon לעשות ואיך הוא יכול לעזור לך לעקוב אחר אירועי Windows. נעבור עכשיו ליישום הידע הזה ונכסה כמה מקרים נפוצים שבהם עשוי להיות צורך בסוג זה של ידע.
מציאת מי מוחק קובץ
אם יש לך קובץ במחשב ה-Windows שלך שממשיך להימחק מסיבה לא ידועה ואתה רוצה לעקוב אחריו, procmon יכול לעזור (וזה די פשוט).
אולי ניסית לפתוח את procmon ולנסות להגדיר קובץ אירוע שנקרא Delete או Remove אבל לתסריט שלך, לא קיימת פעולה כזו. במקום זאת, כדי למצוא אירועי הסרת קבצים, עליך לסנן את האירועים עם Operation
של:
SetDispositionInformationFile
SetDispositionInformationEx
אם המערכת שלך מסירה הרבה קבצים, תרצה גם להגביל את אירועי המחיקה של הקבצים לשם הקובץ או הנתיב באמצעות סינון ה-Path
.
מעקב אחרי בעיות בקבצים נעולים
כולנו היינו שם; אתה מנסה להעביר או להסיר קובץ והוא נעול על ידי תהליך אחר. לפעמים, אם אתה מנסה להסיר יישום, לדוגמה, לעולם לא תדע אם השגיאה האקראית שאתה רואה קשורה לקובץ נעול למעשה!
כדי להבין מתי Windows מנסה להסיר או לשנות קובץ נעול, השתמש בסט הסינונים הבא.
תיקון בעיות ביישומים שדורשים הרשאות מנהל
האם אתה עובד עם יישום שבהוראותיו, אמור לעבוד אך לא עושה זאת? כולנו עברנו דרך זו. לפעמים תהליך מסוים שהיישום יוצר מחייב הרשאות מוגבלות אך לא יגיד לך איפה או כיצד. אתה יכול להפעיל את procmon כדי לעזור.
דרך אחת לאתר תהליכים שמתנגדים בגלל הרשאות מוגבלות היא לסנן לפי התוצאה של אירוע.
כל פעם שקורה אירוע שמתנגד בגלל חוסר הרשאות מוגבלות, בדרך כלל תראה תוצאה של ACCESS DENIED
. ידעת זאת, תוכל בקלות לבנות סינון פשוט שמראה את כל האירועים עם תוצאה של ACCESS DENIED
כפי שמוצג למטה.
מכאן, אתה יכול להוסיף עוד סינונים כמו נתיב הרשומה או התיקייה עם המאפיין Path גם.
מציאת התהליך שגושב כתובת IP
אולי יש לך התנהגות רשת עקומה עם Wireshark וצריך להבין איזה תהליך מתחיל את התקשורת הזו. הפעל את procon והוסף את סט הכללים לסינון הבא.
כללי הסינון האלה מגבילים את האירועים לתעבורת רשת שמופעלת מקומית בלבד עם יעד של כתובת IP יחידה.
פתרון בעיות באיחול איטי
לפעמים חלון מחשב יכול להיות איטי באיחול. האיטיות הזו יכולה להיות תוצאה של רבים מרכיבי חלון, יישומים מותקנים, וכן הלאה. באמצעות יכולת הלוג של נעילת האיחול של procmon, תוכל לעקוב אחר הבעיה ולתקן אותה.
- עמידות האתרים. ניתן למצוא איך לעשות זאת בקטע המתאים של לכידת אירועי זמן ההפעלה.
2. בתיבת הדו-שיח אפשר רישום ההפעלה, הקפיצו לוודא שהתיבה צור אירועי פרופילינג לעצור מסומנת. לחצו על כפתור הרדיו כל שנייה וזה יהיה מספיק.

3. לאחר האתחול, פתחו את procmon, לחצו ימינה על כל עמודה ובחרו בחר עמודות.
4. בתיבת בחירת עמודות למוניטור, סמנו משך. לאחר שתעשו זאת, תוכלו לראות כמה זמן כל אירוע לקחת להרץ.

5. כעת ניתן ליצור כלל סינון על משך למספר שניות שאתם חושבים שיהיה מספיק. כלל הסינון למטה יציג רק אירועים שלקחו מעל חמישה שניות להשלים.

6. לבסוף, דרך נוספת ושימושית לחקור את האירועים האיטיים האלו היא באמצעות עץ התהליכים של procmon. עץ התהליכים מראה יחסים בין תהליכי הורה וילד ומכיל את זמני ההתחלה והסיום של כל תהליך. כדי למצוא את זה, לחצו על כלים —> עץ תהליכים.

7. בפעם הראשונה ב- עץ התהליכים, תסתכלו על עמודה אורך החיים שמראה בפורמט גרפי את אורך הזמן של כל תהליך. ניתן גם להבחין במרווחי זמן על ידי השוואת עמודות זמן התחלה ו- זמן סיום בתצוגה זו.

פתרון בעיות שליישראל
כמה ארגונים משתמשים בשירות App-V של Microsoft כדי להווירטואליז ולהפיץ יישומים למשתמשים סופיים. אם אתה משתמש ב-App-V, יש לך מקום מועיל (ולא מתועד) שאתה צריך לדעת עליו בשם /externalcapture
.
השימוש ב-.\procmon.exe /ExternalCapture
יכול לתפוס יותר פעילות ברישות סביב היישומים של App-V. נסה להשתמש במזהה זה אם אתה לא מוצא את מה שאתה מחפש בעת פיתרון בעיות של יישומים App-V!
נראה כי המזהה /HookRegistry משמש למטרה זהה כמו /ExternalCapture, אך זה כבר לא עובד על מכונות ביטים 64.
סיום
אז זהו; מדריך מקיף על כל הנוגע ל- procmon! אף שלמדת המון על procmon, תמיד יש עוד אבני חן לגלות עם כלי זה.
אם יש לך הצעות לעדכונים או שינויים למדריך האולטימטיבי הזה, אני זמין ב-Twitter ושמח לשמוע!