PDA

View Full Version : مبتدی: چگونه یک ویروس یاب بنویسم؟



q.fahimeh
سه شنبه 03 فروردین 1389, 13:54 عصر
سلام سال نو مبارک
ببخشید من در مورد یه برنامه از دوستان کمک میخواستم
چه جوری می تونم یه برنامه بنویسم که مثل یه آنتی ویروس عمل کنه و فایلهای ویروسی منو شناسایی کنه؟ هر فایلی که دارای دو تا پسونده فایل ویروسی مثلا *.exe.dat
نحوه ی نوشتن کد سرچ بطوری که بتونه تمام فایل های کامپیوترمو برگرده نمیدونم
میشه منو راهنمایی کنید؟

Netsky
سه شنبه 03 فروردین 1389, 15:31 عصر
با سلام .
به نظر من نوشتن یه آنتی ویروس با زبان های تحت دات نت مثل VB و سی شارپ کار درستی نیست . چون این زبانهای سرعت پایینی دارند و در آنتی ویروس ها هم به چیزی که اهمیت زیادی داده میشه سرعته . بنابراین بنده به شما پیشنهاد میدم از زبان هایی که دارای سرعت بیشتری هستن استفاده کنید . مثل C++‎ و یا C .


هر فایلی که دارای دو تا پسونده فایل ویروسی مثلا *.exe.dat

خیلی منظورتون رو از این جمله متوجه نشدم . آیا منظورتون اینه که هر فایل دارای پسوند exe و یا dot ویروسی هستند ؟؟؟ اگه منظورتون اینه باید بگم که کاملا اشتباهه ( احتمالا منظور شما دوست عزیز این نبوده ) .
ولی بازم برای شناسایی فایل آلوده باید کدهای داخل فایل رو آنالیز کرد و برای اینکار باید دانش بالایی در این زمینه داشت .


نحوه ی نوشتن کد سرچ بطوری که بتونه تمام فایل های کامپیوترمو برگرده نمیدونم

این مورد هم کار بسیار زمانبریه . البته شما میتونید از Thread ها استفاده کنید ولی بازم زمان زیادی صرف عمل فراخوانی فایل ها میشه .
حالا از این موارد بگذریم . یه کد کوچیک در اختیارتون میزارم که چند مدت پیش نوشته بودم . کار این کد این بود که میومد و فایل های داخل یه پوشه ( با فرمت خاص ) رو بر میگردوند .



public void Get_Files_Special_Extention(string Folder)
{
string Extention;
int Case_Sens;
// Case_Sens mean Case Sensitivity.
//======================================

ListBox LSTBOX = new ListBox();
LSTBOX.Size = new Size(300, 400);
this.Controls.Add(LSTBOX);

//======================================

if (!Directory.Exists(Folder))
{
MessageBox.Show("Invalid This Folder : " + Folder, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
foreach(string strFiles in System.IO.Directory.GetFiles(Folder))
{
Extention = Path.GetExtension(strFiles);
//=========
Case_Sens = string.Compare(Extention, ".EXE", true);
//=========
if (Case_Sens == 0)
{
LSTBOX.Items.Add(strFiles);
}
}
}
}

شما باید کد رو توسعه بدی . به اینصورت که اول باید درایوهای سیستم رو بدست بیارید و بعد فولدرهای داخل هر درایو رو و بعد فایل ها یا احتمالا زیر پوشه ها رو .
در هر صورت براتون آرزوی موفقیت میکنم .

q.fahimeh
سه شنبه 03 فروردین 1389, 19:18 عصر
یه دنیا ممنون از راهنمایی کامل و خوبی که کردید
فایل هایی که داری دو پسوند هستند فایل های ویروسی هستند!!! مگه اینطور نیست؟؟؟؟؟؟؟؟
اگرنه پس راه شناسایی ویروسا چیه؟؟؟؟

متاسفانه من اینکارو حتما باید با دات نت انجام بدم

Rejnev
سه شنبه 03 فروردین 1389, 19:44 عصر
فایل هایی که داری دو پسوند هستند فایل های ویروسی هستند!!! مگه اینطور نیست؟؟؟؟؟؟؟؟
اگرنه پس راه شناسایی ویروسا چیه؟؟؟؟


آنتی ویروس ها از روی دیکشنری ای که دارند ویروسها رو شناسایی می کنند
من یک مقاله رو در این زمینه ترجمه کردم یادمه که یکی از راهها دیکشنری بود
راه دیگه اینه که از روی رفتار یک برنامه مخرب اون رو شناسایی میکنند. که لازم نیست حتما اون فایل با نمونه برنامه های روی دیکشنری تطابق داشته باشه تا آنتی ویروس بتونه شناساییش کنه.
بیشتر تمرکز آنتی ویروسها هم روی همینه که یک برنامه رو از روی رفتارش تحت نظر بگیرن
آنتی ویروس کارهای دیگه ای رو هم انجام میده(پیش گیری از آلودگی)
یکیش بستن پورتهای کم استفاده است. و کنترل روی ورودی خروجی ها
حتی میتونند تمامی برنامه ها رو هم خطرناک در نظر بگیرند و از اجراش جلوگیری کنند مگر این که خلافش ثابت بشه.
پس میبینید که اسکن فایل برای یافتن ویروس یکی از وظایف آنتی ویروس هست

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

thelastphoenix
سه شنبه 03 فروردین 1389, 20:25 عصر
سلام دوست عزیز

فایل هایی که داری دو پسوند هستند فایل های ویروسی هستند!!! مگه اینطور نیست؟؟؟؟؟؟؟؟
اگرنه پس راه شناسایی ویروسا چیه؟؟؟؟

دوست عزیز تا حدودی حرفتون درسته ولی
فایل های دو پسوندی زیادی دازیم که ویروسی نیستن..خیلی از نرم افزار ها
که در حال کار روی یک فایل هستن بنا به دلایلی یک پسوند موقتی به اخر اسم اضافه منکن
و یک سری از فایل ها سیستمی هم دو پسوندی هستند...
اکر دقیقتر برسی کنی فایل رو به نتیجه مرسی
مثلا احتمال ویروسی بودن فایل file.txt.exe خیلی بیشتر از file.exe.manifest هست
باید دقیقتر فایل رو بررسی کنی


پس راه شناسایی ویروسا چیه؟؟؟؟
خیلی سوالت وسیعه چون ویروسی شدن یک فایل خیلی ابعاد مختلفی داره و تشخیص
هم راه های مختلف داره...
مثال. اضافه شدن یک فایل به فایل دیگر ویا تشخیص اینکه فایل a.exe ایا واقعا exe هست!!! اینم یه مسله
سوالتو دقیقتر بگو


متاسفانه من اینکارو حتما باید با دات نت انجام بدم


به نظر من نوشتن یه آنتی ویروس با زبان های تحت دات نت مثل VB و سی شارپ کار درستی نیست . چون این زبانهای سرعت پایینی دارند و در آنتی ویروس ها هم به چیزی که اهمیت زیادی داده میشه سرعته . بنابراین بنده به شما پیشنهاد میدم از زبان هایی که دارای سرعت بیشتری هستن استفاده کنید . مثل C++‎‎ و یا C .

اصلا متاسفاته نداره چون خوبی نداشته باشه بدی هم نداره

و در جواب دوست عزیزمون netsky خیلی قابل قبول نیست اصلا کلی نمی شه گفت و از طرفی می تونه با c dll بسازه dllimport کنه
که ظاهرا دوستمون محدودیت داره

از طرفی زبان های برنامه نویسی در حال حاضر انقدر قوی هستن که به همین سادگی ها ضعف
زبان برنامه نویسی مطرح نشه از نظر من اینجا هنر برنامه نویس مطرح می شه نه ضعف زبان.
در .net هم می شه نرم افزار هایی نوشت که بسیار سریعتر از c++ باشن حتی همین مورد دوستمون

دوست عزیز بازم اگه سوالت حل نشد دقیقتر بپرس در خدمتیم

q.fahimeh
سه شنبه 03 فروردین 1389, 23:30 عصر
دوستان عزیز mohammad_bagheraniوthelastphoenix
از راهنمایی که کردیدیه دنیا ممنونم ولی من قصد نوشتن کاسپراسکای یا یه آنتی ویروس قوی رو ندارم بهتر بود میگفتم یه شبهه آنتی ویروس یا یه برنامه ای که بتونه یه سری فایل رو شناسایی کنه راهنمایی که شما کردید خیلی پیشرفته است!!!(راحت بگم در سطح منه مبتدی نیست)البته مشکل از منه که سطح اطلاعاتم فعلا در برنامه نویسی پایینه...

در مورد مطلبی که دوست عزیزNetsky مطرح کردن و کدی که نوشتن
Case_Sens = string.Compare(Extention, ".EXE", true);
من چه جوری میتونم از این محدودیت خارجش کنم که فایلهای با فرمت خاص مدنظر نباشه بلکه تمام فایلهای دو پسوندی با هر فرمتی باشه. در مورد thread کردنم نتونستم کاری از پیش ببرم

Netsky
چهارشنبه 04 فروردین 1389, 00:10 صبح
بازم سلام عرض میکنم خدمت همه دوستان عزیز .
فایل هایی که شما دوست عزیز به عنوان فایل های 2 پسوندی تصور کردین در حقیقت 2 پسوندی نیستن . به طور مثال این فایل رو در نظر بگیرید :



C:\Netsky.txt.exe

اون پسوند اولی ( txt. ) که ظاهرا نشون میده فایل متنی هستش یه نوع روش مهندسی اجتماعیه که بدافزارنویسان بکار میبرن تا با استفاده از این روش فریبنده خیال کاربر رو از نظر اجرایی نبودن فایل راحت کنن . چون همونطوری که همه میدنن فایل های متنی معمولا خطرناک نیستن . ( حالا فایل های Doc که توسط برنامه هایی مثل ورد تولید میشن رو فاکتور میگریم . به خاطر امکان خطرناک بودنشون به دلیل ماکروها ) .
خب بگذریم ، داشتم میگفتم . پس این روش فقط یه فریبه .
چون ما ( تا اونجایی که بنده اطلاع دارم ) فایل دو پسوندی نداریم ( بازم فایل های Temp رو فاکتورگیری کنید ) .
( خدا ذلیل کنه مایکروسافت رو با این روش فرمت گذاری فایل هاش :لبخند: )
بنابراین فایل دارای همون یه پسوند exe هستش .
حالا چرا ویروس نویس میاد این کار رو میکنه ؟؟؟
حتما میدونید که در سیستم عامل های خانواده ویندوز قابلیتی وجود داره که میشه بوسیله اون پسوندفایلها رو مخفی یا ظاهر کرد . حالا اگه این قابلیت روی عدم نمایش پسوندها تنظیم شده باشه ، بنابراین پسوند اصلی فایلها نشون داده نمیشه و همون پسوند دروغین به جای پسوند اصلی ظاهر میشه ( که در حقیقت این پسوند دروغین جزئی از نام فایله ) .
در پایان ویروس نویس یه آیکون خوشکل فایل Text رو هم میزاره تنگ برنامش و یا علی مدد .

بنابراین شما دوست عزیز باید قید این روش رو بزنید .
البته بازم منتظر نظر اساتید بزرگ هستیم .
موفق و سربلند باشید ............ :لبخندساده:

daivid_ d31r1
چهارشنبه 04 فروردین 1389, 00:47 صبح
سلام دوستان
چرا همش ما باید دنبال تایید خودمون ورد دیگران باشیم؟؟
دوستمون سوال پرسیدن و نگفتن دعوا کنیم!
خب چرا از اول شروع نکنیم!؟
همون چیزی که اقا محمد گفتن راهشه:
اول باید بدون باید بدونیم ویروس چی هست؟
بعد بریم سراغ تحلیل ویروس واینکه یک ویروس چطور تحلیل میشه ؟
از چه راههایی وارد میشه؟
راههای جلوگیری از ورود ویروس ...
لطفا با هم بحث زبان نکنیم که کدوم خوبه کدوم بده اونم تو هوایی!
________________________________
این ره که تو میروی به ترکستان است

Netsky
چهارشنبه 04 فروردین 1389, 01:17 صبح
سلام .

چرا همش ما باید دنبال تایید خودمون ورد دیگران باشیم؟؟
کسی اینجا دنبال تایید کردن خودش و خدایی نکرده رد کردن دیگران نیست . ما اینجا داریم با هم سر موضوع تاپیک بحث میکنیم .

دوستمون سوال پرسیدن و نگفتن دعوا کنیم!
خدا نکنه . کی دعوا کرده ؟؟؟

اول باید بدون باید بدونیم ویروس چی هست؟
لینک زیر از ویکی پدیاست . ساده ترین تعریف ویروس .
لینک (http://fa.wikipedia.org/wiki/%D9%88%DB%8C%D8%B1%D9%88%D8%B3_%D8%B1%D8%A7%DB%8C% D8%A7%D9%86%D9%87%E2%80%8C%D8%A7%DB%8C)

بعد بریم سراغ تحلیل ویروس واینکه یک ویروس چطور تحلیل میشه ؟
باید دانش زیادی در مباحث مربوط به امنیت داشتم باشیم ولی میشه آنالیزهای ساده تری رو هم انجام داد . ابزارهاش هم دو سه تا برنامه مثل Registry Monitor و File Monitor و ... هستش .

از چه راههایی وارد میشه؟
شبکه - فلش ها - مموری کارت ها و .....

راههای جلوگیری از ورود ویروس ...
روش های زیادی وجود دارن . البته همگی 100 % جواب نمیدن .

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

موفق باشید ...............

q.fahimeh
چهارشنبه 04 فروردین 1389, 10:30 صبح
بازم یه دنیا ممنون
اما حالا من باید چیکار کنم؟
حقیقتش گیج شدم قبلا میدونستم باید برنامه ای بنویسم که فایلهای دوپسوندی رو پیدا کنه
حالا باید چیکار کنم؟؟؟
فکرکنم باید ابتدا برنامه ای بنویسم که ویندوز رو روی نمایش فرمت فایل ها تنظیم کنه بعد فایلهای دو پسوندی رو پیدا کنه درسته؟؟؟؟؟؟؟؟؟؟

bia2download
چهارشنبه 04 فروردین 1389, 12:19 عصر
داداش من هم مثل تو دارم انتی ویروس مینویسم اما طوری که من فهمیدم 2 راه وجود داره

1- که باید از فایل های ویروسی امضای فایل بگیری و در دیتابیس برنامه ذخیره کنی و از اون برای پیدا کردن فایل ویروسی استفاده کنی (که من دارم دنبالش میگیردم)

2- یا سیستم رو به همراه نرم افزارهای در حال اجرا رو monitoring کنی که البته کار اسونی نیست . شدنیه ولی کمی وقت میبره


در ضمن باید بگم که ار dll های سیستمی استفاده کنی

مثل kernel32 که میتونه بهت کمک کنه تا از اتصال فلش دیسک ها یا مموری کارتها مطلع بشی

Netsky
چهارشنبه 04 فروردین 1389, 14:56 عصر
سلامی دوباره به همه دوستان .

فکرکنم باید ابتدا برنامه ای بنویسم که ویندوز رو روی نمایش فرمت فایل ها تنظیم کنه بعد فایلهای دو پسوندی رو پیدا کنه
دوست عزیز من که دارم میگم فایلها دو پسوندی نیستن و فقط دارای یه پسوندن . مثلا شما یه فایل شبیه فایل زیر روی سیستم ایجاد کن :



Netsky.exe.txt

دیدید که فایل به صورت فایل Text ذخیره میشه . پس نتیجه میگیریم که اون پسوند اولی یعنی ( exe. ) پسوند نیست بلکه جزئی از نام فایله و صرفا یه فریبه .
اگه بازم میخاید مطمئن بشید یه فایل دیگه با اسمی که در زیر قرار داده شده ایجاد کنید :



Netsky.txt.exe

پس نتیجه میگیریم که نوع فایل با سه حرف آخری که بعد از نقطه میان مشخص میشه .
پس بازم قضیه گشتن به دنبال فایل دوپسوندی منتفیه .
البته این کد رو قرار میدم تا با اون اگه خواستید بتونید قابلیت نمایش پسوندها رو فعال یا غیرفعال کنید .
واسه فعال کردن نمایش پسوندها :



Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\Advanced", "HideFileExt", 0, 4)

واسه غیر فعال کردنش هم از این کد استفاده کنید :



Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\Advanced", "HideFileExt", 1, 4)

اون عدد 4 که در آخر هر خط هست به این خاطره که مقداری که داریم تغییر میدیم از نوع DWORD هستش . اگه یکم با کلاس رجیستری کار کنید منظورم رو متوجه میشید . اگه مشکلی بود بازم در خدمتم .......
==========
پاسخ پست شماره 12 :

که باید از فایل های ویروسی امضای فایل بگیری و در دیتابیس برنامه ذخیره کنی و از اون برای پیدا کردن فایل ویروسی استفاده کنی (که من دارم دنبالش میگیردم)
ضمن آرزوی موفقیت برای شما باید عرض کنم که تا اونجایی که بنده اطلاع دارم روش CheckSum یا همون تطبیق امضا امروزه دیگه در آنتی ویروس ها استفاده نمیشه و منسوخ شده هست ( بازم میگم تا اونجایی که بنده اطلاع دارم ) .

یا سیستم رو به همراه نرم افزارهای در حال اجرا رو monitoring کنی که البته کار اسونی نیست . شدنیه ولی کمی وقت میبره
بله به نظر من هم راه خوبیه واسه آنالیز ویروس ها هستش . ابزاری های مثل Registry Monitor و File Monitor ابزارهای خوبی واسه اینکار هستن که البته اگه بشه خودمون یکیشو بنویسیم خیلی عالیه .

برای هر دو دوست عزیز خودم آرزوی موفقیت میکنم .......... :لبخندساده:

thelastphoenix
دوشنبه 09 فروردین 1389, 19:59 عصر
با سلام خدمت دوستان


اما حالا من باید چیکار کنم؟
حقیقتش گیج شدم قبلا میدونستم باید برنامه ای بنویسم که فایلهای دوپسوندی رو پیدا کنه
حالا باید چیکار کنم؟؟؟
فکرکنم باید ابتدا برنامه ای بنویسم که ویندوز رو روی نمایش فرمت فایل ها تنظیم کنه بعد فایلهای دو پسوندی رو پیدا کنه درسته؟؟؟؟؟؟؟؟؟؟

چرا این دوستمون رو گیجش می کنین!!! یک سوال ساده پرسید نگفت که معماری یه انتی ویروس
رو لایه به لایه انالیز کنید!!

Netsky (http://barnamenevis.biz/forum/member.php?u=72605) عزیز من با راه حل شما مخالف هستم ساده تر از این حرفاست

از طرفی اگر تو فکر تشکیل یک تیم هستین یا دنبال مثال می گردین که کد با c# سریعتر از
c++ باشه یه تاپیک جدید باز کنین که به نتیجه برسین


q.fahimeh (http://barnamenevis.biz/forum/member.php?u=64479) عزیز به برنامه زیر یه نگاهی بکنید من یک برنامه کوچیک نوشتم
که یک مسیر فایل دو پسوندی رو نمایش می ده
یه کلاس نوشتم واسه سرچ فایل درون دایرکتوری
و قسمت مهم کامل خط به خط توضیح دادم بازم اگه سوالی بود من در خدمتم
ولی بازم میگم هر دو پسوندی ویرروس نیست برای اطمینان از ویروس بودنشون
باید بیشتر بررسی کنی:چشمک:
مرحله مرحله برنامت رو دقیقتر کن تا به اون چیزی که می خوای برسی:چشمک:

Netsky
دوشنبه 09 فروردین 1389, 22:33 عصر
سلام .

چرا این دوستمون رو گیجش می کنین!!! یک سوال ساده پرسید نگفت که معماری یه انتی ویروس
رو لایه به لایه انالیز کنید!!

والا من قصد گیج کردن کسی رو نداشتم . فکر نکنم کسی هم اینجا یه آنتی ویروس رو آنالیز کرده باشه .

Netsky عزیز من با راه حل شما مخالف هستم ساده تر از این حرفاست
با کدوم یکیش ؟

از طرفی اگر تو فکر تشکیل یک تیم هستین یا دنبال مثال می گردین که کد با C#‎ سریعتر از
C++‎ باشه یه تاپیک جدید باز کنین که به نتیجه برسین
معمولا اینطور تاپیک هایی که راه میفتن یه عده اولش با اشتیاق میان و پست میدن ولی بعد از گذشت چند روز و نهایتا چند هفته همگی سرد میشن و بیخیال .

عزیز به برنامه زیر یه نگاهی بکنید من یک برنامه کوچیک نوشتم
که یک مسیر فایل دو پسوندی رو نمایش می ده
با تشکر از برنامه ای که نوشتید . ولی تجربیات من در زمینه بدافزارها نشون میده که این روش یعنی نام گذاری به اصطلاح دو پسوندی یه روش مهندسی اجتماعی ( Social Engineering ) هستش و عملا یه فایل نمیتونه 2 تا پسوند داشته باشه ( توضیحات کامل تر رو میتونید توی صفحه یک و یا پست شماره 13 همین تاپیک بخونید ) .

موفق باشید ............. :لبخندساده:

Amir Oveisi
پنج شنبه 12 فروردین 1389, 02:34 صبح
دوستان گرامی این تاپیک به دلیل اینکه داشت از موضوع اصلی منحرف می شد (و به شدت مستعد این امر بود) قفل شده بود که به دلیل درخواست ایجاد کننده تاپیک دوباره باز شد و البته پست های بی ارتباط حذف شدند. لذا از کلیه عزیزان خواهش می کنم که از بحث های متفرقه (مانند مقایسه سرعت زبان ها و تشکیل تیم و ...) خودداری کنند تا نظم تاپیک حفظ بشه.

با تشکر

q.fahimeh
پنج شنبه 12 فروردین 1389, 12:47 عصر
سلام
از دوست عزیز thelastphoenixبی نهایت ممنونم برنامه تون کاملا واضح بود
حالاکه مشکل فایل دوپسوندی حل شده میخوام بپرسم از بین این فایلهای دو پسوندی چجوری تشخیص بدم کدوم ویروسیه؟ایا با روش مانیتورینگ و امضای فایل که دوستان عزیز زحمت کشیدن و گفتن یا حالا که فایلهای دوپسوندی مشخص شدن راه سومی هم هست؟؟؟؟
ممنون

thelastphoenix
جمعه 13 فروردین 1389, 01:18 صبح
با سلام

ولی تجربیات من در زمینه بدافزارها نشون میده که این روش یعنی نام گذاری به اصطلاح دو پسوندی یه روش مهندسی اجتماعی ( Social Engineering ) هستش و عملا یه فایل نمیتونه 2 تا پسوند داشته باشه

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


حالاکه مشکل فایل دوپسوندی حل شده میخوام بپرسم از بین این فایلهای دو پسوندی چجوری تشخیص بدم کدوم ویروسیه؟ایا با روش مانیتورینگ و امضای فایل که دوستان عزیز زحمت کشیدن و گفتن یا حالا که فایلهای دوپسوندی مشخص شدن راه سومی هم هست؟؟؟؟

من پیشنهاد می کنم که برنامتو مرحله مرحله کامل کن .. روش های مانیتورینگ و امضا فایل روش های مفیدی هستن ولی این دو روش کلا برای ویزوس هاست نه صرفا فایل های دو پسوندی و از طرفی روش های مشکل هستند !!! البته خوبه.بزار برای تکمیل نهایی برنامت .

موضوع دو مسله ...
تشخیص نوع ویروس ها... و روش مقابله و یا جلو گیری

کلا فایل های دو پسوندی از نظر ویروسی بودن ویروس های با درجه خطر بالایی نیستن
من دو روش پیشنهاد می کنم ...

1)بررسی بیشتر فایل دو پسوندی
2)و تشخیص پسوند واقعی فایل ها نه اصلی ... واقعی ... که فایل فلان از نظر ساحختار فایل واقعا چه ساختاریه
و یا اینکه کلا بری سمت بررسی ویروس های خود فایل ....

=======
1)این قضیه رو بررسی کنیم ..بعضی فایل ها به دلیل کاربردی که دارن به صورت موقت به صورت
دو پسوندی در میان... مثل a.*.log a.*.dap a.*.temp و یا هم چین چیزایی
می تونیم لیستی از پسوندی قابل قبول رو بزاریم مثل مثال بالا و معتبر به حساب بیاریم
حالا فایل هایی که به دلیل ویروسی بودن دو پسوندین برای شروع من این پیشنهاد می دم
فایل هایی که یه پسوندشون exe هست احتمال bind کردن یک فایل دیگه بهشون هست
و مرحله بدی ما اون رو از نظر اتصال یک فایل دیگه بررسی می کنیم . روش مشکل نیست

2)خیلی مشکل و طولانیه و برای بررسی ویروس خیلی جالب نیست نمی ارزه

من فعلا این مسایل به ذهنم رسید

موفق باشید

Netsky
جمعه 13 فروردین 1389, 13:24 عصر
سلام.

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

داداش اینقدر موهاتو نکش . هر چی من میگم نره ، شما میگی بدوش . هر کاری که صلاح میدونید انجام بدید . اگه این کار رو بکنیم که آنتی ویروس به راحتی گول میخوره . در ضمن من کد شما رو هم دیده بودم . فایل های به اصطلاح دو پسوندی رو نشون میداد و کار خاص دیگه ای انجام نمیداد .

منظور ما هم از دو پسوندی پسوند اصلی و قسمت از نام که متاسفانه کد ندیدین
دوست عزیز من مگه چیزی غیر از این گفتم .

من پیشنهاد می کنم که برنامتو مرحله مرحله کامل کن .. روش های مانیتورینگ و امضا فایل روش های مفیدی هستن ولی این دو روش کلا برای ویزوس هاست نه صرفا فایل های دو پسوندی و از طرفی روش های مشکل هستند !!! البته خوبه.بزار برای تکمیل نهایی برنامت .
به نظر من روش مانیتورینگ و یا به اصطلاح زیر نظر گرفتن رفتار بدافزار روش بهتریه نسبت به امضا فایل . چون فرض کنید ما 400 الی 500 هزار تا فایل در یه سیستم داشته باشیم ( که یقینا بیشتر از این تعداد هم هست ).
حالا اگه ما بخایم امضا هر فایلی رو بگیریم ، در دیتابیس ذخیره کینم و در بازه های زمانی معین دوباره امضا هر فایل رو از دیتابیس فراخوانی و با امضا فعلی همون فایل مقایسه کنیم ..... :اشتباه: :گیج: سر گیجه گرفتم . واقعا کار زمان بر و نشدنیه . البته این روش در آنتی ویروس های به تاریخ پیوسته ای مثل Dr. Salmon ( درست اسمش رو یادم نیست . فکر کنم همین بود ) استفاده میشده و تا اونجایی که من میدونم دیگه منسوخ شده . چون اون موقع سیستم های کامپیوتری فضای ذخیره سازی زیادی نداشتن و این روش واسه اون موقع جواب میداد ولی الان دیگه نه .
الان دیگه روش های بسیار پیشرفته Heuristic جای اون روش ها رو گرفته . البته شاید بشه نمونه ای ساده از اون روش رو برنامه نویسی کرد . ولی بازم به قول دوستمون بسیار مشکله .

FastCode
شنبه 14 فروردین 1389, 00:15 صبح
من یه مشکل با قضیه دو پسوندی دارم و نمیدونم چرا هنوز به ذهن کسی نیومده.
ConsoleAppliacation1.exe.deploy
ConsoleAppliacation1.manifest.deploy
ConsoleAppliacation1.config.deploy
....

فرض کنید یه نفر آنتی فایل (اسمش رو نمیشه گذاشت آنتی ویروس) رو نصب کنه و فایل های خودش رو با خودش اسکن کنه.