קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
הכלי לניקוי קוד הוא קבוצה של כלי ניתוח דינמיים שמאתרים שגיאות בתוכניות בזמן הריצה באמצעות מכשירי מדידה נוספים שהמְקַמֵל הוסיף. זה כולל זיהוי בעיות של בטיחות זיכרון. מערכת Android תומכת בחיטוי הנתונים הבאים וממליצה מאוד להשתמש בהם:
AddressSanitizer (HWASan) בסיוע חומרה
HWASan הוא הכלי העיקרי לזיהוי בעיות של בטיחות בזיכרון. היא דורשת ARM64 ויכולה לזהות:
זליגה או מחסור ב-buffer של סטאק ושל אשכול
שימוש בערימה (heap) אחרי 'free'
שימוש ב-Stack אחרי היקף
שימוש ב-stack אחרי החזרה
Double free או wild free
מנקה כתובות (ASan)
ASan הוא כלי שדומה ל-HWASan. הוא פועל בפלטפורמות נוספות, אבל אין תמיכה בו ב-Android.
KernelAddress sanitizer (KASan)
KASan הוא המקבילה בליבה לכלים של מרחב המשתמש שצוינו למעלה. הוא משתמש באותה הטמעה של המהדר. KASan ו-ASan/HWASan הם משלימים, כי הכלי אחד חל על הליבה והכלי השני על מרחב המשתמש.
מומלץ להפעיל את שניהם בו-זמנית כדי לצמצם את מספר הגדרות ה-build ולצמצם את מטריצת הבדיקות.
UndefinedBehavior sanitizer (UBSan)
UBSan מבצע כלי למדידת ביצועים בזמן הידור כדי לבדוק סוגים שונים של התנהגות לא מוגדרת (לא בטוחה לזיכרון). הבדיקה הזו כוללת בדיקה של זליגת נתונים (overflow) במספרים שלמים עם סימן ובלי סימן (IntSan), בדיקות גבולות למערכים בגודל סטטי (BoundsSan) והרבה סוגים אחרים של התנהגות לא מוגדרת. אפשר להפעיל את IntSan ו-BoundsSan גם בסביבת הייצור כפעולת מיטיגציה לאבטחה.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Sanitizers\n\n| **Note:** This page talks about sanitizers for Android platform development. For sanitizers for app development, refer to the [NDK documentation](https://developer.android.com/ndk/guides/memory-debug).\n\nThe sanitizers are a group of dynamic analysis tools that find mistakes in\nprograms at runtime through additional instrumentation that was inserted by the\ncompiler. This includes detecting\n[memory safety](/docs/security/test/memory-safety) issues. Android supports\nand strongly recommends usage of the following sanitizers:\n\nHardware-assisted AddressSanitizer (HWASan)\n-------------------------------------------\n\n[HWASan](/docs/security/test/hwasan) is the main sanitizer to provide detection\nfor memory safety problems. It requires ARM64 and can detect:\n\n- Stack and heap buffer overflow or underflow\n- Heap use after free\n- Stack use after scope\n- Stack use after return\n- Double free or wild free\n\nAddress sanitizer (ASan)\n------------------------\n\n[ASan](/docs/security/test/asan) is a tool similar to HWASan. It works on more\nplatforms, but is unsupported on Android.\n\nKernelAddress sanitizer (KASan)\n-------------------------------\n\n[KASan](/docs/security/test/kasan) is the kernel counterpart of the userspace\ntools above. It shares the same compiler implementation. KASan and ASan/HWASan\nare complementary as one tool applies to the kernel and another to userspace.\nWe recommend enabling both at the same time to reduce the number of build\nconfigurations and to reduce the testing matrix.\n\nUndefinedBehavior sanitizer (UBSan)\n-----------------------------------\n\n[UBSan](/docs/security/test/ubsan) performs compile-time instrumentation to\ncheck for various types of (non memory-safety) undefined behavior. This includes\nsigned and unsigned integer overflow checking (IntSan), bounds checks for\nstatically-sized arrays (BoundsSan), and lots of other types of undefined\nbehavior. IntSan and BoundsSan are also suitable for enabling in production as a\nsecurity mitigation."]]