در 19 اگوست سال جاری، سیسکو طی بیانیهای چندین آسیب پذیری مختلف از جمله یک آسیب پذیر با شناسه CVE-2020-3446 را منتشر کرد. این آسیب پذیری محصولات سری 5400-W از CiscoENCS و سری 5000-W ازCSP را تحت تاثیر قرار میدهد. این محصولات در صورتیکه نسخه 6.4.5، 6.4.3d و نسخههای قبلتر از 6.4.3d نرم افزار Virtual Wide Area Application Services with Cisco Enterprise NFV Infrastructure-bundled بر روی آن ها اجرا شود، آسیبپذیر هستند.
دلیل اصلی این آسیب پذیری وجود حساب کاربری با پسورد ثابت در نرم افزارهای تحت تاثیر این آسیب پذیری است. هکرها با سوءاستفاده از حساب کاربری دارای پسورد ثابت، بدون احراز هویت و از راه دور به خط فرمان NFVIS دسترسی پیدا کرده و میتوانند دستورات خود را با اختیارات مدیریتی اجرا نمایند.
سیسکو این آسیب پذیری را در نسخه های 6.4.3e، 6.4.5a و نسخه های به روزتر از vWAAS with NFVIS-bundled رفع کرده است. بنابراین کاربران محصولات تحت تاثیر آسیب پذیری کافیست نرم افزارهای خود را به روزرسانی کنند.
توجه: محصولات سری 5400-W از CiscoENCS و سری 5000-W ازCSP از به روزرسانی مستقیم نسخه های قدیمی به نسخه vWAAS 6.4.3e و6.4.5a vWAASپشتیبانی نمی کنند. بنابراین ضروری است که نسخه های به روز از اول نصب شوند. برای دانلود نسخه های به روزتر کافی است پس از ورود به بخش دانلودها در سایت شرکت سیسکو مراحل زیر را طی کنید.
• بر روی Browse all کلیک کنید.
• وارد بخش Routers > Wan Optimization > Wide Area Application Services (WAAS) Software > Wide Area Application Services (WAAS) Softwar شوید.
• نسخه مورد نظر را از پنل سمت چپ Wide Area Application Services (WAAS) انتخاب کنید.
• نرم افزار WAAS Unified Package را برای ENCS-W و CSP-W دانلود کنید.
منبع:
https://media.cert.europa.eu/static/SecurityAdvisories/2020/CERT-EU-SA2020-041.pdf
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-waas-encsw-cspw-cred-hZzL29A7
داشتن امنیت یک امر کاملا حیاتی میباشد و ما علاوه بر اینکه بتوانیم پروتکل ها و سرویس ها را ارائه و پیاده سازی کنیم، باید از داشتن امنیت و استقامت آنها اطمینان حاصل سازیم. زیرا هر لحظه ممکن است آسیبی از این جانب به ما وارد شود. در این مقاله قصد داریم به تکنیک ها و روش های که موجب امن سازی پروتکل مسیریابیBGP میشوند پرداخته و انواع حملات و روش های جلوگیری آن را بررسی کنیم.
به مسیریابی بسته ها درون شبکهRouting گفته میشود. به این صورت که برای مثال وقتی یک Request از سمت شما به سمت وب سرور وب سایت کالی بویز ارسال میشود به آن مسیریابی و مسیرهای که Request طی میکند Routing گفته می شود.
در بحث Routing ما دونوع مختلف داریم. یک Static Routing و دو Dynamic Routing که در Static Routing ما به صورت دستی تعیین میکنیم برای مثال بسته ایی که قرار است به سمت مقصد خاصی که میخواهد برود از کدام مسیر برود ولی در Dynamic Routing اینکار برعهده پروتکل های میباشد که به صورت اتوماتیک اینکار را برای ما به انجام میرساند.
پروتکل های Dynamic Routing به دو دسته IGP و EGP تقسیم بندی می شود. به پروتکل های که مسیریابی را در یک AS (محیطی متشکل از چند روتر محلی) انجام میدهند IGP یا به اختصار Interior Getaway Protocol گفته میشود.
علاوه بر این EGP ها که مخفف Exterior Getaway Protocol میباشند و برعکس IGP هستند و وظیفه مسیریابی بسته ها بین AS ها را فراهم میسازند. برای درک بهتر و ساده تر، از این پروتکل ها برای مسیریابی درون اینترنت استفاده میشود. از جمله این پروتکل های EGP، پروتکل BGP وجود دارد.
پروتکل BGP مخفف Border Getaway Protocol میباشد یک Dynamic Routing از نوع EGP که به دو دسته eBGP و iBGP تقسیم بندی میشود:
از این رو پروتکل BGP با استفاده های بسیار ارزشمندی که دارد بدی هایی هم دارد که از جمله آنها به وجود آوردن آسیب پذیری های (MITM) در شبکه WAN را دارد. از جمله آسیب پذیری های مهم و خطرناک BGP میتوان به BGP Hijacking و یا Prefix Injection توجه کرد (هر دو یک حمله هستند با نام های متفاوت).
این حمله زمانی رخ میدهد که افراد بتوانند به طور غیرمجاز به ترافیک های درحال عبور در دنیای WAN با استفاده از پروتکل BGP دست یابند. به این صورت که با تزریق کردن مقدار های IP و Prefix های نامعتبر به سمت این پروتکل آن را وادار به تغییر جهت ترافیک خود دهند.
روتر ها دارای جدولی هستند تحت عنوان جدول Routing Table که اطلاعات مسیریابی هر روتر در آن نگهداری میشود. از این رو زمانی که یک Dynamic Routing در شبکه اجرا سازی میشود روتر ها اطلاعات جدول خود را تحت عنوان پیغام های Update به یک دیگر ارسال میکنند. افراد مهاجم میتوانند با ایجاد پیغام های جعلی Update این جدول را مورد حمله قرار دهند و مسیرهای موجود در آن را تغییر دهند.
روش های بسیاری برای جلوگیری از حمله BGP Hijacking وجود دارد که از جمله این روش ها عبارتند از:
برای مثال در Filtering زیر ما فقط AS های محلی خود را به سمت ISP هدایت میکنیم:
ip as-path access-list 1 permit ^$
router bgp 64502
neighbor 100.100.100.1 filter-list 1 out
برای مثال دوم فرض کنید سمت مشتری AS 64502 تعریف شده است و در سمت ISP این AS برابر با 64500 میباشد. ما میتوانیم محدودیت را در سمت ISP بر این قرار بگذاریم که از سمت آدرس 100.100.100.1 فقط AS 64502 اجازه عبور داشته باشد:
ip as-path access-list 1 permit ^64502$
router bgp 64500
neighbor 100.100.100.2 filter-list 1 in
همچنین یک راهکار جالب برای جلوگیری از Flooding به سمت BGP، میتوانیم محدودیت بر روی حداکثر Prefix را قرار دهیم. به این منظور که چه میزان Prefix از سمت مقابل ارسال شود و درصورت ارسال بیشاز حد تعیین شده جلسه ایجاد شده به حالت idle برود.
router bgp 64502
neighbor 100.100.100.1 maximum-prefix number
اگرچه ابزار Artemis نمیتواند جلوی حمله را بگیرد ولی توانایی اعلام و شناسایی حملات را برای ما فراهم میسازد و مطلع شدن از حمله یک امر بسیار مهم و کاربری میباشد.
این ابزار به عنوان یک سیستم تشخیص نفوذ تحت شبکه یا همان N-IDS شناخته میشود که به سرعت توانایی شناسایی حملات BGP Hijacking را دارد. همچنین این ابزار قدرتمند به صورت Open-Source ارائه شده است.
پروتکل BGPSec مخفف Border Getaway Protocol Security میباشد. این پروتکل که همواره شباهتی نسبت به پروتکل S-BGP و یا همان Secure BGP نیز دارد که در سال 1990 ارایه شد. در واقع این پروتکل یک افزونه قدرتمند امنیتی به منظور جلوگیری از حملات مختلف بر روی بستر پروتکل BGP میباشد.
این پروتکل وظیفه این را دارد که پیغام های Update درحال رد و بدل بین دو همسایه و یا روتر را بررسی کند و از صحیح بودن آنها مطمئن شود. این پروتکل از یکسری امضای دیجیتالی به منظور صحیح بودن بسته های ارسالی از سمت همسایه مقابل استفاده میکند.
قبل از پروتکل BGPSec مکانیزم امنیتی تحت عنوان RPKI وجود داشت که از تزریق AS ها و Prefix های نامعتبر از سمت افراد مختلف را محدود میکرد و بسته هارا رد میکرد، ولی RPKI هم به یک سری نکات امنیتی توجه نکرده بود و به سرنوشت خوده پروتکل BGP دچار شد و مهاجمان توانستند از آسیب پذیری RPKI با این عنوان که به AS های مجاز اعتماد میکرد و بسته ها را قبول میکرد استفاده کردند.
در اخر نیز این مکانیزم هم با شکست مواجه شد، اینجا بود که پروتکل BGPSec پا به میدان گذاشت و وظیفه این را دارد که از مسیر AS اطمینان کافی را حاصل سازد.
از این رو این پروتکل علاوه بر امضاهای دیجیتالی از روش ها و مکانیزم های زیادی از جمله رمزنگاری بسته ها، استفاده از Attribute های جدید و امنیتی و کنار گذاشتن Attribute های قدیمی پروتکل BGP که از جمله آنها استفاده از ASsec_Path به عنوان Attribute قدیمی پروتکل BGP یعنی AS_Path می باشد.
به گزارش خبرگزاری مهر به نقل از پرس اسوسیشن، محققان دانشگاه واشنگتن روشی نوین ابداع کرده اند که یک مصالح ساختمانی فراوان و ارزان را هوشمند می کند تا مانند باتری انرژی را در خود ذخیره کند. هرچند این تحقیق هنوز در مراحل اولیه است، اما محققان ادعا می کنند دیوارهایی که با چنین آجرهایی ساخته می شوند، قادر به ذخیره مقدار قابل توجهی انرژی هستند و می توان در یک ساعت آنها را هزاران بار شارژ کرد.
«جولیو دی آکری» استادیار شیمی این دانشگاه و محقق ارشد پژوهش می گوید: تصور می کنم هنگامیکه بتوان آجرها را به سلول های خورشیدی متصل کرد، این طرح عملیاتی خواهد شد.
در حقیقت این پژوهشگران روشی برای تبدیل آجرهای قرمز به نوعی دستگاه ذخیره انرژی یافته اند که ابرخازن نام دارد. این روش شامل یک پوشش رسانا به نام «پدوت»(Pedot) است که روی آجرهای نمونه کشیده شد. این پوشش به ساختار متخلخل آجر نفوذ می کند و آن را به یک الکترودهای ذخیره انرژی تبدیل می کند.اکسید آهن که در حقیقت رنگدانه قرمز در آجر است نیز به این فرایند کمک می کند.
محققان در آزمایشی نشان دادند ابرخازن مذکور می تواند یک چراغ ال ای دی را روشن کند.
دی آکری در این باره می افزاید: در این پژوهش ما یک روکش پلیمری رسانا توسعه دادیم که از نانوفیبرهایی تشکیل شده است. این نانوفیبرها پس از نفوذ به شبکه داخلی آجر، در ساختار متخلخل آن باقی می مانند و مانند یک اسفنج یونی عمل می کنند که الکتریسیته را ذخیره و هدایت می کند. چنین آجری را می توان هزاران بار در ساعت شارژ کرد. با اتصال حسگرهای میکروالکترونیک به دو آجر می توان آنها را روشن کرد.
یافته های این تحقیق در ژورنا«نیچر کامونیکیشن» منتشر شده است.
گاهی اوقات به تماشای آفلاین و بدون اینترنت ویدیوهای یوتیوب نیاز داریم. ما در این پست چند دستورالعمل ساده را برای دانلود ویدیو از یوتیوب تهیه کرده ایم که با دنبال کردن آن ها می توانید ویدیوهای مورد نظر خود را در کامپیوتر و گوشی آیفون یا اندرویدی خود دانلود کنید.
خود YouTube برخی از ابزارهای رایگان را برای این کار فراهم می کند و همچنین برخی نرم افزارها و سایت های جانبی نیز برای این کار وجود دارد که می توانید از آنها نیز استفاده کنید.
شما می توانید ویدیوهای یوتیوب را هم به صورت مستقیم و هم به صورت غیر مستقیم (برنامه های سوم شخص) دانلود کنید. در روش مستقیم شما بدون هیچ نرم افزار دیگری و فقط با استفاده از خود نرم افزار یوتیوب قادر خواهید بود ویدیوی مورد علاقه خود را دانلود کنید. در این روش به دلیل رعایت حقوق کپی رایت، ویدیوهای دانلود شده در گالری ذخیره نخواهند شد و همچنین شما نمی توانید آن ها را به دستگاه انتقال دهید.
در روش غیرمستقیم ما قانون کپی رایت را با نرم افزارهای شخص ثالث دور می زنیم و می توانیم هم ویدیوها را در حافظه گوشی یا لپ تاپ ذخیره کنیم هم آن ها را با دستگاه های دیگر به اشتراک بگذاریم.
در این روش از یک برنامه دسکتاپ معروف به 4k Video Downloader استفاده می کنیم. نسخه رایگان این نرم افزار امکان دانلود فیلم های انفرادی با کیفیت های قابل تنظیم تا 4K و پشتیبانی از فیلم های سه بعدی و 360 درجه را دارد. می توانید زیرنویس ها را دانلود کنید و حتی قادر است از طریق لینک های تعبیه شده این کار را انجام دهد.
برای دانلود ویدیو از یوتیوب با این روش، فقط کافی است به صفحه ویدیوی یوتیوبی که می خواهید آن را دانلود کنید بروید و URL آن را از نوار آدرس بالای پنجره مرورگر خود کپی کنید.
برنامه 4K Video Downloader را که تازه نصب کرده اید باز کنید. دیگر نیازی به چسباندن دستی در URL ندارید – کافی است روی دکمه Paste Link در گوشه سمت چپ بالای نوار فهرست کلیک کنید و نرم افزار آدرس اینترنتی را از کلیپ بورد شما می گیرد.
پس از اتمام بررسی فیلم ، به شما گزینه های مختلفی برای کیفیت فیلم و فرمت داده می شود. همچنین می توانید مکان دانلود ویدیو را تنظیم کنید. توجه داشته باشید که ویدیویی که از نرم افزار گرفته می شود بر اساس آدرس IP شما باشد ، نه به URL ای که وارد میکنید.
پس از انتخاب گزینه های مورد نظر خود ، فقط بر روی دکمه دانلود کلیک کنید.
در مرورگر وب Android خود به سایتtubemater.net بروید. Tubemate یک برنامه رایگان است که به شما امکان می دهد فیلم های YouTube را در گوشی اندرویدی خود دانلود کنید. این برنامه در فروشگاه گوگل در دسترس نیست ، اما می توانید فایل APK را بارگیری کرده و به صورت دستی نصب کنید.
پس از دانلود و نصب این برنامه، آن را اجرا کنید. ویدیویی که قصد دانلود آن را دارید باز کنید. روی آیکون فلش قرمز ضربه بزنید که در گوشه پایین سمت راست صفحه است. لیستی از گزینه های دانلود برای این فیلم نمایش داده می شود. رزولوشن و فرمت دلخواه برای دانلود را انتخاب و روی آن بزنید.
پس از دانلود این ویدئو ، می توانید آن را در گالری خود مشاهده کنید.یز بدی را نصب نمی کنند ، اما در دانلود چیزهای اضافی فریب نخورید.
برای دانلود ویدیوهای یوتیوب در آیفون به صورت غیر مستقیم و به کمک نرم افزارهای سوم شخص، ما از نرم افزار Documents by Readdle استفاده می کنیم.
در ابتدا این برنامه را از اپ استور دانلود و نصب کنید.
سپس یوتیوب را اجرا و ویدیویی که قصد دانلود آن را دارید باز کنید. روی آیکون Share کلیک کنید. برخی از گزینه های اشتراک گذاری ظاهر می شوند. روی Copy link کلیک کنید تا لینک کپی شود.
حالا وارد نرم افزار Documents شوید و روی نماد قطب نما ضربه بزنید که در گوشه پایین سمت راست صفحه قرار دارد. این کار یک مرورگر وب را باز می کند.
سپس به سایت Keepvid.pro بروید.
پس از باز شدن سایت، بر روی Youtube Video Converter بزنید و حالا لینک کپی شده را در کادر مشخص شده Paste کنید و بر روی دکمه آبی رنگ Download Now کلیک کنید.
فرمت دانلود را انتخاب کنید. برای به دست آوردن بالاترین کیفیت ، روی Best Download کنار ویدیو کلیک کنید. برای انتخاب فایل با کیفیت پایین تر، روی دانلود سایر گزینه ها کلیک کنید. سپس فایل دانلود خواهد شد و می توانید آن را تماشا کنید.
در اینجا هم به کمک یک سایت سوم شخص به دانلود ویدیوهای یوتیوب می پردازیم. تنها تفاوتی که این روش با قسمت بالا دارد، تفاوت در سرعت انجام کار است. در این روش سریع تر به دانلود ویدیو های یوتیوب می پردازیم.
برای شروع، به ویدیویی که می خواهید دانلود کنید بروید. پس از انتخاب ویدیو آن را پخش کنید. به نوار آدرس ویدیو بروید. بر روی آدرس ویدیو که در نوار بالای پنجره مرورگر قرار دارد کلیک کنید ، سپس کلمه vd قبل از قسمت youtube را در آدرس اضافه کنید و سپس اینتر را از روی کیبورد فشار دهید ، منتظر تغییر صفحه وب باشید ، این کار شما را مستقیماً به وب سایت VDY منتقل می کند.
سپس ویدیو را به راحتی با کیفیت دلخواه دانلود کنید.
با توجه به طیف گسترده کاربران ایرانی تلگرام، خوشبختانه امکان دانلود ویدیوهای یوتیوب به کمک این پیام رسان نیز وجود دارد.
برای این کار ما از ربات utubebot@ در تلگرام استفاده می کنیم. وارد ربات شوید و آن را start بزنید.
سپس یوتیوب را اجرا و ویدیویی که قصد دانلود آن را دارید باز کنید. روی آیکون Share کلیک کنید. برخی از گزینه های اشتراک گذاری ظاهر می شوند. روی Copy link کلیک کنید تا لینک کپی شود.
حالا وارد ربات یوتیوب در تلگرام شوید و لینک کپی شده را Paste و ارسال کنید. سپس کیفیت های مختلف برای دانلود به شما ارسال می شود و با زدن بر روی کیفیت دلخواه ان را دانلود کنید.
در صورت داشتن اشتراک YouTube Premium ، می توانید از دانلود ویدیو برای تماشای آفلاین و بدون نرم افزار شخص ثالث لذت ببرید. به خاطر داشته باشید که می توانید فیلم های دانلود شده را فقط با استفاده از خود برنامه یوتیوب مشاهده کنید و نمی توانید فایل ویدیویی را به دستگاه دیگری منتقل کنید یا آن را با یک پخش کننده دیگر مشاهده کنید.
اولین کاری که شما باید انجام دهید این است که برنامه YouTube را در iPhone خود اجرا کنید. اکنون ویدیویی که می خواهید دانلود کنید را پخش کنید. وقتی ویدیو درحال پخش است بر روی دکمه Download بزنید.
پس از دانلود ، برای تماشای آن روی Library بزنید.
اکنون روی Downloads ضربه بزنید، فیلم دانلود شده برای مشاهده آفلاین و بدون اینترنت در دسترس شما خواهد بود.
دانلود ویدیوهای یوتیوب در اندروید نیز تقریبا همانند آیفون است اما شما در اندروید کنترل بیشتری دارید. یوتیوب در اندروید به شما امکان می دهد کیفیت فیلم را انتخاب کنید. پس از پخش ویدئویی که می خواهید دانلود کنید ، روی دکمه Download ضربه بزنید. از شما خواسته می شود کیفیت را انتخاب کنید. روی موردی که می خواهید ضربه بزنید و فیلم دانلود می شود.
پس از دانلود ، برای تماشای آن روی Library بزنید. اکنون روی Downloads ضربه بزنید، فیلم دانلود شده برای مشاهده آفلاین و بدون اینترنت در دسترس شما خواهد بود.
می توانید با ضربه زدن روی سه نقطه کنار ویدیو ، ویدیو را از لیست دانلودها حذف کنید. بر روی آن ضربه بزنید و گزینه حذف فیلم ظاهر می شود.
مزایای دانلود ویدیوهای یوتیوب به صورت مستقیم: دانلود سریع – عدم نیاز به نرم افزارهای جانبی
معایب دانلود ویدیوهای یوتیوب به صورت مستقیم: وجود قانون کپی رایت – الزام بر داشتن اشتراک YouTube Premium
نرم افزارها سایت ها و روش های دیگری نیز برای دانلود ویدیوهای یوتیوب وجود داردند اما ما سعی کردیم آسان ترین آن ها را به شما معرفی کنیم. شما هم اگر روش دیگری می شناسید برای ما کامنت کنید.
شرکت مایکروسافت در تاریخ July 14 سال 2020 وصله ای برای #آسیبپذیری بحرانی در سرویس DNS ویندوزسرور منتشر کرد. این آسیب پذیری، امکان اجرای کد از راه دور (RCE) و همچنین اخذ دسترسی کامل از سرور ویندوز دارای سرویس DNS آلوده را برای مهاجم فراهم می کند. احتمال استفاده از این حفره امنیتی توسط بات نت ها و باج افزار هایی که از متد worm برای انتشار استفاده میکنند بسیار بالا می باشد. این آسیب پذیری با شدت ۱۰ از ۱۰ (CVSS Score) و با شناسه CVE-2020-1350 معرفی شده است و تمامی نسخه های ویندوز از ویندوز 2008 تا 2019 در برابر آن آسیب پذیرند.
مهاجم با استفاده از ایجاد و ارسال درخواست های آلوده به سمت DNS Server میتواند حمله RCEرا به اجرا گذاشته و دسترسی کاملی به سرور اخذ کند. درصورتی که سرور نقش domain controller را در active directory داشته باشد، مهاجم می تواند دسترسی کاملی به کل فضای domain اخذ کرده و تمامی دارایی های موجود در این فضا را در اختیار گیرد.
*اجرای وصله و ایمن سازی را به هیچ وجه به تاخیر نیاندازید و این فرآیند را محدود به سرور هایی که صرفا در فضای اینترنت در دسترس هستند نکنید.
رفع آسیب پذیری:
۱- نصب آخرین آپدیت های ارائه شده روی ویندوز سرور
۲- انجام تغییرات زیر در رجیستری
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDNSParameters
DWORD = TcpReceivePacketSize
Value = 0xFF00
Restart نمودن سرویس DNS
لینک های مفید:
کامنت چیست؟
کامنت (comment) خطی در سورس کد ما است که به عنوان بخشی از کد های برنامه اجرا نمی شود و هدف آن بیشتر برای درک آسان تر کد منبع برای برنامه نویس های دیگر است و به طور کلی توسط کامپایلرها و مفسران نادیده گرفته می شوند. نحو نوشتاری کامنت ها در زبان های مختلف برنامه نویسی بسیار متفاوت است.و متغیر (variable) همانطور که از نامش پیداست یک مقداری است که می تواند تغییر کند ولی لزوما ثابت نیست.
دلایل استفاده از کامنت
به دو صورت می توانیم از کامت استفاده کنیم.
با استفاده از // یا # می توان این کار را انجام داد. به مثال زیر توجه کنید:
<!DOCTYPE html> <html> <body> <?php // single comment # single comment ?> </body> </html>
با استفاده از /* در ابتدا و */ در انتها می توانیم بیش از یک خط را کامنت کنیم. به مثال زیر توجه کنید:
<!DOCTYPE html> <html> <body> <?php // single line comment /* line 1 line 2 line 3 */ ?> </body> </html>
در مثال بالا ما line1 تا line3 را کامنت کردیم.
<?php $txt = "Hello world!"; $x = 5; $y = 10.5; ?>
در مثال بالا متغیر $txt مقدار hello world را در خود ذخیره می کند. در متغییر $x مقدار عددی 5 وجود دارد و همینطور در متغییر $y نیز مقدار عددی 10.5 وجود دارد. توجه داشته باشید که مانند سایر زبان های برنامه نویسی برای قرار دادن متن یا رشته درون متغیر، باید آن را درون جفت کوتیشن (” “) قرار دهیم.
در زبان php دستور echo اغلب برای نمایش یا چاپ خروجی در صفحه استفاده می شود. به مثال زیر توجه کنید:
<?php $txt = "kaliboys.com"; echo "I love $txt!"; ?>
در مثال بالا ما یک متغیر $txt تعریف کردیم و رشته kaliboys.com را در آن قرار دادیم، و سپس با دستور echo متن i love kaliboys.com را چاپ کردیم. خط سوم از کد بالا را می توان به این شکل زیر نیز نوشت که در هر دو صورت نتیجه یکی است.
echo "I love " . $txt . "!";
نکته : درواقع با قرار دادن . (نقطه) می توان در php متغیر را به رشته متصل کرد و به صورت یکپارچه چاپ کرد.حال شاید بخواهید بدانید که آیا می توان دو متغیر را نیز به هم پیوند داد؟ جواب بله است. به مثال زیر توجه کنید
<?php $one = 12; $two = 84; echo $one + $two; ?>
در این مثال ما دو متغیر به نام $one و $two تعریف کردیم و با + به هم متصل کردیم. در نتیجه جواب ما حاصل جمع 12+84=96 می باشد. به همین سادگی!
در php متغیر ها را میتوان بدون محدودیتی در هرجایی از کد خودمان تعریف و استفاده کنیم. اما گستره متغیر ها به این معنا است که بخشی از اسکریپت یا سورس کد ما است که می تواند استفاده شود و یا به آن رجوع کرد. پس php سه گستره متغیر مجزا دارد.
global (سراسری) : متغیر سراسری به متغیری گفته میشود که در تمامی ماژولها و توابع برنامهنویسی مقدار خود را نگه دارد .(به کد زیر دقت کنید)
<!DOCTYPE html> <html> <body> <?php $name = "ali"; // global scope function kaliboys() { // استفاده از متغیر name در داخل تابع باعث به وجود آمدن خطا می شود echo "<p>my name is: $name</p>"; } kaliboys(); echo "<p>my name is: $name</p>"; ?> </body> </html>
متغیر global را میتوان به شکل زیر تعریف نمود.(به کد زیرتوجه کنید)
<?php $a = 12; $b = 15; function Mykali() { global $a, $b; $b = $a + $b; } Mykali(); echo $b; // خروچی = 27 ?>
خب در کد بالا،ما یک تابع تعریف کردیم به اسم mykali و دومتغیر به نام های a و b که متغیر سراسری هستند تعریف و مقداری را در آن قرار دادیم،پس از آن با صدا زدن تابع و دستور echo نتیجه را چاپ نمودیم.که جواب ما در اینجا 27 شد.
روش دیگر در تعریف متغییر سراسری
میتوان به شکل دیگر نیز این متغیر های سراسری را تغریف کرد که در واقع php تمام متغیر های سراسری را در ارایه ای به این شکل نگه داری می کند.
$GLOBALS['index']
index نام متغیر را در خود نگه می دارد.پس مثال قبل را میتوان به شکل زیر بازنویسی کرد و در هردوصورت نتیجه مشابه است.
<?php $a = 12; $b = 15; function Mykali() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Mykali(); echo $b; // خروچی = 27 ?>
local (محلی) : متغیرهایی که داخل یک تابع تعریف می شوند همگی محلی تلقی میشوند مگر آنکه مشخصاً ذکر شود که باید متغیر سراسری به کار گرفته شود که در اینصورت باید با پسوند global این کار را انجام داد.
<!DOCTYPE html> <html> <body> <?php function $name = "ali"; // متغیر سراسری echo "<p>my name is: $name</p>"; } kaliboys(); // استفاده از متغیر name در خارج از تابع باعث به وجود آمدن خطا می شود echo "<p>my name is: $name</p>"; ?> </body> </html>
تذکر: ما می توانیم در هر تابع مجزا، چندین متغیر محلی ایجاد کنیم. بنابراین در توابع دیگر شناسایی نمی شوند و تنها در همان تابع مورد نظر استفاده می شود.
static(ایستا) : متغیری است که برای یک بار تمام طول برنامه تعریف می شود که باعث می شود تمامی نمونه های دیگر به آن دسترسی داشته باشند.
در حالت معمول وقتی یک تابع اجرا می شود،همه ی متغیر های ان تابع حذف می شوند!شاید درمواقعی ما نیاز داشته باشیم که متغیر local ما ثابت بماند تا برای استفاده های بعدی دردسترس ما باشد.برای این منظور از متغیر استاتیک (static) استفاده می کنیم.(به مثال زیر توجه کنید)
<!DOCTYPE html> <html> <body> <?php function Mykali() { static $a = 10; echo $a; $a++; } Mykali(); echo "<br>"; Mykali(); echo "<br>"; Mykali(); ?> </body> </html>
خب در کد بالا ما یک تابع به اسم Mykali تعریف کردیم و در داخل آن یک متغیر استاتیک a تعریف کردیم و مقدار 10 را در آن قرار دادیم.خب حال اگر هرچند بار این تابع را فراخوانی کنیم مقدار ان چاپ شده و یکی به آن اضافه می شود.در نتیجه چون ما 3 بار این تابع را صدا زدیم پس جواب ما به صورت 10,11,12 خواهد بود.
همه ما از عملگرهای ریاضی یا منطقی بطور معمول استفاده میکنیم، اما گاهی بسیار راحت تر و خیلی اوقات بسیار بهینه تر است اگر از عملگرهای بیتی استفاده کنیم.
دانستن تکنیک های بیتی در مهندسی معکوس بسیار کارا است. زیرا خیلی از optimization های انجام شده توسط کامپایلر از عملیات های بیتی بهره میبرند.
عملگرهای بیتی همانطور که از نام آنها پیداست در سطح بیت عملیات انجام داده و کنترل انجام عملیات در این سطح را در اختیار ما می گذراند.
در این پست در مورد 6 عملگر بیتی معمول خواهیم گفت:
1 2 3 4 5 6 | AND : &amp;amp; OR : | XOR : ^ NOT (COMPLEMENT) : ~ SHIFT (RIGHT) : &amp;lt;&amp;lt; SHIFT (LEFT) : &amp;gt;&amp;gt; |
در این بین عملگرهای AND و OR و XOR جبری دوطرفه هستند. یعنی دو ورودی گرفته و یک خروجی میدهند و فرقی اگر سمت چپ و راست ورودی را با هم جابجا کنیم جواب یکسان خواهد بود. درست مانند عملگر ریاضی SUM یا + یا همان جمع.
1 2 | &amp;gt;&amp;gt; 2 = 00001100 00110000 &amp;gt;&amp;gt; 3 = |
عملگر NOT و یا همان COMPLEMENT تنها یک ورودی میگیرد و یک خروجی میدهد.
عملگرهای SHIFT دو ورودی گرفته اما جبری نیستند. یعنی مقادیر سمت چپ و راست با هم جابجا شوند جواب تغییر خواهد کرد.
نکته: این عملگرها بیتی هستند. یعنی اصولا بر روی بیت ها کار میکنند. اندازه مقادیر در چهار عملگر اول گفته شده تأثیری ندارد از آنجایی که در اصل عملکرد آنها برروی یک عدد مانند لیست کردن بیت های دو مقادیر و انجام آن عملیات ها بر روی هر بیت در این دو لیست است. در ادامه مثال ها را خواهید دید.
درست مانند معنی لغوی AND, یعنی ‘و’, بدین معنی است که هر دو طرف باید ۱ باشند.
1 2 3 4 | 1 &amp;amp; 1 = 1 1 &amp;amp; 0 = 0 0 &amp;amp; 1 = 0 0 &amp;amp; 0 =0 |
از این عملگر در MASK کردن بسیار استفاده میشود. بعنوان مثال وقتی شما تنها ۳ بیت آخر را میخواهید, میتوانید از این تکنیک استفاده کنید:
1 | 1010011 &amp;amp; 111 = 11 |
مقدار مورد نظر را با عددی که تنها بیت های مورد نظر آن تنظیم است AND کنید و خروجی بیت های عدد خروجی طوری خواهد بود که اگر بیت های عدد اول در بیت های ۱ عدد دوم ۱ بودند در خروجی باقی خواهند ماند. از این نکته در تکنیک های Bit Flags و پیدا کردن باقیمانده نیز استفاده میشود.
نکته: AND هر عدد با صفر, صفر خواهد بود.
خروجی این عملگر در صورتی ۱ خواهد بود که هر دو یا یکی از طرفین ۱ باشند.
1 2 3 4 | 1 | 1 = 1 1 | 0 = 1 0 | 1 = 1 0 | 0 = 0 |
با استفاده از این عملگر میتوانید بیت های یک عدد را ۱ کرده و دیگر بیت ها را به حالت اولیه خود باقی بگذارید, تنظیم سه بیت آخر:
1 | 100100 | 000111 = 100111 |
نکته: OR هر عدد با صفر همان عدد خواهد بود.
از جالب ترین عملگرهای بیتی است و تکنیک های سطح بالای بسیار حیاتی ای با استفاده از آن انجام شده است.
خروجی این عملگر در صورتی یک خواهد بود که تنها یکی از طرفین ۱ باشد.
1 2 3 4 | 1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^ 0 = 0 |
عملگر XOR مخفف eXclusive OR میباشد و در خروجی تفاوت بیتی بین دو مقدار را نشان میدهد.
با داشتن این تفاوت و یکی از طرفین میتوان طرف دیگر را بدست آورد.
1 2 3 4 5 6 7 8 | 12 ^ 16 = 28 12 ^ 14 = 2 12 ^ 28 = 16 12 ^ 2 = 14 16 ^ 28 = 12 14 ^ 2 = 12 |
از این تکنیک برای رمزنگاری symmetric به همین نام XOR استفاده شده است.
همینطور از این تکنیک برای کم کردن Redundancy اطلاعات backup در برخی نسخه هایتکنولوژی RAID نیز استفاده شده است.
برای محاسبه Hamming Distance نیز استفاده میشود که کاربرد فراوانی در تست صحت اطلاعات, اندازه گیری نویز و نهایتا یادگیری ماشینی دارد.
نکته: xor دو عدد یکسان با یکدیگر صفر است. زیرا هیچ تفاوتی ندارند.
این عملگر هر بیت دریافت شده را معکوس میکند:
1 2 3 4 5 | ~ 1 = 0 ~ 0 = 1 ~ 110011 = 001100 ~ 100000 = 011111 |
این عملگر دو عملوند میگیرد:
عملگر shift به سمت راست به تعداد عملوند ۲ به سمت چپ عملوند ۱ بیت های ۰ اضافه کرده و به همان تعداد نیز بیت های سمت راست را بر میدارد.
اگر لیست بیت ها را یک بسته لوله ای از توپ ها که دو طرف آن باز است در نظر بگیریم و بیت های ۱ توپ رنگ سبز و بیت های ۰ توپ رنگ سفید باشند. shift به سمت راست به n تعداد مانند این است که از سمت چپ n تعداد توپ سفید هل دهیم. اینکار باعث میشود n تعداد توپ های سمت راست که داخل بسته لوله ای بوده اند از سمت راست به بیرون هل داده شده و خارج شوند.
1 2 3 | 00110000 &gt;&gt; 2 = 00001100 00110000 &gt;&gt; 3 = 00000110 00110000 &gt;&gt; 4 = 00000011 |
این عملگر دقیقا مانند عملگر SHIFT RIGHT است اما برخلاف shift به راست, از سمت چپ بیت ها را بر میدارد و به سمت راست بیت های صفر اضافه می کند.
1 2 3 | 00001100 &gt;&gt; 2 = 00110000 00001100 &gt;&gt; 3 = 01100000 00001100 &gt;&gt; 4 = 11000000 |
به هر مقداری میتوان بعنوان یک عدد و یا لیستی از اعداد نگاه کرد و به هر عددی نیز میتوان بعنوان لیستی از بیت ها نگاه کرد. این دید این اجازه را به ما میدهد تا کنترل روی بیت ها را راحتتر درک کنیم.
فرض کنید میخواهید از یک لیستی از مقادیر منطقی یا همان boolean استفاده کنید که هر خانه در این لیست مفهوم ثابتی دارد. بعنوان مثال ساختار دسترسی به فایل در لینوکس را در نظر بگیرید:
1 2 3 4 5 6 7 8 | permission = {READ, WRITE, EXEC} R = 0 W = 1 X = 2 has_read_access = permission[R] has_write_access = permission[W] has_exec_access = permission[X] |
حال به یک عدد بعنوان لیست از بیت ها نگاه کنید. آیا میتوان همین سیستم را با اعداد و عملگر های بیتی پیاده سازی کرد؟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | permission = RWX R = 1 &lt;&lt; 2 = 100 W = 1 &lt;&lt; 1 = 010 X = 1 &lt;&lt; 0 = 001 // get corresponding bit has_read_access = permission &amp; R has_write_access = permission &amp; W has_exec_permission = permission &amp; X /// set corresponding bit // set read access permission = permission | R // set write access permission = permission | W // set exec access permission = permission | X /// unset corresponding bit // unset read access permission = permission &amp; ~(R) // unset write access permission = permission &amp; ~(W) // unset exec access permission = permission &amp; ~(X) |
نکته: این تکنیک تنها بر روی حروف A-Z و a-z کاربرد دارد. استفاده از این تکنیک برای دیگر کاراکترها ممکن است پیامد منفی داشته باشد.
نکته: در این تکنیک فرقی نمیکند کاراکتر حرف بزرگ باشد یا کوچک. خروجی یکسان خواهد بود.
1 2 3 4 5 6 7 8 9 10 | 'A' = 1(0)00001 'Z' = 1(0)11010 'a' = 1(1)00001 'z' = 1(1)11010 '_' = 1(0)11111 'A' &amp; '_' = 'A' 'Z' &amp; '_' = 'Z' 'a' &amp; '_' = 'A' 'z' &amp; '_' = 'Z' |
نکته: این تکنیک تنها بر روی حروف A-Z و a-z کاربرد دارد. استفاده از این تکنیک برای دیگر کاراکترها ممکن است پیامد منفی داشته باشد.
نکته: در این تکنیک فرقی نمیکند کاراکتر حرف بزرگ باشد یا کوچک. خروجی یکسان خواهد بود.
1 2 3 4 5 6 7 8 9 10 | 'A' = 1(0)00001 'Z' = 1(0)11010 'a' = 1(1)00001 'z' = 1(1)11010 ' ' = 0(1)00000 'A' | ' ' = 'a' 'Z' | ' ' = 'z' 'a' | ' ' = 'a' 'z' | ' ' = 'z' |
هر بیت در یک عدد نگهدارنده ی ۲ بتوان اندیس آن بیت در آن عدد است. این نکته به وفور در تبدیل مبنا استفاده میشود.
در این قسمت از این نکته برای تسریع محاسبه استفاده می کنیم:
1 2 3 4 5 6 7 8 9 | pow(2, n) = 1 &lt;&lt; n pow(2, 0) = 1 &lt;&lt; 0 = 1 pow(2, 1) = 1 &lt;&lt; 1 = 2 pow(2, 2) = 1 &lt;&lt; 2 = 4 pow(2, 3) = 1 &lt;&lt; 3 = 8 pow(2, 4) = 1 &lt;&lt; 4 = 16 pow(2, 5) = 1 &lt;&lt; 5 = 32 ... |
در اعداد مبنای ۱۰ داریم که ضرب هر عدد در عددی مانند ۱۰ که یک رقم ۱ در اول و مابقی ارقام ۰ دارد برابر است با همان عدد اما اضافه شدن صفر های عدد ضریب به انتهای عدد. مانند:
1 2 | 123 * 10 = 1230 123 * 1000 = 123000 |
اعداد مبنای ۲ از این قاعده مستثنا نیستند و در مبنای دو نیز میتوانید همینکار را انجام دهید. اما نکته قابل توجه اینجا است که:
1 2 | 1 << 3 = 8 1 << 4 = 16 |
بنابراین:
1 2 | 3 << 2 = 3 * pow(2, 2) = 3 * 4 = 12 3 << 3 = 3 * pow(2, 3) = 3 * 8 = 24 |
درست مانند ضرب اما بجای استفاده از shift به سمت چپ از shift به سمت راست استفاده می کنیم تا از بیت های سمت راست کاسته شود:
1 2 | 12 >> 2 = 12 / pow(2, 2) = 12 / 4 = 3 24 >> 3 = 24 / pow(2, 3) = 24 / 8 = 3 |
در تکنیک تقسیم x بر ۲ به توان n گفته شد که “از shift به سمت راست استفاده میکنیم تا از بیت های سمت راست کاسته شود”. بیت های کاسته همان باقی مانده ها هستند. برای نگه داری این باقیمانده از این تکنیک استفاده می کنیم:
1 2 3 4 5 6 | 1 >> 3 = 1000 = 8 (1 >> 3) - 1 = 0111 = 7 x & ((1 >> n) - 1) = remainder 22 & ((1 >> 3) - 1) = 22 & 7 = 10110 & 00111 = 00110 = 6 |
چاپگر جوهر افشان چیست و چگونه کار میکند؟
قبل از اینکه با نحوه کارکرد چاپگر جوهرافشان آشنا بشید، ابتدا باید درباره دو بخش اساسی این دستگاه بیشتر بدونید. اولین بخش به ملزومات اصلی پرینتر، یعنی کارتریج جوهری مربوط میشه.
به طور کلی کارتریج مادهایه که، پرینتر برای چاپ اسناد به اون احتیاج داره. این ماده براساس پرینتری که انتخاب میکنید، به دو دسته کارتریج جوهری و کارتریج تونر تقسیم میشه.
بعد از آشنایی با کارتریج، نوبت به یکی از بخشهای اصلی چاپگر جوهر افشان، که مرکز این دستگاه نیز نامیده میشه، یعنی هد. هد که دارای تعداد زیادی سوزن نازل هست وظیفه پاشیدن جوهر روی کاغذ رو برعهده داره.
بعد از قرار دادن کارتریج جوهری توی پرینتر جوهر افشان، اطلاعات از کامپیوتر یا سیستمهای دیگر به پرینتر میرسه. درایور پرینتر این اطلاعات رو دریافت کرده و اون ها رو برای چاپگر ترجمه می کنه. در قدم بعدی درایور میزان آمادگی پرینتر، برای اجرای عملیات چاپ رو بررسی کرده و سپس اطلاعات دریافتی رو در اختیار اون قرار میده. پرینتر جوهر افشان بعد از دریافت این اطلاعات، اون ها رو توی یک بافر ذخیره میکنه.
اگه چاپگر جوهر افشان برای مدت زیادی بدون استفاده مانده باشه، چرخه پاکسازی هد به صورت خودکار انجام میگیره تا اون رو برای انجام عملیاتهای جدید آماده بکنه.
بعد غلتکهای درون پرینتر حرکت کرده و از سینی کاغذ دستگاه، یک کاغذ رو توی پرینتر میکشند. پس از قرار دادن کاغذ در مکان مشخص شده، دستگاه هد در طول صفحه حرکت کرده و قطرات میکروسکوپی جوهر رو روی کاغذ میپاشه.
قیمت پرینتر جوهر افشان؟
پرینترهای جوهرافشان براساس قابلیتهایی که دارن، به قیمتهای متفاوتی به بازار عرضه میشن. قیمت چاپگر جوهر افشان برندهایی مثل برادر، اچ پی، اپسون و کانن حدودا از مبلغ یک میلیون و دویست شروع شده و به بیست میلیون میرسه، قیمت دستگاهها با توجه به نرخ ارز و هزینههای گمرک ثابت نیست و تغییر میکند.
معایب پرینترهای جوهر افشان؟
پرینترهای جوهرافشان برای چاپ تصاویر و اشکال گرافیکی بسیار مناسب هستند. پرینتر این فرایند رو، از طریق ترکیب کارتریج مشکی با سه کارتریج رنگی انجام میده، ترکیب کارتریجها با یکدیگر، کاری بسیار زمانبر هستش. همین مسئله موجب میشه، پرینترهای جوهر افشان سرعت چاپ کمتری، به نسبت پرینترهای لیزری داشته باشند.
یکی از نکاتی که در هنگام انتخاب پرینتر باید به اون توجه کرد، جدا از قیمت خرید و ...هزینههایی هست که افراد باید بعد از خرید پرینتر برای ملزومات و مواد مصرفی اون پرداخت بکنند.
قیمت چاپگر جوهر افشان ارزان تر از قیمت چاپگر لیزری هستش ولی قیمت کارتریجش حدود یک سوم قیمت خود پرینتر جوهر افشان هست. ظرفیت اون ها بسیار کمتر از کارتریج تونر هست.
کارتریجهای جوهری قابلیت شارژ دارند. اما چون آسیب سخت افزاری به پرینتر میزنند و از عمر آن کم میکنند، شارژ آن توصیه نمیشود. کارتریج جوهری باید بعد از باز کردن پلمپ به سرعت استفاده بشه.
چاپگر لیزری چیست و چگونه کار میکند؟
کارتریجهای لیزری به صورت پودری فشرده شده از جنس پلی استر هستند. پلاستیکی که در پلی استر وجود داره، الکتریسیته رو توی خودش نگه داشته و باعث جذب بار منفی میشه. درام یکی از بخشهای کارتریج تونر هست و نقشی اساسی رو در کارکرد پرینتر لیزری ایفا میکنه. این قطعه به شکل میله استوانهای آبی رنگ هستش و وظیفه اون انتقال متون و تصویر روی کاغذ هست.
کارتریج درام رو میچرخونه و اون رو تمیز کرده و داغ میکنه، همزمان با این پروسه لیزر نیز روی این قطعه میتابد و قسمتهایی از این قطعه دارای بار الکتریکی میشه، ذرات تونر که خودش دارای بار هستن، با چرخش درام جذب نقاط مخالف شده و بعد متون رو روی کاغذ منتقل میکنند.
معایب چاپگر لیزری؟
چاپگرهای لیزری رنگی، میتونند تصاویر و اشکال گرافیکی رو چاپ کنند، اما تصاویر چاپی اون ها، قابل مقایسه با پرینترهای جوهرافشان نیستو کیفیت اون رو ندارند.
بیشتر مدلهای پرینترهای لیزری از نظر ابعاد و اندازه، بسیار بزرگتر از پرینترهای جوهرافشان هستند و فضای زیادی رو اشغال میکنند.همچنین قیمت خرید چاپگر لیزری، خیلی بیشتر از پرینتر جوهرافشان هست.
نتیجه گیری:
اگه بر مبنای قیمت خرید میکنید، انتخاب بین پرینتر لیزری و جوهرافشان ساده هستش. با بودجه خیلی کم میتونید پرینتر جوهری مخصوص متون سیاه و سفید رو خریداری کنید. پرینترهای جوهرافشان برای کاربران خانگی مناسب هست اما باید هزینههای بیشتر اون رو هم در نظر بگیرید.
کارشناسان امنیتی در هفته ای که گذشت نوعی از باج افزار را برای سیستم عامل macOS کشف کرده اند که از طریق برنامه های دزدی انتشار می یابد.
این باج افزار که با نام EvilQuest شناخته میشود علاوه بر رمزگذاری فایلهای کاربران و درخواست پول برای آنلاک کردن آنها، روی سیستم یک کیلاگر و پوسته معکوس نصب میکند. علاوه بر این، کد موجود در آن فایلهای کیف پول رمزارز را نیز سرقت میکند...
باج افزار Zeppelin نمونه جدیدی از باج افزارهایی که در حال آلوده سازی سیستم کاربران است و دانستن و شناخت این باج افزار کمک میکند تا از این آلودگی در سازمانهای فناوری و خدمات درمانی در سراسر اروپا و کانادا و … است .
این باج افزار ابتدا با نام vegalocker فعالیت خورد را شروع کرد . سپس نامش به Buran تغییر پیدا کرد و در می 2019 در فروم های هکری شروع به خرید و فروش این باج افزار کردند . از این باج افزار نسخته های مختلفی منتتشر شده که در حال حاضر آخرین نمونه آن باج افزار Zeppelin است.
تاکنون نحوه ی توزیع این باج افزار دقیقا مشخص نشده ولی احتمالا از طریف سرویس Remote desktop که از طریق اینترنت فراهم شده انتشار یافته است.
عملکرد باج افزار Zeppelin به این صورت است که در ابتدا پایگاه داده ها ، سیستمهای بکاپ گیری ، سرویسهای ایمیل را درگیر میکند و بعد رمزنگاری فایلها (هیچ پسوندی به فایلها اضافه نمیکند ) و مشخصه آن اضافه کردن کلمه Zeppelin در فرمت HEX فایل است .
این بد افزار به زبان دلفی نوشته شده است و کاملا تنظیم پذیر است .
این باج افزار را میتوان شخصی سازی کرد ، این باج افزار به صورت فایلهای DLL و EXE در قالب اسکریپتهای Powershell در سیستم هدف مستقر شود.
• IP Logger: برای ردیابی موقعیت و آدرس IP قربانیان
• Startup: برای به دست آوردن ماندگاری در سیستم قربانی
• Delete backups: برای متوقف کردن سرویسهای خاص، غیرفعال کردن بازیابی فایلها، حذف بکاپها و shadow copyها و غیره.
• Task-killer: خاتمه دادن پروسسهای مشخص شده توسط مهاجم
• Auto-unlock: برای بازگشایی فایلهایی که حین رمزگذاری قفل شدهاند.
• Melt: برای تزریق thread دارای قابلیت خودحذفی به nodepad.exe
• UAC prompt: تلاش برای اجرای باجافزار با سطح دسترسی بالا
در حال حاضر راهی برای بازیابی فایلهای رمز نشده کشف نشده است و در حال حاضر بهترین راه حل بکاپ گیری منظم از دیتابیس ها و فایلهای اصلی است.
این باج افزار تعداد فایلهای موجود در همه درایوها را محاسبه میکند و سپس اقدام به رمزنگاری آن میکند و برای پنهان کردن از لایه های متعدد و کلید های تصادفی و .. استفاده میکند .
به گفتهی محققان، Zeppelin از ترکیب استانداردی از رمزگذاری متقارن با کلیدهای تصادفی تولید شده برای هر فایل (AES-256 در مُد CBC)، و رمزگذاری نامتقارن برای محافظت از Session key (با استفاده از پیادهسازی خاصی از RSA) استفاده میکند.