12-02-2006, 20:33
|
|
מנהל פורום מערכות הפעלה - הרובע המייקרוסופטי.
|
|
חבר מתאריך: 07.10.04
הודעות: 13,777
|
|
הדיון עצמו מאוד מעניין ולכן אני בשמחה משאיר אותו פתוח.
אבל בפורום תכנות תקבל תשובות הרבה יותר מקיפות מאשר כאן.
ועכשיו אני אגיב
איך ווירוס עובד? (או לפחות, את חלק מהווירוסים בסביבת חלונות עובדים)
כשאתה מפעיל תוכנה על המחשב שלך (במצב אוטופי, אני לא מדבר ספציפית על חלונות עכשיו) - מערכת ההפעלה מקצה לתוכנה שטח זכרון מסויים בו היא תוכל לרוץ.
בצורה כזו - אם התוכנה מקצה משתנים או עושה מספר פעולות על המחשב היא תעשה את זה באיזור שלה מבלי להשפיע על שאר התוכנות, ולכן תקיעה שלה לא תשפיע על מערכת ההפעלה ולא תפיל אותה (כמו שקרה הרבה מאוד בחלונות 95&98 לדוגמה).
מכאן נתפתח ל-2 כיוונים, תשתדל להישאר איתי:
1. שיטת ה"לנצל באג בתוכנה קיימת"
לפעמים (בד"כ?), במיוחד כאשר מערכת ההפעלה עמוסה ומרבית הזכרון שלה תפוס, שטח הזכרון שמוקצה לתוכנה המורצת אינו מספיק ולכן התוכנה מבקשת ממערכת ההפעלה שטח זכרון נוסף.
מערכת ההפעלה (אחי החישובים/תכנונים/העברת זכרון RAM לווירטואלי ודומיהם) מקצה לתוכנה את השטח הנוסף אם היא עומדת בכמה קריטריונים, בין היתר - קריטריון ההרשאות.
אם יש לך הרשאת מנהל מערכת (ובחלונות בד"כ יש לך הרשאה כזו), מן הסתם יש לך גם הרשאה להרחיב את שטח הזכרון המוקצה לך (נקרא working set), כאשר השטח המורחב שאתה מקבל אינו מתקבל מהזכרון הכללי אלא משטח זכרון ייעודי (נקרא heap).
הבעיות מתחילות כאשר הheap מתמלא לחלוטין, מכיוון שאם מערכת ההפעלה לא נכתבה נכון, וניהול הזכרון אינו מושלם, קיימת אפשרות שלתוכנה יוקצו משאבים אשר בשימוש מערכת ההפעלה.
בגדול - מכאן ניתן להרוס (אני לא קורא לזה לשנות, כי אין על זה שליטה) את הבסיס של מערכת ההפעלה ולגרום לקריסתה.
אפשרות אחרת, במקום להסתמך על באג של מערכת ההפעלה הרבה יותר קל יהיה להסתמך על באגים של התוכנות שלך - ניקח את הexplorer לדוגמא.
באג מאוד ידוע, שדובר עליו גם כאן היה במנוע ההצגה של תמונות.
תמונה בהרכב מסויים (jpeg, שהיא דחוסה) יכלה לגרום ללולאה איןסופית של התוכנה אשר פשוט המשיכה לכתוב פיקסלים חסרי-ערך לזכרון עד שגרם לקריסתה.
התמונה, שבסופה נכלל סקריפט "תפסה" את הקריסה הזו ושינתה את ההתנהגות של התוכנה בעת קריסה, לדוגמה - יכלה להכניס ערכים לregistry, למחוק קבצים וכו', למה? כי אתה מריץ באמצעות חשבון ניהולי.
למה אני מזכיר את זה? כי בצורה כזו, כניסה שלך לאתר פשוט שיש בו תמונה בלבד יכלה לגרום להדבקה של המחשב שלך.
2. אין לי שם לזה...
אני פשוט אתן לך 2 דוגמאות (גם מעולם החלונות, כי הרי על-זה אנחנו מדברים, לא? )
תחשוב internet explorer, קיימת בו פונקציונליות הנקראת "activeX components".
מה זה?
בגדול - זה כמו extensions לדפדפן.
2 הבעיות הגדולות עם זה הם:
1. זהו אינו קוד פתוח, ולכן אתה לא יכול לדעת מה בדיוק זה עושה.
2. זה רץ עם ההרשאות של הדפדפן, כלומר - הרשאות ניהוליות.
דוגמה דומה מאוד היא windows media player?
קיים בו מנוע של רשיונות, כביכול רעיון יפה של הגנה על זכויות יוצרים, אבל בדיוק כמו הactiveX, גם מנוצל לרעה...
כל שאר הדוגמאות בחלק הזה יהיו דומות, אז חבל לי להמשיך
_____________________________________
|