ورود

View Full Version : تست ویروسی بودن یا نبودن فایل ذخیره شده



Restlesa
یک شنبه 11 اردیبهشت 1390, 13:18 عصر
سلامی دوباره بر همه ی دوستان عزیزم
سوال من اینه که آیا امکان این روش وجود داره که با برنامه ی خودمون فایلی رو ذخیره کنیم و هنگام open کردن آن فایل مذکور بر اساس ویروسی بودن تست بشه و اگر ویروسی بود فایل مذکور باز نشه و و در غیر این صورت بازش کرد ؟؟؟؟

volkswagen
یک شنبه 11 اردیبهشت 1390, 18:44 عصر
سلام-
والا تا جایی که من میدونم ، همچین چیزی امکان نداره ، مگر این که از روی حجم فایل و... بشه این کارو کرد.
چون روش مهندسی معکوس برای شناسایی ویروس ها کاربردی نداره ، در نتیجه میبایست که بانک اطلاعات خود آنتی ویروس ها هم هر چند وقت یک بار به روز بشه.
گر چه اسکن هوشمند هم هست.که درموردش نمیدونم.

Restlesa
دوشنبه 12 اردیبهشت 1390, 01:48 صبح
اگه امکان نداره پس نحوه عملکرد آنتی ویروس ها چه طوریه ؟؟؟
از روی حجم فایل نمیشه چرا که ممکنه فایل مورد نظر با یه برنامه ی دیگه نظیر Notepad بازبشه و تغییر اندازه پیدا کنه
اینم اضافه کنم که فایل مورد نظری که می خواهم عملیات مذکور روش اعمال بشه یک فایل متنی هستش

آیا کس دیگه ای از دوستان نظری در این باره نداره ؟؟؟

ali.rezaei7
دوشنبه 12 اردیبهشت 1390, 02:12 صبح
سلام


اگه امکان نداره پس نحوه عملکرد آنتی ویروس ها چه طوریه ؟؟؟
آنتی ویروس ها براساس اون دیتا بیس و هوش مصنوعی بکار رفته در آنتی ویروس، ویروس ها رو شناسایی می کنند. ولی از اونجایی که شما قدرت نوشتن چنین برنامه ای رو ندارید، مجبور میشید که از روش های دیگر استفاده کنید. مثل Checksum گرفتن از فایل مورد نظر.


اینم اضافه کنم که فایل مورد نظری که می خواهم عملیات مذکور روش اعمال بشه یک فایل متنی هستش
فایل های متنی که ویروسی نمی شن!

Restlesa
دوشنبه 12 اردیبهشت 1390, 10:50 صبح
ممنونم از جوابتون
حالا میشه در مورد این Checksum چه توضیحی بدی ؟؟؟؟

ali.rezaei7
دوشنبه 12 اردیبهشت 1390, 11:28 صبح
ممنونم از جوابتون
حالا میشه در مورد این Checksum چه توضیحی بدی ؟؟؟؟
checksum مقداری است که براساس محاسباتی که روی یک بسته یا فایل انجام میشود، بدست میاد.
میشه گفت Checksum اثر انگشتی از یک داده می باشد. حالا این داده می خواد یک فایل باشه یا یک پکیجی که در شبکه درحال انتقال هست.
شما این اثر انگشت رو بدست میارید، و در مواقع مورد نیاز دوباره این رو با فایل مربوطه مقایسه می کنید. اگر با هم برابر نبودند، به این معنا هست که فایل دچار تغییراتی شده. اگر این تغییر توسط هر برنامه ای غیر از برنامه شما انجام شده باشد، می تونیم نتیجه بگیریم که فایل آلوده شده.
از طریق الگوریتم های مختلفی میشه checksum داده مورد نظر رو بدست آورد مثل md5، SHAs...

Restlesa
دوشنبه 12 اردیبهشت 1390, 12:04 عصر
ممنونم دوست عزیز
میشه در مورد بدست آوردن مقدار Checksum یه توضیحی هم بدین و اگه سورسی کوچولو دارین هم بزارین ؟؟؟

ali.rezaei7
دوشنبه 12 اردیبهشت 1390, 12:57 عصر
ممنونم دوست عزیز
میشه در مورد بدست آوردن مقدار Checksum یه توضیحی هم بدین و اگه سورسی کوچولو دارین هم بزارین ؟؟؟

لینک زیر در مورد یک ActiveX است که توانایی بدست آوردن cheksum با الگوریتم های MD5,SHA-1,CRC32 و ... دارا می باشد:
http://rsp-checksum-ocx.rsp-software.softalizer.com/

لینک زیر هم یک ActiveX رایگان هست:
http://3d2f.com/programs/14-061-rsp-checksum-ocx-download.shtml

این لینک الگوریتم CRC32 رو شرح داده:
http://www.vbaccelerator.com/home/vb/code/libraries/CRC32/article.asp

volkswagen
چهارشنبه 14 اردیبهشت 1390, 22:36 عصر
سلام-
دوستان منبع فارسی از cheksum ندارند؟ (کد و توضیح بیش تر)
خیلی ممنون.

volkswagen
پنج شنبه 15 اردیبهشت 1390, 15:52 عصر
یعنی هیچ کدوم از دوستان در این مورد اطلاعاتی ندارند؟

محسن واژدی
پنج شنبه 15 اردیبهشت 1390, 16:55 عصر
متاسفانه بنده هرچندتا آموزش در این زمینه دارم انگلیسی است

volkswagen
پنج شنبه 15 اردیبهشت 1390, 19:34 عصر
سلام خدمت آقای "mohsenvj".
جنابعالی هیچ چیزی فراتر از توضیحاتی که دوستان گفتند نمیدونید؟
خیلی ممنون.

ali.rezaei7
پنج شنبه 15 اردیبهشت 1390, 20:00 عصر
دوستان منبع فارسی از cheksum ندارند؟ (کد و توضیح بیش تر)نوضیح بیشتری نداره. همانطور که گفتم مکانیزمیست:1- برای ایجاد شناسه یکتا برای داده ها 2- انجام عملیات تشخیص خطا و در برخی حالات ترمیم داده.
ساده ترش این هست که یک داده ای رو به تابعی که checksum رو محاسبه می کنه میدیم ، تو خروجی هم(با توجه به نوع الگوریتم) شناسه اون داده رو دریافت می کنیم.
اگه بخوام از مصارفش بگم. می تونم به فیلدی بنام checksum که در سرآیند بسته هایی که در شبکه های با معماری TCP/IP در حال انتقال هستند اشاره کنم. وظیفه این فیلد ذخیره کردن checksumی هست که از کل بسته/داده گرام بدست آمده است. این فیلد در سمت گیرنده بررسی می شه و در صورت بروز هرگونه خرابی، داده دوباره ارسال می شود.

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

سوالی بود در خدمتم.

volkswagen
پنج شنبه 15 اردیبهشت 1390, 20:52 عصر
سلام-خیلی ممنون از توضیحاتتون.اینها رو تو کتاب "ویروس کشی-تالیف:سید آرش حسینیان " نوشته بود.ببینید ازش چیزی متوجه میشید
هر بایت یک برنامه عددی بین 0 و 255 است.بعضی از این کدها برای نشان دادن متن،بعضی برای ذخیره اطلاعات،گروهی برای انجام عملیات محاسبه(جمع،ضرب،هجی کردن لغات و...)می باشد.
با این حال همه آنها از عددی بین 0و255 تشکیل شده اند.
تصور کنید که یک فابل ذخیره ای دارای 10 دستورالعمل 27و84و201و92و8و240و240و88و2و157 می باشد.
برای به دست آوردن checksum مربوط یه این فایل ارزش این کدها را با یکدیگر جمع کنید.
checksum به دست آمده برای این فایل مقدار 27+84+201+92+8+240+240+88+2+157 یا 1146 می باشد.ویروس ها به راحتی می توانند بعضی از این کدها را تغییر دهند.ولی امکان تغییر checksum فایل در هنگام هرگونه جایگزنی بیار زیاد می باشد.پس به راحتی می توان می توان به کمک checksum هرگونه تغییر در فایل را ردیابی نمود.

ali.rezaei7
پنج شنبه 15 اردیبهشت 1390, 21:07 عصر
سلام-خیلی ممنون از توضیحاتتون.اینها رو تو کتاب "ویروس کشی-تالیف:سید آرش حسینیان " نوشته بود.ببینید ازش چیزی متوجه میشید
هر بایت یک برنامه عددی بین 0 و 255 است.بعضی از این کدها برای نشان دادن متن،بعضی برای ذخیره اطلاعات،گروهی برای انجام عملیات محاسبه(جمع،ضرب،هجی کردن لغات و...)می باشد.
با این حال همه آنها از عددی بین 0و255 تشکیل شده اند.
تصور کنید که یک فابل ذخیره ای دارای 10 دستورالعمل 27و84و201و92و8و240و240و88و2و157 می باشد.
برای به دست آوردن checksum مربوط یه این فایل ارزش این کدها را با یکدیگر جمع کنید.
checksum به دست آمده برای این فایل مقدار 27+84+201+92+8+240+240+88+2+157 یا 1146 می باشد.ویروس ها به راحتی می توانند بعضی از این کدها را تغییر دهند.ولی امکان تغییر checksum فایل در هنگام هرگونه جایگزنی بیار زیاد می باشد.پس به راحتی می توان می توان به کمک checksum هرگونه تغییر در فایل را ردیابی نمود.

این نوشته میگه که بایت ها رو با هم جع می کنیم و از این طریق چک سام رو بدست میاریم. و زمانی که ویروس فایل رو تغییر داد از طریق چک سامی که داریم می تونیم به این موضوع پی ببریم. مطلبی رو گفت که من از اولین پستم تو این تاپیک در حال تکرار کردنش هستم:گریه:.
ولی روشی که انتخاب کرده مشکل داره. مثلا دوتا فایل داریم 51و13و17 و دومی 13و17و51 این دوتا با هم براربر نیستند . ولی نتیجه checksumی که میده برابر هست. دلیلش هم که مشخص هست دیگه. چون جمع بایت های این دو فایل یه خروجی رو بر میگردونه. به خاطر همین باید در انتخاب الگوریتم تمام موارد رو در نظر داشته باشید.

volkswagen
پنج شنبه 15 اردیبهشت 1390, 22:50 عصر
خیلی ببخشید
اینکه گفتید آسونه ،حالا چجوری این کارو بکنیم؟

volkswagen
شنبه 17 اردیبهشت 1390, 00:30 صبح
دوست عزیز پس چی شد؟!
بنده می خوام از این تکنیک در ساخت آنتی ویروس کمک بگیرم؟
به نظر شما شدنیست؟

ali.rezaei7
شنبه 17 اردیبهشت 1390, 01:16 صبح
دوست عزیز پس چی شد؟!
بنده می خوام از این تکنیک در ساخت آنتی ویروس کمک بگیرم؟
به نظر شما شدنیست؟

دوست خوبم. چی شده؟ من که تمام موارد فنی رو گفتم. فقط مونده طراحی یک الگوریتم که اونم با توجه به هوش و ذکاوتتون باید پیاده سازیش کنید.
تنها راهی که می تونید برای شناسای ویروس ها ستفاده کنید همین هست. می تونید ویروسهای مختلف ور جع اوری کنید و چک سام آن ها رو بدست آورید. و سپس فایلهای مورد نظر رو با آن مقدارها بررسی کنید-اگر برابر بودند، به این معناست که اون یک ویروس هست.

volkswagen
شنبه 17 اردیبهشت 1390, 15:09 عصر
نه منظورم این هست که میشه بدون داشتن بانک اطلاعاتی از این روش استفاده کرد و یا اینکه حتما باید مثل آنتی ویروس ها یک بانک اطلاعاتی داشت و آن را بروز کرد؟

ali.rezaei7
شنبه 17 اردیبهشت 1390, 15:30 عصر
نه منظورم این هست که میشه بدون داشتن بانک اطلاعاتی از این روش استفاده کرد و یا اینکه حتما باید مثل آنتی ویروس ها یک بانک اطلاعاتی داشت و آن را بروز کرد؟

باید checksumهایی رو که از فایل های مخرب بدست آوردید رو در محلی نگه داری کنید.

volkswagen
شنبه 17 اردیبهشت 1390, 17:33 عصر
ببخشید ، شما هیچ تکنیکی رو سراغ ندارید که به دنبال یکسری کدها در فایل مورد نظر بگردیم و در صورت پیدا کردن اون کد ، فایل مورد نظر را ویروس معرفی کنیم؟
خود آنتی ویروس ها غیر از بانک اطلاعاتی از این تکنیک هم استفاده می کنند.
خیلی ممنون.