ویروس نویسی با Asp

همه میدونیم که زبان c و اسمبلی از زبان vbs خیلی قوی تره بیشتره ویروس ها هم با این دو زبان نوشته میشه پس ما می تونیم ویروسمون رو با سی یا اسمبلی یا ترکیبی از دوتاشون بنوسیم و به جای اون فیلی که با vbs نوشتیم قرار بدیم و به میل پیوست کنیم
 
کسی میدونه killer code و black code چی هستش
اگه بگین معلومه که expolite نویسی هم کار کرینو از هک هم سر در می یارین
 
ببین عزیز جان killer code که به زبون خودمون می شه کدهای قاتل با سخت افزار سیستم سروکار دارن یعنی می تونه با اجرای اون روی سیستم شما مادربردتونو بسوزونه که بیشتر با زبان اسمبلی نوشته می شن
و اما black code به همین کدهای ویروس ها و کرم ها و یا کدهایی که یک هکر برای نفوذ به یه سیستم استفاده میکنن گفته می شه که می شه با بیشتر زبان ها نوشته بشن ولی با توجه به نوع زبان قدرت های متفاوتی دارن
 
ببین عزیز جان killer code که به زبون خودمون می شه کدهای قاتل با سخت افزار سیستم سروکار دارن یعنی می تونه با اجرای اون روی سیستم شما مادربردتونو بسوزونه که بیشتر با زبان اسمبلی نوشته می شن
و اما black code به همین کدهای ویروس ها و کرم ها و یا کدهایی که یک هکر برای نفوذ به یه سیستم استفاده میکنن گفته می شه که می شه با بیشتر زبان ها نوشته بشن ولی با توجه به نوع زبان قدرت های متفاوتی دارن
 

MDP

Well-Known Member
ببین من کلی کار دارم نمی تونم هی بیام ببینم سوال تو چیه تو کامل توضیح بده من میام میخونم بعد دعا به جونت می کنم

همین
 
فوت و فن های آنتی ویروسها
________________________________________
سلام
گفتم مطلبش خوب بزارم تا همگی استفاده کنند
در این ترفند قصد داریم بحث آنتی ویروسها را به طور کامل برای شما بازکنیم. اینکه چه آنتی ویروسی مطمئن تر است؟ آنتی ویروسها چگونه یک ویروس را میشناسند؟ تکنیک های ویروس یابی و بسیاری مطالب دیگر. با بهره گیری از این ترفند میتوانید خودتان آنتی ویروس بهتر و مطمئن تر را انتخاب کنید.


اشاره :
در دنياي شبكه‌اي امروز، لزوم داشتن يك نرم‌افزار ضدويروس قدرتمند كه كامپيوتر ما را از انواع ويروس‌ها، كرم‌ها، بمب‌هاي منطقي و به‌طور كلي كدهاي مخرب مصون بدارد، بيش از هر زمان ديگري احساس مي‌شود. خوشبختانه (شايد هم متأسفانه) انتخاب‌هاي متعددي در اين زمينه وجود دارد. ولي واقعاً كدام يك از آن‌ها مي‌تواند بهتر مشكل كامپيوتر (يا كامپيوترهاي شبكه) ما را حل كند؟ كافي است سري به سايت‌هاي مربوط به فروشندگان اين نوع نرم‌افزارها بزنيد. به نظر مي‌رسد كه همه آن‌ها از بهترين‌ها هستند. و همه آن‌ها در تمام طول سال و در تمام 24 ساعت شبانه‌روز خدمات خود را ارايه مي‌دهند. از طرفي به دليل بازار رقابتي موجود، هيچكدام از آن‌ها اطلاعات دقيقي از نرم‌افزارخود ارايه نمي‌دهند. شما چه يك متخصصIT باشيد و چه يك كاربر معمولي، ممكن است به دليل نداشتن اطلاعات صحيح براي انتخاب ضدويروس مناسب خود با مشكل مواجه مي‌شويد. بنابراين بسيار مهم است كه بدانيد ضدويروس‌ها چگونه كار مي‌كنند و در واقع عوامل مهم براي انتخاب آن‌ها كدامند.




ضدويروس‌ها چگونه كار مي‌كنند؟
اولين قدم جهت انتخاب يك ضدويروس مناسب آشنايي با كاركرد ضدويروس‌ها مي‌باشد.
پس از آشنايي با خصوصيات يك ضدويروس، واژگاني كه در اين زمينه استفاده مي‌شود، را خواهيد شناخت. اين‌كه بدانيد ضدويروس چه كارهايي مي‌تواند انجام بدهد و چه كارهايي نمي‌تواند انجام دهد، به شما كمك مي‌كند كه انتظارات معقولي از آن داشته باشيد.

يك ضدويروس چگونه ويروس‌ها را شناسايي مي‌كند؟
روش‌هاي مختلفي براي شناسايي ويروس‌ها وجود دارد.
ويروس‌ها (به‌طور معمول) چيزي بيشتر از كد يك برنامه نيستند. بنابراين اگر ما بدانيم كه هر كدي چه كاري انجام مي‌دهد قادر خواهيم بود كه كد حامل ويروس را به محض رويت شناسايي كنيم.
اين كار اولين عملي است كه انجام مي‌گيرد و به نام Signature Matching معروف است.
نرم‌افزارهاي ضدويروس كه به اين روش كار مي‌كنند داراي يك بانك اطلاعاتي هستند كه شامل Virus signatureها است و به محض اين‌كه كدي را ملاحظه كرد كه معادل يكي از ركوردها باشد آن را به عنوان ويروس شناسايي مي‌كند. به نظر مي‌رسد كه موثرترين راه براي كشف ويروس‌ها همين باشد. روش فوق ذاتاً به‌گونه‌اي است كه اول ويروس را شناسايي مي‌كند و بعد متناظر با آن يك ركورد (virus signature) به بانك اطلاعاتي اضافه مي‌كند و حالا اگر ويروسي پيدا كند، در صورتي‌كه متناظر با اين ويروس ركوردي در بانك اطلاعاتي باشد قادر به شناسايي آن خواهد بود و همين امر ايجاب مي‌كند شركت‌هايي كه از اين فناوري در نرم‌افزار خود استفاده مي‌كنند مدام آن را بروز نگه دارند. به هر حال اين يك نقطه ضعف مي‌باشد و براي فائق آمدن بر آن دو روش ديگر در نرم‌افزارهاي ضدويروس معرفي شده است.

1- Heuristic method (روش‌ مكاشفه‌اي)
فلسفه Heuristic اين است كه بتوانيم ويروس‌هايي را شناسايي كنيم كه هنوز Virus Signature آن‌ها در بانك اطلاعاتي موجود نمي‌باشد.
اين كار با استفاده از يك بانك اطلاعاتي كه ركوردهاي آن حاوي Virus behavior signature مي‌باشد قابل انجام است. ركوردهاي اين بانك اطلاعاتي امضاي ويروس خاصي را نگهداري نمي‌كنند بلكه بيشتر رفتارهاي (رفتار بد) ويروس‌ها را ذخيره مي‌كنند. مثلاً اين‌كه هر كجا تشخيص بدهند كدي قصد پاك كردن Boot Sector را دارد از آن جلوگيري مي‌كنند.
الگوريتم‌هايHeuristic به دو صورت پياده‌سازي مي‌شوند:
● اگر تكنولوژي Heuristic كد هر برنامه را با Virus behavior Signature مقايسه كند و مورد آناليز قرار دهد آن را روش static heuristic مي‌ناميم.
● در بعضي مواقع اين تكنولوژي قطعه كد را در يك ماشين مجازي اجرا مي‌كند تا نتايج رفتاري آن را ببيند به اين روش dynamic heuristic مي‌گوييم. اين روش ممكن است نتايج غلطي نيز توليد كند.

Integrity checksum (جامعيت سرجمع)
در روش integrity checksum، فرض براين است كه ويروس قصد اعمال تغييراتي در فايل دارد. مثلا‌ً يك ويروس مي‌خواهد كه روي يك فايل چيزي بنويسد يا اين‌كه خودش را به آخر فايلي اضافه كند. در اين روش نرم‌افزار checksum فايل غيرويروسي و يا درايورهاي تميز را ذخيره مي‌كند و هرگاه كه تغييري در اين checksum مشاهده شود متوجه مي‌شود كه احتمال دارد ويروسي اين كار را انجام داده باشد. در اين روش نيز احتمال توليد نتايج غلط وجود دارد. اين روش در مقابله با ويروس‌هاي ماكرويي يا ويروس‌هاي مانند code Red كه بدون اين‌كه در هيچ فايلي ذخيره شوند در حافظه بارگذاري و اجرا مي‌شوند، كارايي چنداني ندارد.
اگر يك كد مزاحم از تمام الگوريتم‌هاي يك ضدويروس كه تاكنون نام برديم بگذرد، در گام آخر توسط فناوري ديگري به نام Activity Blocker از فعاليت آن جلوگيري مي‌شود. اين تكنولوژي از تمام فعاليت‌هايي كه ممكن است توسط يك كد مخرب صورت بپذيرد جلوگيري مي‌كند مثلاً اگر تشخيص دهد كه هاردديسك در حال فرمت شدن است از آن جلوگيري مي‌كند.

يك ضدويروس چه موقع ويروس‌ها را شناسايي مي‌كند؟




معمولاً ضدويروس‌ها به دو روش مي‌توانند ويروس‌ها را شناسايي كنند.
در روش اول ضدويروس، به صورت Real Time (بلادرنگ) و همان موقع كه فايل مورد دسترسي قرار مي‌گيرد عمل مي‌كند. در اين روش، ضدويروس درون حافظه مقيم مي‌شود و تمام فعاليت‌هاي مربوط به سيستم را مورد ارزيابي و بررسي قرار مي‌دهد. اين نرم‌افزارها با همكاري سيستم‌عامل متوجه مي‌شوند كه هم‌اكنون قرار است فايلي مورد دسترسي قرار بگيرد. سريعاً اين فايل را بررسي و نتيجه را گزارش مي‌دهند. به اين روش on-access مي‌گويند.
مزيت اين روش در ارايه يك حفاظت دايمي است ولي اشكالي كه دارد اين است كه تنها فايل‌ها را به هنگام دسترسي مورد بررسي قرار مي‌دهد. يعني احتمالاً اگر ويروسي در يك فايل قرار گرفته باشد و در ديسك ذخيره شده باشد، با اين روش قابل شناسايي نيست. در روش دوم اين امكان به كاربر داده مي‌شود كه خودش نرم‌افزار ضدويروس را براي بررسي كردن ديسك يا يك فايل به كمك بگيرد. براي اين‌كه فعاليت فوق بازده بهتري داشته باشد بايد ضدويروس را طوري تنظيم كرد كه در دوره‌هاي زماني معين اقدام به اسكن كند. اين روش به on-demand معروف است.

ضدويروس‌ها چه كارهايي را مي‌توانند انجام دهند و چه كارهايي را نمي‌توانند انجام دهند؟
1- محافظت صددرصدي
هيچ ضدويروسي وجود ندارد كه بتواند به صورت صددرصد سيستم شما را در مقابل ويروس‌ها ايمن كند. ويروس‌ها و كدهاي مخرب هميشه از ضد‌ويروس‌ها جلو بوده‌اند CodeRed .،Melissa ،Funlove ، Nimda و ويروس‌هاي زياد ديگر اين فرضيه را ثابت نموده‌اند و البته دليل پويايي و حيات نرم‌افزارهاي ضدويروس نيز همين قضيه مي‌باشد.
به خاطر داريد كه ضدويروس‌ها براي شناسايي يك ويروس به‌طور معمول نياز به virus signature دارند و البته هنگامي كه اين signature موجود نباشد از روش‌هاي heuristic استفاده مي‌شود كه اين روش‌ نيز هميشه جواب درست را برنمي‌گرداند. با اين همه، ضدويروس‌ها در مقابل ويروس‌هاي شناخته شده (بيش از60 هزار عدد) يك حفاظت همه جانبه از سيستم شما به عمل مي‌آورند.
بيشتر ضدويروس‌ها در صورت بروز و ظهور يك ويروس جديد قادر خواهند بود كه به سرعت آن را شناسايي كنند و سيستم شما را از وجود اين ويروس پاك نگه دارند.

2- بازسازي فايل‌هاي ويروسي شده
آيا هر ويروسي كه توسط نرم‌افزار ضدويروس شناسايي شد قابل از بين بردن است؟
بستگي دارد كه عملكرد ويروس چگونه باشد.
بعضي از ويروس‌ها مانند ويروس‌هاي ماكرويي به راحتي توسط نرم‌افزار ضدويروسي تشخيص داده مي‌شوند و از فايل بيرون كشيده مي‌شوند و پاك مي‌شوند. اين فايل‌ها هيچ آسيبي به فايل ميزبان خود نمي‌رسانند.
اما بعضي از ويروس‌هاي ديگر نيز هستند كه بر روي فايل ميزبان چيزي مي‌نويسند يا اين‌كه اصلاً كدويروس را درون فايل ميزبان قرار مي‌دهند. يكي از انواع اين ويروس‌ها Loveletter است. در اين مورد به وضوح ديده مي‌شود كه فايل ميزبان قابل بازيابي نيست و تنها راه‌حل اين است كه اين فايل را پاك كنيم.
دسته ديگري از ويروس‌ها وجود دارند (مانند ويروس Nimda) كه علاوه بر ايجاد تغييرات بر روي فايل، قابليت دستكاري فايل‌هاي سيستم و رجيستري را نيز دارند. در اين موارد ضدويروس به تنهايي نمي‌تواند كاري بكند. شما به ابزاري نياز داريد كه بتواند فايل ويروسي را حذف كند و تغييرات اعمال شده در سيستم شما را به حالت اوليه برگرداند. معمولاً اين ابزار كمكي بر روي وب سايت‌هاي فروشندگان نرم‌افزار ضدويروس موجود مي‌باشد.

معيارهاي انتخاب يك ضدويروس
حالا كه متوجه شديد ضدويروس چگونه كار مي‌كند و چه كارهايي را مي‌تواند براي شما انجام دهد، وقت آن است ببينيم چه معيارهايي براي انتخاب يك ضدويروس مهم هستند.

1- شناسايي
مهمترين وظيفه يك ضدويروس شناسايي ويروس‌ها است. اما چگونه بايد مطمئن شويم كه يك ضدويروس همان كاري را كه ادعا مي‌كند انجام مي‌دهد؟
آيا همين قدر كه برنامه ضدويروس يك گزارش مبني بر شناسايي ويروس‌ها توليد مي‌كند متقاعد مي‌شويد كه كار خود را به خوبي انجام مي‌دهد؟ پيدا كردن جواب دو سوال زير مي‌تواند به شما كمك ‌كند:
پرسش اول: نرم‌افزار ضدويروس قادر است چه تعداد ويروس را مورد شناسايي قرار دهد. از اين پارامتر عموماً با نام detection Rate ياد مي‌شود.
پرسش دوم: نرم‌افزار ضدويروس تحت چه شرايطي مي‌تواند يك ويروس را شناسايي كند؟ آيا اگر اين ويروس در حافظه مقيم شده باشد توسط ضدويروس قابل تشخيص است؟

توصيه هاي مهم
اول: يك راه‌حل اين است كه شما خودتان ضدويروس را بررسي كنيد. براي اين كار بر روي اينترنت به دنبال ويروس‌هاي مختلفي بگرديد و اين ويروس‌ها را به سيستم خودتان بياوريد و ببينيد كه آيا ضد‌ويروس مي‌تواند اين ويروس‌ها را شناسايي كند يا نه؟ ولي من شما را از انجام اين عمل شديداً منع مي‌كنم. حتي اگر فروشنده ضدويروس خودش اين پيشنهاد را به عنوان يك راه‌حل براي آزمايش ضدويروس داده باشد. همان‌طورEicar كه گفته است: استفاده از ويروس‌هاي واقعي براي تست كردن يك ضدويروس در يك محيط عملياتي مانند اين است كه شما آتش را به دفتر كار خود بياوريد و بعد بخواهيد بررسي كنيد كه آيا حسگرهاي دود‌ به خوبي كار مي‌كنند يا نه؟ شما هرگز نمي‌توانيد از نتيجه كار مطمئن باشيد. ممكن است برنامه ضدويروس نتواند همه موارد را شناسايي كند و ويروس‌ها شروع به پاك كردن داده‌هاي ارزشمند سيستم شما و پخش شدن در شبكه بنمايند. امري كه ممكن است به بهاي از دست دادن شغلتان تمام شود.
دوم: اگر شما واقعاً مي‌خواهيد مطمئن شويد كه يك ضدويروس قادر به انجام چه كارهايي است مي‌توانيد در سايتwww.eicar.org يك سري آزمايش‌هاي بي‌خطر جهت آزمايش ضدويروس پيدا كنيد. در اين سايت فايل‌هاي آزمايشي و بي‌خطري وجود دارند كه بيشتر ضدويروس‌ها آن‌ها را به عنوان ويروس شناسايي مي‌كنند.
در اين حالت اگر ضدويروس موفق به از بين‌بردن ويروس شود چه بهتر و چنانچه نتواند، شما هيچگونه اطلاعاتي از دست نخواهيد داد. بدين‌ترتيب مي‌توانيد يك روش امن براي آزمايش ضدويروس به كار ببنديد.
سوم: شما مي‌توانيد از منابع موجود كه قبلاً اين كار را انجام داده‌اند استفاده كنيد. بعضي از سازمان‌ها، متولي انجام همين فعاليت مي‌باشند. ليستي از ويروس‌ها توسط www.wildlist.org نگهداري مي‌شود. در اين سايت مي‌توانيد ببينيد كه detection Rate يا نرخ شناسايي هر ضدويروس چقدر است.
اين سايت‌ها نيز براي اين منظور مفيد مي‌باشند:
www.virusbtn.com: اين سايت، آماري از توان ضدويروس‌ها براي شناسايي ويروس‌هاي موجود در سايت wildlist (در دو مورد on-demand,Real-time) را ارايه مي‌كند.
www.chech-mark.com/cgi-bin/Redirect.pl: در اين سايت ضدويروس‌ها در دو سطح مورد بررسي قرار مي‌گيرند. سطح اول همان است كه در سايت Virusbtn نيز انجام مي‌شود يعني فقط شناسايي ويروس‌ها.
نرم‌افزارهايي در سطح دوم موفق هستند كه قادر به از بين بردن ويروس نيز باشند.

2- امكانات
بسيار مهم است كه بدانيم چه نوع فناوري در ضدويروس موردنظر استفاده شده است و چه ويژگي‌هايي دارد.
1- سازگاري سخت‌افزاري و نرم‌افزاري سيستم شما با ضدويروس انتخاب شده.
در نگاه اول شايد اين مساله كمي بديهي به نظر برسد. اما به هر حال برخي از فروشندگان آخرين نسخه نرم‌افزار ضدويروس خود را كه تنها با جديدترين سيستم‌عامل‌ها كار مي‌كنند، ارايه مي‌دهند.
بنابراين منطقي به نظر مي‌رسد كه قبل از اقدام به خريد نرم‌افزار حتماً به اين نكته توجه كنيد.
2- توانايي پويش(on-Access Real time) را داشته باشد.
اين يكي از ويژگي‌هاي اساسي است كه يك ضد‌ويروس بايد دارا باشد. اين بخش نرم‌‌افزار باعث مي‌شود كه نرم‌افزار ضدويروس مانند يك سگ نگهبان عمل كند. يعني همان موقع كه ويروس در حافظه بارگذاري مي‌شود ويروس را شناسايي و خنثي كند.
اين بخش نرم‌افزار بايد قادر باشد كه به تمام نواحي سيستم از جمله فايل سيستم، بوت ركورد،
Mabter Boot Record) MBR) و حافظه سركشي كند.
3- توانايي پويش به صورت on-demand را داشته باشد. يكي از كارهاي ضروري كه براي حفظ سلامت سيستم‌تان بايد انجام دهيد اين است كه هراز‌چندگاهي وضعيت سيستم خود را با اجراي ضدويروس بررسي كنيد.
مخصوصاً هنگامي كه آخرين نسخه ضدويروس را دريافت مي‌كنيد حتماً اين كار را انجام دهيد. سناريوي زير انجام توصيه بالا را توجيه مي‌كند.
شما يك e-mail دريافت مي‌كنيد كه اين e-mail شامل يك ضميمه و ويروسي است. منتهي شما اين ضميمه را هيچ‌گاه باز نكرده‌ايد. اجراي ضدويروس بروز شده باعث مي‌شود كه (احتمالاً) ويروس فوق شناسايي شود.
4- از الگوريتم‌هاي Heuristic پشتيباني كند.
5- بتواند انواع فايل‌ها با فرمت‌هاي مختلف را پويش كند.
اگر شما ويروسي در سيستم داشته باشيد كه قادر باشد به هر نوع فايلي بچسبد، نياز به ضدويروسي داريد كه بتواند فايل‌هاي مختلف با پسوندهاي مختلف را مورد بررسي قرار دهد. قبلاً تنها راه انتشار يك ويروس اين بود كه به فايل‌هاي برنامه‌اي بچسبد، اما امروزه اين امكان وجود دارد كه ويروس براي انتشار خودش از فايل‌هاي غيراجرايي نيز استفاه كند.
6- توانايي جلوگيري از فعاليت اسكريپت‌هاي مخرب را داشته باشد. بعضي از ويروس‌ها هستند كه با استفاده از اسكريپت‌ها طراحي شده‌اند. كرم‌هاي I Love You از اين نوع است.
موتور ضدويروس بايد اين قابليت را داشته باشد كه كدهاي VBS و JS را شناسايي كند و در صورتي كه آن‌ها را مخرب تشيخص دهد از فعاليتشان جلوگيري كند.
7- توانايي بررسي ضميمه e-mail را داشته باشد.
امروزه بسياري از ويروس‌ها توسط e-mail ‌انتشار پيدا مي‌كنند.
بعضي از آن‌ها مانند كرم KAK حتي اين توانايي را دارند تا در سيستم‌هايي كه خوب پيكربندي نشده‌اند، بدون اين‌كه ضميمه e-mail باز شود شروع به انتشار خود بنمايند.
8- قابليت بررسي فايل‌هاي فشرده را نيز داشته باشد. اگر چه يك ويروس هنگامي كه در يك فايل فشرده قرار دارد نمي‌تواند آسيبي به سيستم برساند ولي بهتر است است كه اصلاً اين ويروس در سيستم شما وجود نداشته باشد.
9- قابليت اين را داشته باشد كه اسب‌هاي تراوا، جاوااپلت‌هاي مخرب و اكتيوايكس‌هاي مزاحم را شناسايي كند. نرم‌افزارهاي ضدويروس نه تنها بايد اين قابليت را داشته باشند كه ويروس‌ها و كرم‌ها را شناسايي كنند بلكه بايد بتوانند از فعاليت‌اسب‌هاي تراوا، اكتيويكس‌ها و اپلت‌هاي جاوا نيز جلوگيري كنند.
امروزه بيشتر ضدويروس‌ها داراي اين خصوصيت مي‌باشند.

3- نگهداري از نرم‌افزار
دو مورد زير در نگهداري از نرم‌افزارهاي ضدويروس قابل توجه هستند.
1- بروز كردن مداوم ضدويروس براي مقابله با ويروس‌هاي جديد.
در بخش‌هاي قبل لزوم بروز نگه‌داشتن بانك‌اطلاعاتي ضدويروس توضيح داده شد. بنابراين ضدويروس منتخب شما بايد به ‌گونه‌اي باشد كه به راحتي قابليت روزآمد شدن را داشته باشد و علاوه‌‌‌برآن به‌طور مداوم ركوردهاي اين بانك اطلاعاتي زياد شود. شما همچنين بايد متوجه اين مطلب باشيد كه از چه مكانيزم‌هايي جهت بروز نگه‌داشتن ضدويروس استفاده مي‌شود. آيا نسخه‌هاي بروز شده بر روي وب سايت فروشندگان قرار دارد؟ و آيا به راحتي قابل دريافت مي‌باشد؟ و آيا شما به راحتي مي‌توانيد از وجود يك ويروس جديد آگاهي يابيد يا نه؟
اگر شما داراي ارتباط اينترنتي كم سرعتي باشيد دريافت كردن اين نرم‌افزار بسيار خسته‌كننده مي‌باشد. اين نكته نيز مهم است كه در هر بار انجام اين عمل بايد فقط قسمت روزآمد شده نرم‌افزار دريافت شود.
نكته ديگر اين‌كه، نويسندگان ضدويروس‌ها چقدر سعي مي‌كنند تا روش‌هاي جديدي كه براي توليد ويروس‌ها استفاده مي‌شود بشناسند و در نرم‌افزار خود به كار گيرند؟
و نكته مهم‌تر اين‌كه از زمان خبر انتشار يك ويروس تا وقتي كه نرم‌افزار ضدويروس براي اين ويروس بروز شود چقدر طول مي‌كشد؟

4- نرم‌افزارهاي ضدويروس چقدر بر كارايي سيستم شما تأثيرگذار مي‌باشند؟
همه نرم‌افزارهاي ضد‌ويروس بر كارايي سيستم شما تأثير مي‌گذارند. اغلب اوقات اندازه‌گيري ميزان اين تأثير سخت است ولي به هر حال به عنوان يك معيار مهم در انتخاب ضدويروس مطرح مي‌باشد. پرسش‌هاي زير در اين مقوله مهم مي‌باشند.
- آيا نرم‌افزار ضدويروس باعث كندتر شدن پروسه بوت سيستم شده است؟
- زمان دسترسي به يك فايل را افزايش داده است؟
پس براي انتخاب يك ضدويروس مناسب ناچاريد كه چند آزمايش را انجام دهيد.
مثلاً مي‌توانيد زماني كه براي پويش‌هاي مختلف (تحت شرايط مختلف) توسط يك ضدويروس مصرف مي‌شود را محاسبه كنيد و در اين مدت، زمان ميانگين استفاده از حافظه و cpu را نيز اندازه‌گيري كنيد.
يا اين‌كه زماني كه براي اسكن on-demand نياز مي‌باشد را براي محصولات مختلف اندازه‌گيري كنيد.
يا اين‌كه وقتي كه ضدويروس در حال پويشReal-time مي‌باشد ببينيد كه باز كردن يك فايل بزرگ چقدر طول مي‌كشد؟
توجه به اين موضوع كه محيط تست براي همه ضدويروس‌ها كه مورد ارزيابي قرار مي‌گيرند، مشابه باشد بسيار مهم است از جلمه اين‌كه:
حجم فايل‌ها و نوع فايل‌هايي كه براي هر يك از ضدويروس‌ها مورد بررسي قرار مي‌گيرد مهم است.
هر دو ضدويروس به يك ترتيب و روي يك سخت‌افزار پيكربندي شده باشند.

5- نرم‌افزار ضدويروس قابل كنترل باشد.
اگر شما نتوانيد بر روي ضدويروس خود نظارت كامل داشته باشيد مانند اين است كه ضدويروس نداريد.
شما بايد بتوانيد به‌طور مرتب (هر زمان كه نياز داشتيد) و بدون زحمت زيادي بانك اطلاعاتي خود را كامل‌تر يا بروز كنيد.
به راحتي بتوانيد از سرورها خود و كلاينت‌هاي خود محافظت كنيد و گزارش‌هاي نرم‌افزار ضدويروس را براي هر كدام از آن‌ها ببينيد.

6- پشتيباني ضدويروس هميشگي و موثر باشد.
فروشنده نرم‌افزار بايد قادر باشد كه پشتيباني مورد نظر شما را انجام دهد. مطمئناً پشتيباني كه براي كاربر در خانه ارايه مي‌شود با پشتيباني كه براي يك شركت بزرگ انجام مي‌شود با يكديگر متفاوت هستند.
فروشنده براي پشتيباني مي‌تواند خدمات زير را به شما ارايه دهد.
1- قادر باشد كه شما را به صورت on-line پشتيباني كند و اگر شك كرديد كه فايلي حاوي ويروس است، بتوانيد آن را براي فروشنده ارسال كنيد تا نظر خودش را راجع‌به فايل بيان كند.
اگر يك ويروس جديد شناخته شود، فروشنده بايد بتواند اين موضوع را به اطلاع شما برساند تا اقدامات لازم را براي خودتان، يا براي شبكه‌اي كه شما مس‡وول آن هستيد انجام دهيد.

نتيجه‌گيري
هيچ‌كدام از نرم‌افزارهاي ضدويروس بهترين نيستند. يك ضدويروس وقتي براي شما بهترين است كه بتواند نسبت به نرم‌افزارهاي ديگر به صورت كاملتري نيازهاي شما را برآورده كند.
اطلاعاتي كه فروشنده نرم‌افزار ارايه مي‌كند هميشه خوب است ولي انتخاب ضدويروس نبايد تنها براساس ادعاهاي فروشنده باشد.



آنتی ویروسها جادو نمیکنند!
آنتی ویروسها محافظان سیستم های ما هستند. این گونه نرم افزارها میتوانند بنا به ساختمان برنامه ای خود, کنترل مرکزی سیستم را در دست گیرند و مواظب رفتار مشکوک یا برنامه های مخرب اجرایی بر روی سیستم ما باشند ولی با گسترش روابط, نمیتوانیم به صورت کامل روی آنها حساب کنیم زیرا این برنامه ها از حمله ویروسها در امان نیستند .
در بعضی موارد دیده شده که ویروسها بروی سیستم اجرا میشوند ولی آنتی ویروس هیچ واکنشی در مقابل ویروس ندارند و مانند یک برنامه طبیعی با آنها برخورد میکند.
خوشبختانه شرکت های آنتی ویروس برای تسلط بر کل ارتباطات اینترنتی اقدام به تاسیس شرکتهایی به صورت نمایندگی در اکثر کشورها کرده اند. آنها به این منظور نشان دادند که می خواهند کرم ها را در نطفه خفه کنند و از پخش گسترده انها در کل شبکه جلوگیری نمایند.
آنها اقدام به آگاه سازی کاربران اینترنتی از طریق سرویسهایی مانند رادار کرده اند. شاید نقاط ضعف شرکت های آنتی با ارائه این نوع سیستمها به کاربران اثبات شده باشد. انها بر این عقیده اند که به تنهایی و بدون کمک کاربران اینترنتی نمی توانند از پس کرم های اینترنتی برآیند. بنابر این هر شرکت آنتی ویروس آنالیز های خود را در اختیار کاربران قرار میدهد تا اگر نرم افزار آن شرکت نتوانست کرم را خنثی کند کاربران با داشتن اطلاعات کافی شروع به مقابله با کرمها کنند. همان طور که می دانید آنتی ویروس ها فقط یک نرم افزار هستند و ما نمی توانیم تصور کنیم که آنها میتوانند معجزه کنند, باید درک کرد که این نرم افزارها خود دارای مشکل هایی می باشند.

چند تکنیک آنتی ویروس Kaspersky : (از بهترین آنتی ویروسها )
1. تکنیک تله گذاری: در این روش آنتی ویروس توجه ویروس را به خود جلب می کند.
2. مخفی ماندن : وقتی ما آنتی ویروسی در کامپیوتر نصب میکنیم ویروسها در بین فایلها پنهان می شوند. در آنتی ویروس Kaspersky هیچ قسمتی از سیستم (نرم افزاری) متوجه نصب نمی شوند.
3. سیستم رادار : اطلاع رسانی به کاربران.
و ده ها تکنیک دیگر.
 
مقاله اي درباره الگوریتم Md5
________________________________________
سر فصل ها:

1- خلاصه
2- شرایط و نکات لازم
3- توضیحات الگوریتم MD5
4- نتیجه
5- پا نویس

مترجم: امید متقی راد



1- خلاصه:
در این مقاله با الگوریتم "خلاصه پیام MD5" آشنا می شویم. این الگوریتم یک رشته با طول متفاوت را به عنوان ورودی می گیرد و یک "خلاصه پیام MD5" یا "اثر انگشت" با طول 128 بیت می سازد.
در این روش اینکه دو پیام مختلف دارای یک "خلاصه پیام" باشند یا اینکه یک رشته از روی یک "خلاصه پیام" ساخته شود غیر ممکن می باشد. این الگوریتم برای امضاهای دیجیتال مناسب است، جایی که احتیاج به خلاصه کردن یک فایل بزرگ در یک رشتهء امن و فشرده، قبل از کد کردن آن متن، در سیستم های کدینگ، با کلید های خصوصی و عمومی آن سیستم مانند RSA (Rivest Shamir Adelman)
الگوریتم MD5 برای داشتن سرعت بالا در ماشین های 32 بیتی طراحی شده است در عین حال احتیاجی به جانشینی ها در جداول بزرگ ندارد. این الگوریتم را با کدهای بسیار کمی می توان نوشت.
الگوریتم MD5 توسعه ای از الگوریتم MD4 می باشد با این تفاوت که MD5 کمی کندتر از MD4 عمل می کند اما در طراحی آن بسیار محافظه کارانه عمل شده است.
MD5 به این دلیل طراحی شد که حس کردند MD4 به عنوان سرعت بالایی که داشت پذیرفته شده و از امنیت بالایی در شرایط بحرانی برخوردار نمی باشد. MD4 برای سرعت بالا طراحی شده ولی احتمال شکست آن در رمز کردنی موفق وجود دارد. MD5 کمی در سرعت کند شده با این تفاوت که بیشترین امنیت را داراست. این الگوریتم حاصل تاثیر دادن نظرات تعدادی از استفاده کنندگان MD4 به همراه مقادیری تغییر در ساختار الگوریتم برای افزایش سرعت و قدرت آن می باشد. الگوریتم MD5 در این مکان عومی قرارگرفته تا از آن استفاده و در صورت امکان استاندارد شود.

2- شرایط و نکات لازم:
در این متن منظور از « کلمه» تعداد 32 بیت و «بایت» تعداد 8 بیت داده می باشد. یک صف از بیت ها دارای خصوصیات طبیعی یک صف از بایتها می باشند که هر گروه هشت تایی متوالی از بیتها یک بایت را تشکیل می دهند که پرارزش ترین بیت در ابتدا قرار دارد. یک صف از بایت ها دقیقا مشابه یک صف 32 بیتی از کلمات پردازش می شود. جایی که گروهی 4 تایی از توالی بایتها پردازش می شوند، کم ارزش ترین بایت اولین بایت می باشد.
اجازه بدهید از x_i بجای xi (x اندیس i ) استفاده کنیم و اگر مقدار اندیس یک عبارت محاسباتی بود آن را در {} محدود می کنیم، مانند: x_{i-1} . همچنین از ^ به عنوان علامت توان استفاده می کنیم، پس x^i یعنیx به توان i .
اجازه بدهید از علامت «+» برای اضافه کردن دو کلمه به هم استفاده کنیم. از x<<<5 به عنوان عملگر چرخش بیتی در کلمات استفاده می شود کهx به اندازه 5 بیت به چپ چرخش می کند.
از not (x) به عنوان عملگر نقیض بیتی، از X v Y به عنوان عملگر فصل (or) و از X xor Y به عنوان عملگر exclusive or و از XY به عنوان عملگر عطف (and) استفاده می کنیم.

3- توضیحات الگوریتم MD5:
فرض کنید ما b بیت پیام به عنوان ورودی داریم و تصمیم داریم خلاصه پیام آن را بدست آوریم. b در اینجا یک عدد نا منفی و صحیح است، b می تواند مقدار صفر داشته باشد و هیچ محدودیتی برای مضرب هشت بودن آن نیست و به هر اندازه می تواند بزرگ باشد. فرض کنید بیت های این پیام را بشود به صورت زیر نوشت:
m_0 m_1 ... m_{b-1}
برای آوردن خلاصه پیام 5 مرحله زیر را انجام می دهیم:

گام 1- اضافه کردن بیتهای نرم کننده:
طول پیام مورد نظر به 448 به پیمانه 512 توسعه پیدا می کند به این معنی که اگر به طول پیام 64 بیت اضافه شود، طولش مضربی از 512 خواهد بود. عمل توسعه دادن همیشه اجرا می شود مگر اینکه طول پیام به صورت 448 به پیمانه 512 باشد.
عمل توسعه پیام یا نرم کردن آن به صورت زیر انجام می شود:
یک بیت [1] سپس تعدادی بیت [0] به پیام اضافه می شود.اضافه شدن بیت های 0 تا زمانی که طول رشته به 448 بر پایه 512 برسد، ادامه پیدا می کند. در این عمل حداقل یک بیت و حداکثر 512 بیت اضافه خواهد شد.

گام 2- افزایش طول:
یک نمایش 64 بیتی از b بیت پیام اولیه به آخر نتیجه گام قبل اضافه می شود. در بدترین حالت، b بزرگتر از 64 بیت خواهد بود. در این حالت فقط 64 بیت کم ارزش b استفاده خواهد شد.
هم اکنون طول پیام بدست آمده دقیقا معادل مضربی از 512 خواهد بود. مشابه اینکه بگوییم، این پیام طولی معادل مضربی از16 کلمه دارد اجازه بدهید M[0…N-1] را نمایانگر کلمات پیام بدست آمده بدانیم. (N مضربی از 16 می باشد.)

گام 3- یین بافر برای MD:
برای محاسبه خلاصه پیام یک بافر 4 کلمه ای (A,B,C,D) استفاده می شود. هر کدام از A، B، Cو D یک ثبات 32 بیتی می باشند. این ثبات ها مطابق جدول زیر مقدار دهی می شوند ( بایتهای کم ارزش در ابتدا قرار دارند )
word A: 01 23 45 67
word B: 89 ab cd ef
word C: fe dc ba 98
word D: 76 54 32 10

گام 4- پردازش پیام در بلاک های 16 کلمه ای:
در ابتدا 4 تابع کمکی تعریف می کنیم که هر کدام به عنوان ورودی سه کلمهء 32 بیتی می گیرد و برای خروجی یک کلمهء 32 بیتی تولید می کند.
F(X,Y,Z) = XY v not(X) Z
G(X,Y,Z) = XZ v Y not(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X v not(Z))
در هر موقعیت بیتی، F به عنوان شرط عمل می کند: اگر X آنگاه Y در غیر این صورت Z. تابع F می توانست طوری تعریف شود که به جای استفاده از v از + استفاده کند چون XY و not(X) هرگز یک هایی در موقعیت بیتی یکسان نخواهد داشت. جالب است به یاد داشته باشید که اگر بیت های X، Y و Z مستقل و غیر مرتبط باشند، هر بیت از F(X, Y, Z) مستقل و غیر مرتبط خواهد بود.
توابع G، H و I شبیه تابع F هستند، به طوری که آنها در "توازی بیتی" کار می کنند تا خروجی شان را از بیت های X، Y و Z تولید کنند. در چنین روشی اگر بیت های متناظر X، Y و Z مستقل و غیر مرتبط باشند، آنگاه هر بیت از G(X, Y, Z)، H(X, Y, Z) و I(X, Y, Z) مستقل و غیر مرتبط خواهند بود.
توجه داشته باشید که تابع H، تابع XOR یا توازن بیتی از ورودی هایش است. این گام از یک جدول 64 عنصری T[1…64] ساخته شده از یک تابع مثلثاتی، استفاده می کند. اجازه دهید T، I-امین عنصر جدول را مشخص می کند که برابر است با قسمت صحیح حاصلضرب 4294967296 در abs(sin(i))، به طوری که I به رادیان باشد.
کارهای زیر را انجام می دهید:

/* Process each 16-word block. */
For i = 0 to N/16-1 do

/* Copy block i into X. */
For j = 0 to 15 do
Set X[j] to M[i*16+j].
end /* of loop on j */

/* Save A as AA, B as BB, C as CC, and D as DD. */
AA = A
BB = B
CC = C
DD = D

/* Round 1. */
/* Let [abcd k s i] denote the operation
a = b + ((a + F(b,c,d) + X[k] + T) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]

/* Round 2. */
/* Let [abcd k s i] denote the operation
a = b + ((a + G(b,c,d) + X[k] + T) <<< s). */
/* Do the following 16 operations. */
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

/* Round 3. */
/* Let [abcd k s t] denote the operation
a = b + ((a + H(b,c,d) + X[k] + T) <<< s). */
/* Do the following 16 operations. */
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

/* Round 4. */
/* Let [abcd k s t] denote the operation
a = b + ((a + I(b,c,d) + X[k] + T) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]

/* Then perform the following additions. (That is increment each
of the four registers by the value it had before this block
was started.) */
A = A + AA
B = B + BB
C = C + CC
D = D + DD

end /* of loop on i */

گام 5- خروجی:
خلاصه پیامی که به عنوان خروجی تولید می شود و عبارت است از A، B، C و D، که ما با کم ارزش ترین بیت A شروع می کنیم و به با ارزش ترین بیت D خاتمه می دهیم. این تعریف MD5 را کامل می کند.

4- نتیجه:
الگوریتم خلاصه پیام MD5 به سادگی قابل اجرا می باشد و یک "اثر انگشت" یا "خلاصه پیام" از پیام با طول اختیاری تولید می کند. گمان برده می شود که امکان مواجه شدن با دو پیام که خلاصه پیام مشابهی دارند از رتبهء 64^2 و برای هر پیامی که به آن یک خلاصه پیام داده شده است از رتبهء 128^2 می باشد.
الگوریتم MD5 برای نقاط ضعف به دقت بررسی شده است. به هر حال این الگوریتم نسبتا جدید است و تحلیل امنیتی بیشتری را طلب می کند، مشابه طرح های مشابه در این رده.

5- پانویس:
این مقاله اطلاعاتی برای جامعهء اینترنتی مهیا کرده و البته هیچ استانداردی را مشخص نمی کند. انتشار این مقاله به هر تعداد آزاد می باشد.
از آقایان Don Coppersmith, Burt Kaliski, Ralph Merkle, David Chaum, and Noam Nisan برای توضیحات و پیشنهاداتشان متشکریم.
 
حالا براتون می گم که چه طوری ویروس خود را تقریبا غیر قابل شناسایی کنیم
البته یه کم قدیمی ولی بد نیست که با روشش آشنا بشین
آنتی ویروس ها به این صورت ویروس های وی بی اسکریپت رو تشخیص می دن اول کد داخل فایل vbs رو چک می کنه و اگر داخل اون کد معرفی file system object وجود داشت اونو ویروس تشخیص می ده
رش اول باید این کد رو در داخل کدهای اصلی قرار بدیم این کد می یاد خودشو تو شاخه اصلی ویندوز کپی می کنه و قاعدتا تغییراتی هم در رجیستری می ده تا با هر با راه اندازی ویتدوز اجرا بشه
 
خوب ما با کدی که می گم میایم کدهای اصلی رو که نوشتیم رمزنگاری می کنیم حالا هر چقدر از الگوریتم پیچیده تری استفاده کنیم قاعدتا تشخیص ویروسی که می نویسیم توسط آنتی ویروس سخت تر می شه
بعد از رمزنگاری کدها باید چه کار کنیم
باید کدی بنویسیم که در هر بار اجرای ویندوز کدهای رمزنگاری شده را به حالت اول یعنی کدهای vbs تبدیل کنه و اجراشون کنه
 

جدیدترین ارسال ها

بالا