
ntdll.dll ו-kernel32.dll שנמצאות ב-System32. הספריות האלה הן שער לקרנל: כל תוכנה שרוצה לשלוח משהו ברשת או לשמור בדיסק מבקשת זאת ממערכת ההפעלה דרכן. כשהתוכנה קוראת לפונקציה, ה-hook של האנטי-וירוס מופעל רגע לפני כן.הטקסט המלא של הדקות הראשונות בהרצאה «עקרונות הפעולה של אנטי-וירוסים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזו אני רוצה לספר לכם איך עובדים האנטיווירוסים מאחורי הקלעים. בבסיסם עושים רק שני פעולות. אחת זה לזהות חתימה של תוכנה רעה. שימו לב, הם מכירים תוכנות רעות מפורסמות בלבד ומחפשות את הסטרינגים שלהם, את המזהים שלהם, את המספרים שמזהים ייחודית את התוכנה הזדונית.
והם עושים את הסריקת חתימה על דיסק לפני ההפעלה. ואם הם לא מזהים את זה, הם נותנים לי להפעיל את הקוד שלי. זה אומר שאם אני אקום מחר בבוקר ואני אכתוב משהו שהם לא מכירים, אף אנטיווירוס לא יתפוס אותי.
זאת אומרת, ברגע ההפעלה הם סורקים רק את המזהים הייחודיים של התוכנה, ואם הם לא מכירים את המזהה שלהם, הם נותנים לי לרוץ, אבל הם יוסיפו עוד שכבת הגנה מאוד מאוד חכמה, וזאת נקראת שכבת ה-API הוקס.
הבעיון הוא כזה שברגע שהתוכנה הופעלה היא עובדת ואף אחד לא יודע להגיד מה היא עושה נכון מאיפה יודעים אם היא טובה או רעה אז מה שעשו הוסיפו באמצע הפעולה של התוכנה חוקים שזה ו באנגלית אני מתלבש על פונקציות של מערכת ההפעלה כל מיני dll שקיימים בתוך מערכת ההפעלה ברגע שקוראים
להם מתוך הקוד מופעלת הפונקציה של אנטיווירוס בואו תראו את זה אם אני אעשה פה סיסטם 32 בואו נחפש ntdll.dll אתם רואים זה dll שכמעט כל התוכנות בסוף בסוף משתמשות בו יש גם עוד dll נניח kernel 32 dll כל הdll האלו הם למעשה נותנים שירות לתוכנות הרגילות מטעם מערכת ההפעלה זאת אומרת מערכת ההפעלה של ווינדוס נותנת לתוכנות הרגילות שירות דרך הספריות
האלו מה זה הספריות האלו זה למעשה שער גישה לתוך הקרנל מערכת ההפעלה אחראית על גישה לכל העולם הפיזי ולכן אני כתוכנה ברגע שאני רוצה לשלוח משהו בכבל רשת או לשמור משהו בארדיסק אני מבקש ממערכת ההפעלה לעשות את זה בשבילי ורק היא יכולה לעשות את הפעולה תכלס איך עובד הנושא של API הוקינג אנטי וירוס
מתלבש על ה-DLL הזה בזיכרון וברגע שהתוכנה שלי קוראת לפונקציה מתוך ה-DLL הזה, שנייה לפני שה-DLL מופעל, מופעל האנטיווירוס.
זה נקרא API הוקינג. אז מה עושים האנטיווירוסים? ברגע הזה שהתוכנה מושעית שהיא מחכה לתשובה ממערכת ההפעלה, מופעל ה-hook של האנטיווירוס ואז מה הוא עושה?
האנטיווירוס אומר רגע, רגע, רגע, רגע, אני לפני שממשיכים הלאה רוצה לסרוק את כל הזיכרון של התוכנה ולחפש עוד פעם חתימות. אולי משהו השתנה בזיכרון של התוכנה ואני סורק הפעם את הרם, את הזיכרון, לחפש סטרינגים או מספרים אסורים בזיכרון.
מה זה אסורים? שאני יודע שאם יש מספר כזה וכזה ואחריו מספר כזה וכזה, אני מכיר את הרצף הזה של המספרים או רצף הזה של המילים.
מבחינתי הרצף הזה מזהה את הווירוס שהיה לפני שנה וחצי בסינגפור. זאת אומרת שחתימות הם מזהים ייחודיים של וירוסים או תוכנות זדוניות או סוסים טרויאניים שהוא כבר מכיר.
אבל הם הוסיפו עוד שכבה. אמרו בואו לא נחפש רק דברים שאנחנו מכירים כי נורא קל לעבוד עלינו. דרך API הוקס נעקוב אחרי ההתנהגות. זאת אומרת אם הוא קרא עכשיו ל-API כזה וכזה, ביקש ממערכת ההפעלה בקשה נניח לקחת זיכרון ופתאום הוא מבקש להעתיק משהו לזיכרון הזה