היום החלטתי לכתוב לכם קצת בנושא בשם boot process
לאלה שירימו גבה וישאלו , מה עניי שמיטה להר סיני, הבן אדם בפורום אבטחת מידע וכותב לנו על boot process
אז אני רוצה רק להגיד שבתור אחד שניסה ללמוד הרבה "יענו האקינג" ורק לפני חצי שנה לערךנפתחו לו באמת העניים, הבנתי שאין דבר כזה.
אין חיה כזאת לבוא עם ידע בסיסי וללמוד את תחום אבטחת המידע, צריך לאכול הרבה חצץ שישעמם הרבה ממכם ומעוד הרבה אנשים, עד שתגיעו
לבשר המעניין, וחלק מהחצץ הזה זה לחפור ולדעת הרבה על מערכת ההפעלה שלכם.
לכן החלטתי לחרג מידי פעם מנושא אבטחת המידע ולכתוב בנואים שונים שיתרמו לכם לא פחות ואולי הרבה יותר מאשר , מדריך כתוב על איך לבצע
איקס או וואי.
אז אני אכתב היום כמו שציינתי על הנושא boot proces
אז מה זה בכלל?
תהליך עליית המחשב מרגע הלחיצה על הכפתור הפעלה ועד לרגע שמערכת ההפעלה מחכה ממכם לסיסמה לצורך כניסה למחשב...
זה boot process
אנחנו לא אמורים להרגיש בו , או לראות אותו בפועל ולכן הרבה אנשים נוטים שלא להכיר בו בכלל !
וזה דבר מאוד גרוע, היות והמערכת מבצעת הרבה דברים חשובים בתהליך הטעינה שלה, ולמעשה כשמחשב קורס ומתקבל לדוגמא מסך כחול,
או פשוט ההרד דיסק מסרב לעלות, אנחנו מתחילים לנבור בפורמים דרך המחשב של השכן מה יכול היה לגרום את הבעיה.
היום נשתדל על רגל אחת להבין בכלליות את תהליך העליה (boot) של מערכת המחשב ומערכת ההפעלה, כך שנרוויח
אלף: ידע מעמיק יותר על המערכת שלנו (ניתן לנצל את הידע הזה למגון שימושים כמו שכתבנו בפוסט הקודם לגבי לצאת מהקופסה)
בית: הרווחנו את הידע של מה לעשות במקרה של תקלה בשעת עליית המחשב, דבר שיכול לטמטם כל צעיר שבטוח שהוא טכנאי מושלם.
תהליך העליה מסודר בסדר קבוע ולא משתנה כמעט לעולם בשום מצב, וזהו הסדר (אל דאגה נפרט הכל במשך)
PRE-BOOT PROCES
BOOT PROCESS
KERNEL LOAD SEQUENCE
KERNEL INITIATION SEQUENCE
LOGON SEQUENCE
וכעת ניכנס טפה יותר לעומק התהליכים ונבין מה קורה.
התהליך הראשוני ביותר שמתבצע בשניה שאנו לוחצים על כפתור ההפעלה זהו התהליך
power on self test - שלמעשההוא תהליך ראשוני ביותר שבודק דברים בסיסיי כגון תקינות חומרה כללית , מתחים, כמות זיכרון
וכו
לאחר מכן מתחיל התהליך
mbr (זהו גם שמה של טבלה הראשית של המחשב בתחום המחיצות, תפקידה לומר למחשב היכן נמצא סקטור 0 (הראשוני ביותר) בכונן הקשיח,
וזאת בכדי שהמחשב ידע מאיפה הוא מתחיל לרוץ, בנוסף הטבלה מידעת את המחשב היכן נמצאת כל מחיצה, כמהמחיצות בכלל יש, וכו
בתהליך הראשוני כמו שאמרנו המחשב מנווט את עצמו לנקודה הראשונית של הכונן קשיח (zero sector)
עד כאן מאוד בכלליות התהליכים שמשתייכים לתהליך העליהשל המחשב שקודם לטעינת ליבת מערכת וקבציה (pre boot and boot)
כעת נכנסת לתמונה ליבת המערכת או יותר נכון הקבצים שאחראים על טעינתה , תהליך זה בתוכנית עליית המחשב נקרא
active partition או system partition
הקוץ הראשי שנטען בתהליך זה הוא כמובן ntldr - nt loader
המהלך הראשוני שלו הוא קודם כל להעביר את המערכת ממצב שימוש זיכרון שנקרא 1mb למצב שימוש בזיכרון בטווחים של 32ביט
מצב זה נקרא בעגה המקצועית protected mode 32bit
לאחר מכן נטען הקובץ ntdetection.com
תפקידו לבדוק דריברים, חומרה, והוא הרשע שאחראי על המסך הכחול והמעצבן במקרה של בעיית חומרה או דרייברים.
לדוגמא: אם ניקח את ההרד דיסק שלנו למחשב של חבר אחר ונכניס אותו כמשני, יעלה לנו מסך כחול, למה?
כי ntdetecton יחפש את החומרה (בקרי דיסק וכאלה) ואת הדרייברים שהוא מכיר ולא ימצא אום זהים למה שיש לו בזיכרון שלו.
(על מנת לבצע את העברת ההרד דיסק למחשב אחר לצורך גיבוי נניח ומבלי לקבל את תופעת הלוואי של המסך הכחול ש צורך לבצע תהליך בשם
sysprep שתפידו לאפס את ההגדרות של הבקרים , את הדרייברים היחודיים למחשב המועתק, ואת ה sid של המחשב, אבל על זה אולי נכתוב
מאמר במקום אחר)
לאחר מכן יטען קובץ אופציונלי (למה פציונלי? כי הוא נטען רק במערכות שמריצות duel boot ממערכת fat32 ו ntfs כלאמר מחשב
שמותקנות עליו לדוגמא xp and win98
קובץ נקרא bootsect.dos ומאפשר תיווך נכון של טעינת קבצים ין שני מערכות ההפעלה המאוד שונות עקב מערכות הקבצים השונות שלהם.
לאחר מכן יטען גם קובץ אופציונלי בשם ntbootdt.sys אך ורק במערכות מחשב שמכילות חומרה מסוג scsi ויש צורך לבצע תאימויות.
וכעת יטען אחד הקבצים החשובים לנו ביותר, boot.ini המוכר לכולנו
תפקידו לומר למערכת היכן בדיוק בנתיב הכונן ממוקמת תיקית השורש של מערכת ההפעלה, לאמר למערכת אם יש מערכת הפעלה אחת או שתיים, כמה
זמן לחכות עד שהמשתמש ילחץ על בחירה של מערכת הפעלה לעלות ממנה, אמממ מה יהיה כתוב בתפריט הבחירה, ועוד המון אפשרויות,
למשל אפשרי לכתוב לו שבמהלך העליה למחשב בתפריט הבחירה של מערכות ההפעלה , יהיה אפשר גם להריץ ישר recovery console
ואז ישר לבצע תיקונים (כמובן צריך ודם לבצע התקנה של הקונסול מדיסק xp )
לאחר מכן מתבצעת חזרה לקובץ ה ntldr שהפעם יטען שני קובצי מערכת בשם hal.dll ו ntoskrnl.exe שיהיה אחראי על טעינת הליבה
של מערכת ההפעלה כגון logon.exe
קובץ ה hal.dll אם שאלתם את עצמכם אחראי על בדיקות חומרה כגון כמה מעבדים יש למחשב, באיזה פלטפורמה הם רצים, וכו.
לאחר מכן תטען מערכת הרישום של חלונות (registry) וכל הדרייברים של המערכת.
לאחר מכן יכנס לפעולה ntoskernel ויטען את winlogon.exe ואת lsass.exe
winlogon יהיה האחראי על טעינת הממשק הגרפי של מסך ברוכים הבאים והבחירה של המשתמש בכניסה למערכת ההפעלה.
lsass יהיה אחראי על קופסת האבטחה שמטפלת בסיסמה שתכניסו לכל משתמש שם.
ומשם הדרך עוד ארוכה עד לידיעה מלאה של מה נטען מתי ואיך ואיפה
אבל אני חושב שבתור התחלה זה המון לדעת ולשנן
אחרי שתשננו את מערך העליה הזה, תדעו מתי לעצור את הבוט בהקשר של כל שגיאה, נדע מה לתקן ועוד הרבה.
אני כבר לא מדבר על וירוסים מתוחכמים שמשתמשים בידע הזה על מנת להיטען בשלבים היותר ראשוניים של המערכת, או לחילופין להוציא לפעול
במקרה של מחיקה של הוירוס מערכת recover לוירוס וכדומה,
ידע זה כח! לדעת את כל מה שקורה מאחורי הקלעים זה מלהיב!
אז לא להתעצל ולשנן וללמוד
מקווה ששפכתי טיפה אור על תהליך עלית המחשב ועל מה שקורה ב 15 השניות הממוצעות של עלית מחשב ביתי.
שלכם
An7i