PracticU

מיפוי של זיכרון וירטואלי לזיכרון פיזי

בלי כתוביותעם כתוביות
PracticU › קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › מיפוי של זיכרון וירטואלי לזיכרון פיזי
מילון מושגים:
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
RAM - זיכרון הגישה האקראית של המחשב, מהיר ונדיף, שבו נשמרים נתונים ותוכניות בזמן ריצתם.
מעבד - יחידת העיבוד המרכזית של המחשב, שמבצעת את הפקודות של התוכניות ומנהלת את החישובים.
בייט - יחידת מידע המורכבת משמונה ביטים, ומסוגלת לייצג תו בודד או מספר בין 0 ל-255.
תהליך - מופע של תוכנה שרצה בזיכרון, עם הקוד, הנתונים והמשאבים שהוקצו לה על ידי מערכת ההפעלה.
ביט - יחידת המידע הקטנה ביותר במחשב, שערכה 0 או 1. שמונה ביטים מרכיבים בייט.
הצפנה - המרת מידע לצורה בלתי קריאה בעזרת מפתח, כך שרק מי שמחזיק במפתח המתאים יכול לפענח ולקרוא אותו.
BitLocker - כלי של Windows להצפנת כוננים שלמים, כדי להגן על הנתונים אם ההתקן יאבד או ייגנב.

מיפוי של זיכרון וירטואלי לזיכרון פיזי
כל תוכנה חושבת שכל הזיכרון במחשב שייך לה, אבל זו אשליה: מערכת ההפעלה מנהלת טבלה שממפה כתובות וירטואליות לזיכרון הפיזי או לדיסק. ההרצאה מסבירה את המנגנון הזה ואת החלקים שבטבלה.
איך זה עובד
1. למה זיכרון: זיכרון RAM מהיר בהרבה מדיסק, ולכן תוכנה נטענת קודם מהדיסק לזיכרון, וה-CPU מריץ אותה משם. המרצה מזכיר ש-DDR4 מגיע לכ-32 ג'יגה-בייט בשנייה, והדיסק איטי בהרבה. מה שלא נשמר לדיסק (save) הולך לאיבוד אם החשמל נופל.
2. כתובות וירטואליות: כל תהליך רואה מרחב כתובות שלם משלו, מ-0 ועד הכתובת האחרונה. מיקרוסופט מתארת זאת בתיעוד של Windows. התוכנה לא יודעת שרק חלק מהתאים נמצא בזיכרון הפיזי והשאר בדיסק.
3. מתי רואים את זה: מעבר בין תוכנות ב-Alt+Tab שלוקח זמן, כי צריך להביא את התאים שלה מהדיסק.
4. Page Table: לכל תהליך יש טבלה נפרדת שמראה ל-virtual page איפה הוא בזיכרון הפיזי (frame), ואם הוא נוכח (present).
5. Page Fault: אם העמוד לא נוכח, נוצרת פסיקה (קריאה דחופה ל-CPU). עוצרים, מביאים את העמוד מהדיסק ומחזירים לתוכנה. כשהזיכרון מתמלא, מערכת ההפעלה מעיפה עמוד לדיסק (swap out).
6. Dirty Bit: סיבית שמסמנת שעמוד בזיכרון שונה. לפני swap out של עמוד כזה מעדכנים את הדיסק, כדי שהשינוי לא יאבד.
7. Page File: ב-Windows זה קובץ pagefile.sys שמשמש כהמשך הזיכרון. במחשב של המרצה הוא כ-9.9 ג'יגה, ואפשר לשנות את מיקומו וגודלו ב-Advanced system settings, בלשונית Performance, תחת Virtual memory.
הערה על אבטחה
המרצה מזכיר שמפתחות הצפנה של BitLocker נמצאים בזיכרון, ולכן יש התקפה תאורטית על שבבי זיכרון שהוקפאו. אבטחת העמודים תוסבר בהרצאה נפרדת.
אחרי ההרצאה אפשר להסביר מה ההבדל בין זיכרון וירטואלי לפיזי, מה קורה ב-Page Fault ולמה Dirty Bit נחוץ.
השיעור הבא בקורס: חלוקה של זיכרון למחיצות - Memory Sections

פרקי ההרצאה: מיפוי של זיכרון וירטואלי לזיכרון פיזי

  1. 00:00

    מהירות זיכרון RAM מול דיסק

  2. 00:58

    מפתחות BitLocker בזיכרון אחרי כיבוי

  3. 02:11

    טעינת תוכנה מהדיסק לזיכרון

  4. 03:44

    כל תוכנה חושבת שכל הזיכרון שלה

  5. 04:21

    כתובות וירטואליות ועמודים בדיסק

  6. 06:08

    User Space מול Kernel Space

  7. 07:03

    Page Table ו-Page Fault

  8. 08:18

    קובץ pagefile.sys בהגדרות Windows

תמלול ההרצאה: מיפוי של זיכרון וירטואלי לזיכרון פיזי

הטקסט המלא של הדקות הראשונות בהרצאה «מיפוי של זיכרון וירטואלי לזיכרון פיזי» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם בהרצאה הזאת אנחנו נלמד על הזיכרון איך הוא עובד אנחנו נראה שהוא מגיע למהירות של 35 גיגה בייט בשנייה שזה ddr4 והמהירויות האלו של 30 גיגה בייט בשנייה לעומת ה-hard disk שהוא 5 הוא רק 5 הוא רק 2 גיגה בייט בשנייה וזה 32 הזיכרון הזה הוא מדהים ואנחנו נלמד איך אנחנו עובדים איתו ואנחנו נלמד איך מנהלים אותו את הכתובות שלו איך מתנהלות הכתובות של הזיכרון ומה קורה

  2. 00:37

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

  3. 01:01

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

  4. 01:26

    ואז לשלוף את הזיכרון והמידע יחזיק בו עוד איזה כמה שניות ובזמן הזה להכניס את זה למחשב אחר ולהוציא את כל מה שיהיה שם, לצלם את כל הזיכרון.

  5. 01:41

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

  6. 01:52

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

  7. 02:06

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

  8. 02:33

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

  9. 02:46

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

  10. 03:01

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

  11. 03:12

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

  12. 03:27

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

  13. 03:40

    תראו, התוכנה הזאת, ולמעשה כל תוכנה במחשב, חושבת שכל הזיכרון הוא שייך לה. היא מתחילה מ-000000, ויש לה כתובת 0804800, כל הכתובות בעולם שלה עד FFF, הכתובת האחרונה.

  14. 03:57

    למעשה, המחשב נותן להרגיש לתוכנה כאילו כל הזיכרון שהיא רוצה, כל כתובת שהיא רוצה, זמין לה, פנוי לה, אבל באמצעות זה לא ככה, באמצעיות יש לנו כמה עשרות תוכנות.

  15. 04:10

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

  16. 04:23

    אולי יש לי קצת זיכרון במחשב? הטריק הוא וירצ'ואל אדרס. התוכנה חושבת שזה זיכרון, אבל זה למעשה כתובות וירטואליות, והיא לא יודעת שזה כתובות וירטואליות.

  17. 04:33

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

  18. 04:55

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

  19. 05:18

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

  20. 05:39

    אנחנו עכשיו ב-64 ביט, תראו כמה כתובות יש לה. וגם התוכנה MyApp חושבת שיש לה המון המון המון המון כתובות. כאילו יש לי פה טרות שלמות של זיכרון ראם, למרות שיש לי כמה ג'יגות.

  21. 05:54

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

  22. 06:23

    space ויש kernel space kernel זה מערכת הפעלה all physical memory pages can be page out to the disk as needed כל עמודי הזיכרון יכולים לעשות page out לדיסק הקשיח מתי שהיא תרצה היא יכולה להעיף את העמודים של הזיכרון להרדיסק הנה בבקשה אתם רואים לוקחים זה מעיפים לדיסק הקשיח זה אומר העמוד הזה עף לדיסק הקשיח ושני

  23. 06:46

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

  24. 07:11

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

  25. 07:33

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

  26. 08:03

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

  27. 08:34

    אני נכנס כאן למאפיינים בואו נצמצם את זה זה מאפיינים שלי אני עושה פה advanced ובאדוונס במאפיינים באדוונס יש לי פה performance ובפרפורמנס יש לי פה advanced אני יודע שזה קצת מסובך זה פה בפרפורמנס היה קצת advanced והנה הגענו לאדוונס שיש פה virtual memory paging file is an area זה אזור קובץ paging זה אזור on the hard disk

  28. 09:13

    that Windows uses שווינדוס משתמשת בו if it were ram כאילו זה זיכרון רם אתם רואים אצלי במחשב יש 10 ג'יגה 9,000 מגה כמעט 10 ג'יגה 9 וחצי ג'יגה מתוך הhard disk זה קובץ בhard disk זה קובץ בדיסק שלי שמערכת ההפעלה מנצלת את המקום הזה כאילו זה זיכרון רם ואם צריך היא יכולה גם להגדיל אותו דרך אגב אני יכול גם לקבוע איפה לשים אותו אני יכול לעשות פה change זה ממש קובץ שאתם יכולים לראות

  29. 09:16

    אותו הנה הקובץ הזה הנה אתם יכולים לראות אותו כאן מצאתי אותו בשבילכם pagefile.sys אתם רואים pagefile.sys 9.9 ג'יגה הקובץ הזה זה למעשה ההמשך של הזיכרון רם שלי ובזכות זה כל תוכנה חושבת שיש לה את כל הזיכרון שבעולם עכשיו בואו נראה איך זה מתנהל איך הטבלה הזאת מתנהלת למה כי יש פה משהו מאוד מאוד מעניין אז אמרנו

  30. 10:08

    איזה בלוק בזיכרון הווירטואלי כאילו שהתוכנה

לקורס המלא: קורס סייבר למתחילים אונליין

ההרצאה הקודמת: העלאת הרשאות בלינוקס על ידי ניצול חולשות בקבצי סיסמאות

ההרצאה הבאה: חלוקה של זיכרון למחיצות - Memory Sections

הרצאות קשורות מקורסים אחרים

  • קונטיינר בענן - Cloud Run - מיפוי דיסק פיזי לתוך קונטיינר
  • מיפוי מחיצה לתיקיה
  • גילוי של הזרקת - דוט-נט זדוני לזיכרון
  • סוגי זיכרון בשרת SQL

קורסים נוספים במסלול

  • קורס SOC - מיישם הגנת סייבר
  • קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting