PDA

View Full Version : انتخاب انتخاب زبان برای نوشتن آنتی ویروس



qazwsx
دوشنبه 13 خرداد 1387, 13:48 عصر
سلام خسته نباشید آقا یه آنتی ویروس ساده هست میخوام بنویسم کدوم محیط برای نوشتنش ساده هست
delphi,c++builder or vc

B_YAGHOBI
دوشنبه 13 خرداد 1387, 13:57 عصر
هيچ فرقي نميكند به هر زباني مسلط هستيد بنويسيد در حال حاضر همه زبانها به توابع API و همچنين

بصورت برنامه نويسي سطح پايين امكان پذير هستند.

qazwsx
دوشنبه 13 خرداد 1387, 15:05 عصر
کدوم از نظر سرعت اجرا از بقیه سریع تر اجرا میشه و حجم فایله exe از بقیه کمتره

Mehdi Asgari
دوشنبه 13 خرداد 1387, 15:12 عصر
اگه فقط اسکنر مد نظرتون هست و کارای پیشرفته و خفن (مثل نوشتن درایور فایل سیستم) نمی کنید ، می تونید تقریبا با هر زبانی این کار رو بکنید.


این دو تا آنتی ویروس های اپن سورس هستند:
http://www.clamwin.com/ (پایتون و C++)
http://www.openantivirus.org/

اگه C بلد باشید ، از همه سریعتره

qazwsx
دوشنبه 13 خرداد 1387, 15:19 عصر
اگه فقط اسکنر مد نظرتون هست و کارای پیشرفته و خفن (مثل نوشتن درایور فایل سیستم) نمی کنید ، می تونید تقریبا با هر زبانی این کار رو بکنید.


این دو تا آنتی ویروس های اپن سورس هستند:
http://www.clamwin.com/ (پایتون و C++)
http://www.openantivirus.org/

اگه C بلد باشید ، از همه سریعتره

با سی مشکل ندارم تنها چیزی که برام مهمه سرعت اجرا و اشغال نکردن حافظه در زمان اجرا هست کدوم محیط سی از همه بهتره c++ builder or vc

Mehdi Asgari
دوشنبه 13 خرداد 1387, 15:49 عصر
برای همین گفتم "اگه"
شما اگه در استفاده از زبان C و کتابخانه هاش و مفاهیمی مثل مدیریت حافظه و همچین آشنایی با کامپایلر مورد استفاده تون (سویچ های مختلف و ....) و روش های بهینه سازی ، مشکلی نداشته باشید ، فرق چندانی نخواهد کرد که از کدوم استفاده کنید.
(نظر شخصی: من معمولا از gcc استفاده می کنم ، چون در کل پورتش راحت تره. رو ویندوز هم با mingw در دسترسه؛ اگه قرار باشه فقط روی ویندوز کار کنم میرم سراغ Microsoft compiler (یا به قول شما VC))

qazwsx
دوشنبه 13 خرداد 1387, 17:03 عصر
برای همین گفتم "اگه"
شما اگه در استفاده از زبان C و کتابخانه هاش و مفاهیمی مثل مدیریت حافظه و همچین آشنایی با کامپایلر مورد استفاده تون (سویچ های مختلف و ....) و روش های بهینه سازی ، مشکلی نداشته باشید ، فرق چندانی نخواهد کرد که از کدوم استفاده کنید.
(نظر شخصی: من معمولا از gcc استفاده می کنم ، چون در کل پورتش راحت تره. رو ویندوز هم با mingw در دسترسه؛ اگه قرار باشه فقط روی ویندوز کار کنم میرم سراغ Microsoft compiler (یا به قول شما VC))
من هم یه چنتا جای دیگه هم که مشورت کرم برای این کار vc رو به c++builder ویا دلفی ترجیح میدادن . ممنون از راهنمایت اگه دوستان نظری دیگه ای ندارن من با vc شروع کنم

B_YAGHOBI
دوشنبه 13 خرداد 1387, 17:06 عصر
اصلا ربطي به c يا c++ يا غيره نداره به نوع برنامه نويسي شما بستگي داره به الگوريتم هاي تشخيص ويروس

شما بستگي داره و ...

پس باز هم ميگويم به هر زباني مسلط هستي با همون بنويس.

qazwsx
دوشنبه 13 خرداد 1387, 17:11 عصر
اصلا ربطي به c يا c++ يا غيره نداره به نوع برنامه نويسي شما بستگي داره به الگوريتم هاي تشخيص ويروس

شما بستگي داره و ...

پس باز هم ميگويم به هر زباني مسلط هستي با همون بنويس.

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

B_YAGHOBI
دوشنبه 13 خرداد 1387, 17:54 عصر
براي همين ميگويم بستگي به تسلط شما به زبان برنامه نويسي داره. بايد آنقدر حرفه ايي باشيد كه يك مديريت

حافظه خوب با يك الگوريتم شناسايي ويروس بنويسيد كه با سرعت مناسب و با يك حافظه بهينه كار كنه.

به نظر من بهتره شروع كنيد بعد آروم آروم آنرا بهينه كنيد.

B_YAGHOBI
دوشنبه 13 خرداد 1387, 17:58 عصر
در ضمن يك آنتي ويروس بسيار عالي بزبان دلفي بصورت OpenSource بنام
Moon Secure Antivirus

هم وجود داره ميتوانيد آنرا ببينيد :


http://sourceforge.net/projects/moonav/

vcldeveloper
دوشنبه 13 خرداد 1387, 23:23 عصر
چیزی که اینجا برام اهمیت داره یکی سرعت اجرا و اشغال نکردن بیش از حد حافظه در زمانی که برنامه run هست ولی من در رابطه با حافظه تو برنامه نویسیهای مختلف و سرعت اجرای برنامه ها اطلاع زیادی ندارمزبان های برپایه C در این زمینه توفیق خاصی نسبت به دلفی ندارند. نهایتش اینه که مجبور بشید کل برنامه را مستقیما با استفاده از APIهای ویندوز پیاده سازی کنید؛ خب این رو هم ++VC بهتون میده، هم دلفی.
البته دقت کنید که آنتی ویروس های خوب از تکنیک های مختلفی هم برای تحت نظر گرفتن رفتار برنامه ها و پیدا کردن برنامه های مشکوک، و همچنین امنیت خود آنتی ویروس استفاده می کنند که برای پیداسازی آنها از روال های سطح کرنل استفاده میشه. با کامپایلر دلفی نمی تونید کد سطح کرنل تولید کنید، و این بخش از کدها باید با ++VC یا C++ Builder نوشته بشند.

qazwsx
سه شنبه 14 خرداد 1387, 12:20 عصر
. با کامپایلر دلفی نمی تونید کد سطح کرنل تولید کنید، و این بخش از کدها باید با ++VC یا C++ Builder نوشته بشند.
پس به طور کلی برای تولید کد در سطح کرنل متونیم از c++builder هم استفاده کرده من یه برنامه برای محیط های vc2008 و c++builder2007 نوشتم هر دو یه کار انجام میدادن خطهای برنامه هم تقریبا یکی بودم حجم برنامه با vc در حدود 302k شد و با c++builder در حدود 198k فکر کنم c++builder کدها رو بهینه تر اجرا میکنه

Inprise
سه شنبه 14 خرداد 1387, 17:36 عصر
حجم كد توليد شده ارتباط يك به يكي با بهينگي اجرا نداره و تحت تاثير فاكتورهاي مختلفي است . برنامه هاي متداول سي++ بيلدر از VCL استفاده ميكنند كه يك كتابخانه User Mode است و طبعا هيچ ارتباطي به كرنل نداره و امكان استفاده از اون براي توليد درايور نيست . خود سي++ بيلدر هم محيط خوبي براي ساختن درايور نيست و نسخه هاي اخيرش هم كه اساسا با DDK هاي جديد كار نميكنه . در كل براي كرنل محصولات غير مايكروسافتي رو فراموش كن .

نوشتن يك انتي ويروس خيلي كامل كار فوق العاده دشوار و بزرگي است . از قضا قسمت كرنلش چالشهاي زيادي داره . اگر دنبال چنين مسائلي هستي بخش دلفي فروم مناسبي برات نيست . اگر دنبال نوشتن يك برنامه User Mode هستي كه از امكانات VCL و كامپوننتهاي وسيعي كه در دسترس هستند استفاده كنه دلفي شروع خوبي است . محصولات شركت پاندا از دلفي و سي++ بيلدر استفاده ميكنن ، منهاي درايورهاش . اين ميتونه بهت كمك كنه مطمئن بشي كه اين مسير بي جواب نميمونه . ولي بطور كل اگر قرار هست كه آنتي ويروس بنويسي كدها بايد تا حد ممكن بهينه باشند . VCL رو براي چنين منظور و مقصودي ننوشتن . MFC رو هم همينطور . بنابراين بايد روتينهاي سطح پائين خودت رو بنويسي و با توابع سيستم عامل كار كني . از اينجا به بعد ، فن مهم هست نه كامپايلر .

qazwsx
سه شنبه 14 خرداد 1387, 18:13 عصر
حجم كد توليد شده ارتباط يك به يكي با بهينگي اجرا نداره و تحت تاثير فاكتورهاي مختلفي است . برنامه هاي متداول سي++ بيلدر از VCL استفاده ميكنند كه يك كتابخانه User Mode است و طبعا هيچ ارتباطي به كرنل نداره و امكان استفاده از اون براي توليد درايور نيست . خود سي++ بيلدر هم محيط خوبي براي ساختن درايور نيست و نسخه هاي اخيرش هم كه اساسا با DDK هاي جديد كار نميكنه . در كل براي كرنل محصولات غير مايكروسافتي رو فراموش كن .

نوشتن يك انتي ويروس خيلي كامل كار فوق العاده دشوار و بزرگي است . از قضا قسمت كرنلش چالشهاي زيادي داره . اگر دنبال چنين مسائلي هستي بخش دلفي فروم مناسبي برات نيست . اگر دنبال نوشتن يك برنامه User Mode هستي كه از امكانات VCL و كامپوننتهاي وسيعي كه در دسترس هستند استفاده كنه دلفي شروع خوبي است . محصولات شركت پاندا از دلفي و سي++ بيلدر استفاده ميكنن ، منهاي درايورهاش . اين ميتونه بهت كمك كنه مطمئن بشي كه اين مسير بي جواب نميمونه . ولي بطور كل اگر قرار هست كه آنتي ويروس بنويسي كدها بايد تا حد ممكن بهينه باشند . VCL رو براي چنين منظور و مقصودي ننوشتن . MFC رو هم همينطور . بنابراين بايد روتينهاي سطح پائين خودت رو بنويسي و با توابع سيستم عامل كار كني . از اينجا به بعد ، فن مهم هست نه كامپايلر .
مرسی خیلی چیزا برام روشن شد