بدافزار
بدافزار یا نرم‌افزار بدخواه برنامه‌های رایانه‌ای هستند؛ به علت آن‌که معمولاً کاربر را آزار می‌دهند یا خسارتی به‌وجود می‌آورند، به این نام مشهورند. هر نرم‌افزاری است که به‌طور عمدی طراحی شده‌است تا به یک کامپیوتر، سرور، مشتری یا شبکه رایانه ای آسیب برساند (در مقابل، نرم‌افزاری که به دلیل برخی نقصان باعث ایجاد صدمه غیرعمدی می‌شود، معمولاً به عنوان یک اشکال نرم‌افزاری یا باگ توصیف می‌شود). طیف گسترده‌ای از انواع نرم‌افزارهای مخرب وجود دارد، از جمله از انواع بدافزارها می‌توان به ویروس‌های رایانه ای، کرم‌ها، اسب‌های تروآ، باج افزار، جاسوس‌افزارها، آگهی‌افزارها، روت‌کیتها، هرزنامهها، نرم‌افزار سرکش و ترس‌افزار اشاره کرد.
چارچوب نرم‌افزاری
در برنامه‌نویسی کامپیوتر یک چهارچوب نرم‌افزاری یک انتزاع است که در آن نرم‌افزار فراهم کننده عملکردهای عمومی می‌تواند به صورت انتخابی توسط کدهای نوشته شده کاربران عوض شود، در تعریفی بهتر می‌توان گفت یک فراهم کننده طراحی‌های قابل استفاده برای نرم‌افزار است. در واقع یک چهارچوب یک راه استاندارد برای ساخت و گسترش برنامه‌ها است و یک محیط با قابلیت استفاده مجدد در محیط نرم‌افزاری است به صورتی که عملکردهای خاصی از بخش‌های یک پلتفرم بزرگ نرم‌افزاری را آماده می‌کند تا برنامه‌نویسی نرم‌افزارهای کاربردی و الگوریتم‌ها را آسان‌تر کند، چهارچوب‌های نرم‌افزاری ممکن است شامل برنامه‌های پشتیبانی، کامپایلرها، کتابخانه‌های کد، مجموعه ابزارها ورابط‌های برنامه‌نویسی برنامه (API) باشد که تمام اجزای مختلف را گرد هم آورده تا امکان توسعه یک پروژه یا سیستم فراهم کند.