הזרקת קוד נפוצה ב- Windows. יישומים "מזריקים" פיסות קוד משלהם לתהליך פועל אחר כדי לשנות את התנהגותו. ניתן להשתמש בטכניקה זו לטוב ולרע, אך כך או כך היא עלולה לגרום לבעיות.
הזרקת קוד נקראת בדרך כלל גם הזרקת DLL מכיוון שהקוד המוזרק הוא לרוב בצורה של קובץ DLL (ספריית קישורים דינמיים) . עם זאת, יישומים יכולים גם להזרים לתהליך סוגים אחרים של קוד שאינם קובצי DLL.
לשם מה משמש הזרקת קוד
הזרקת קוד משמשת לביצוע כל מיני טריקים ופונקציונליות ב- Windows. בעוד שתוכניות לגיטימיות משתמשות בו, הוא משמש גם תוכנות זדוניות. לדוגמה:
- תוכניות אנטי-וירוס מזריקות לעתים קרובות קוד לדפדפני האינטרנט. הם יכולים להשתמש בו כדי לפקח על תעבורת הרשת ולחסום תוכן אינטרנט מסוכן, למשל.
- תוכניות זדוניות עלולות להוסיף קוד לדפדפן האינטרנט שלך כדי לעקוב טוב יותר אחר הגלישה שלך, לגנוב מידע מוגן כמו סיסמאות ומספרי כרטיסי אשראי ולשנות את הגדרות הדפדפן שלך.
- חלון התריסים של סטארדוק, אשר מעצב את שולחן העבודה שלך, מזריק קוד אליו לשנות את אופן ציור החלונות .
- גדרות Stardock מזריק קוד ל לשנות את אופן העבודה של שולחן העבודה של Windows .
- AutoHotkey, המאפשר לך ליצור סקריפטים ולהקצות להם מקשי קיצור בכל רחבי המערכת , מזריק קוד בכדי להשיג זאת.
- מנהל התקן גרפי כמו של ה- NVIDIA מזריק קובצי DLL כדי לבצע מגוון משימות הקשורות לגרפיקה.
- תוכניות מסוימות מזריקות קבצי DLL כדי להוסיף אפשרויות תפריט נוספות ליישום.
- כלי לרמאות משחקי מחשב לעתים קרובות מזריקים קוד למשחקים כדי לשנות את התנהגותם ולקבל יתרון לא הוגן על פני שחקנים אחרים.
האם הזרקת קוד גרועה?
טכניקה זו משמשת ללא הרף מגוון רחב של יישומים ב- Windows. זו הדרך האמיתית היחידה לבצע מגוון משימות. בהשוואה לפלטפורמה ניידת מודרנית כמו iOS של אפל או אנדרואיד של גוגל, שולחן העבודה של Windows כל כך חזק כי אם מציעים סוג כזה של גמישות למפתחים.
כמובן שעם כל הכוח הזה מגיעה סכנה כלשהי. הזרקת קוד עלול לגרום לבעיות ולבאגים ביישומים. גוגל אומרת שמשתמשי Windows שהוחדר להם קוד לדפדפן Chrome הם בעלי סיכוי גבוה ב 15% לחוות קריסות של Chrome, ולכן גוגל עובדת על חסימת זה. מיקרוסופט מציינת כי הזרקת קוד עשויה לשמש יישומים זדוניים כדי להתעסק בהגדרות הדפדפן, וזו אחת הסיבות שהיא כבר חסומה ב- Edge.
אירוע של מיקרוסופט מספק הוראות לבדיקה האם קבצי DLL של צד שלישי נטענים ב- Microsoft Outlook, מכיוון שהם גורמים לקריסות רבות כל כך של Outlook.
כפי שעובד מיקרוסופט הכניס את זה ל בלוג מפתח משנת 2004:
הזרקת DLL לעולם אינה בטוחה. אתה מדבר על להשפריץ קוד לתהליך שמעולם לא תוכנן, נבנה או נבדק על ידי מחבר התהליך, ובחירה משותפת או ביצירת שרשור להפעלת קוד זה. אתה מסתכן ביצירת בעיות תזמון, סנכרון או משאבים שלא היו שם קודם או החמרת בעיות שהיו שם.
במילים אחרות, הזרקת קוד היא סוג של פריצה מלוכלכת. בעולם אידיאלי, תהיה דרך בטוחה יותר להשיג זאת שלא גרמה לחוסר יציבות פוטנציאלית. עם זאת, הזרקת קוד היא רק חלק רגיל מפלטפורמת היישומים של Windows כיום. זה קורה כל הזמן ברקע במחשב Windows שלך. אתה יכול לקרוא לזה רוע הכרחי.
כיצד לבדוק אם קיימים קבצי DLL שהוזרקו
אתה יכול לבדוק אם יש הזרקת קוד במערכת שלך בעזרת החזקים של מיקרוסופט סייר תהליכים יישום. זו בעצם גרסה מתקדמת של מנהל המשימות העמוס בתכונות נוספות.
הורד והפעל את סייר התהליך אם תרצה לעשות זאת. לחץ על תצוגה> תצוגת חלונית תחתונה> קבצי DLL או הקש Ctrl + D.
בחר תהליך בחלונית העליונה וחפש בחלונית התחתונה כדי לראות את קבצי ה- DLL שנטענו. העמודה "שם חברה" מספקת דרך שימושית לסנן רשימה זו.
לדוגמה, זה נורמלי לראות כאן מגוון של קבצי DLL שנוצרו על ידי "Microsoft Corporation", מכיוון שהם חלק מ- Windows. זה גם נורמלי לראות קבצי DLL שנוצרו על ידי אותה חברה כמו התהליך המדובר - "Google Inc." במקרה של Chrome בצילום המסך למטה.
אנו יכולים גם לזהות מספר קבצי DLL שנעשו על ידי "תוכנת AVAST" כאן. זה מצביע על כך שתוכנת התוכנה נגד תוכנות נגד תוכנה במערכת שלנו מזריקה קוד כמו "ספריית המסננים של חסימת סקריפטים של Avast" לתוך Chrome.
אין הרבה מה שאתה יכול לעשות אם אתה מוצא הזרקת קוד במערכת שלך - מלבד הסרת ההתקנה של קוד הזרקת התוכנית כדי למנוע את הבעיה. לדוגמה, אם Chrome קורס באופן קבוע, ייתכן שתרצה לבדוק אם ישנן תוכניות שמזריקות קוד ל- Chrome ולהסיר את ההתקנה כדי למנוע מהן להתעסק בתהליכים של Chrome.
כיצד עובדת הזרקת קוד?
הזרקת קוד אינה משנה את היישום הבסיסי בדיסק שלך. במקום זאת, הוא ממתין להפעלת יישום זה והוא מכניס קוד נוסף לתהליך ההפעלה כדי לשנות את אופן פעולתו.
Windows כולל מגוון של ממשקי תכנות יישומים (API) שניתן להשתמש בהם לצורך הזרקת קוד. תהליך יכול לצרף את עצמו לתהליך יעד, להקצות זיכרון, לכתוב זיכרון DLL או קוד אחר לאותו זיכרון, ואז להורות לתהליך היעד לבצע את הקוד. Windows אינו מונע מהתהליכים במחשב שלך להפריע זה לזה בצורה כזו.
למידע טכני נוסף, עיין בפוסט בבלוג המסביר כיצד מפתחים יכולים להזריק קבצי DLL והמבט הזה ב סוגים אחרים של הזרקת קוד ב- Windows .
במקרים מסוימים, מישהו עשוי לשנות את הקוד הבסיסי בדיסק - למשל, על ידי החלפת קובץ DLL שמגיע עם משחק מחשב עם קוד שונה, כדי לאפשר רמאות או פיראטיות. מבחינה טכנית זה לא "הזרקת קוד". הקוד לא מוזרק לתהליך פועל, אך התוכנית במקום שולל לטעון קובץ DLL אחר עם אותו שם.
אשראי תמונה: לוקאטמה /Shutterstock.com.