PDA

View Full Version : گفتگو: شروع ساخت پروژه ی آنتی ویروس متن باز ایرانی ...



صفحه : [1] 2

Abbas Naghdi
سه شنبه 22 اسفند 1391, 18:22 عصر
به نام خداوندی خالق که انسان مخلوق را همچون خود خالق آفرید

گارد حفاظتی سایروس ... !

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

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

یه مدت پیش خیلی روی آنتی ویروس ها تعصب داشتم ... یه جورایی روی آویرا ... خیلی دوست داشتم خودم یه آنتی ویروس بسازم ... (هیچ وقت فکر نمیکردم روزی برنامه نویس بشم و توانایی این کار رو داشته باشم ...)
حالا که این فکر و علاقه ی من به یه هدف تبدیل شده ... دیگه همه ی کار ها پله پله خودشون طی میشن ...
برای این کار از دی ماه تا الان دارم در مورد ویروس ها تحقیق میکنم و خودم ویروس نوشتمو حتی ویروس هایی رو دانلود و تحلیل کردم و توانایی نوشتن آنتی ویروس برای این ویروس ها رو پیدا کردم
وقتی داشتم تحقیق میکردم چشمم به تایپیک (((پروژه ساخت آنتی ویروس))) در این بخش افتاد که از سال 87 تا الان هیچ نتیجه ای نداشته ... این تایپیک 93 پست تا الان داشته که من همشونو خودم و یه نتیجه گیری کردم ... معمولا ما برنامه نویسان ایرانی خلاق هستیم و فکر های بزرگی در سر داریم ... اما خیلی خود خواه هستیم و میخوایم همه ی دنیا به اسممون باشه و خیلی هم پول پرستیم و رایگان هیچ کاری نمیکنیم ... (نمیدونم)

یه نتیجه ای دیگه اینه که ما مدیریت نداریم (مثل ژاپنی ها و چینی ها و ...) ... !
یه مثال براتون میزنم ... (موزیلا یه شرکت نیست و چنتا نرم افزار بیرون داه که مهمه با نرم افزار هاش آشنا هستید ... این نرم افزار ها متن باز هستن که توسط برنامه نویسان داخلی و خارجی پشتیبانی میشن ... شاید بیشتر برنامه نویسان موزیلا همدیگرو هیچ وقت ندیده باشن و ... اما موزیلا مدیریت داره ... بنیاد موزیلا تونسته با مدیریت خوبش نرم افزاری همچون فایرفاکس رو به وجود بیاره ... اونم کاملا Open Source ... که از این راه درامد هم داره) ... کاش گوگل هم یه شرکت نبود ...

این در حالیه که شرکت هایی مثل مایکروسافت نرم افزار های استاندارد و متن بسته ای رو بیرون میده صرفا برای کسب سود ..

حالا کاری ندارم ... دارم از مبحث اصلی خارج میشم ... !
اصل مطلب ... یه مدت هست که دارم آنتی ویروس خودم رو مینویسم اما ...
وقتی شروعش کردم به همه چیزش فکر کردم الا پشتیبانیش ...
میدونید به چی فکر کردم ... با خودم فکر کردم که امکانداره وسطای کار نتونم کاملش کنم و یا شکست بخورم و یا اینکه نتونه یه محصول خوب باشه و ...
اما یه ریسک کردم ... یه ریسک برای تمام زمان آزادی که دارم .. زمانی که میره و دیگه بر نمیگرده ... داشتم به این چیزا فکر میکردم که یهویی یه چیزیبه ذهنم رسید (OPEN SOURCE) آره ... اگه متن باز باشه حتی اگه منم نباشم روزی میرسه که برنامه نویسان خلاق ایرانی تکمیلش میکنن و یا پشتیبانیش میکنن و این محصول رو به محصولی در سطح جهانی میرسونن ...
حالا گذشته از اینا خدایی یه نفره این کار تغریبا غییر ممکنه ...
حالا واقعا کمک نیاز دارم ... خیلی کمک نیاز دارم ... قرار نیست یه پروژه بنویسیم برای من .... قرای یه پروژه بنویسیم به اسم ایران برای تمام جهان ... نه به اسم ((جمهوری چک)) یا آلمان یا آمریکا یا ...

فینال : ...
برای این کار من زبان های C++‎‎‎‎‎‎‎ و C و ... (زبان های سطح میانه و پایین و بالا منفی زبان های وابسته به فرامورک) رو انتخاب کرم (رابطشو با Qt نوشتم)
حالا واقعا نیاز به کمک دارم ... کسی هست در این راه منو همراهی کنه ... ؟
اگر کسی هست لطفا یا در این تایپیک و یا با استفاده از ایمیل اعلان کنه ...

نکته : خوب فکر کنید ... و همینطوری تصمیم نگیرید چون من همه جوره روی تصمیمات شما ریسک میکنم ... !
نکته : لازم نیست صرفا زبان برنامه نویسی بلد باشی ... برای این کار من نیاز به کراکر ها و گرافیست ها و حتی کسانی که در ریاضیات و الگوریتم نویسی خوب هستن هم نیاز دارم (حتی کسانی که ایده دارن)
برای این کار به منتقدان هم نیازه ...

با احترام ... :

abbasnaghdi@outlook.com

FastCode
سه شنبه 22 اسفند 1391, 18:26 عصر
چرا به clam کمک نمیکنید؟خیلی مفیدتره.

smemamian
سه شنبه 22 اسفند 1391, 18:36 عصر
چرا به clam کمک نمیکنید؟خیلی مفیدتره.
شروع ساخت پروژه ی آنتی ویروس متن باز ایرانی ...

Abbas Naghdi
سه شنبه 22 اسفند 1391, 20:08 عصر
چرا به clam کمک نمیکنید؟خیلی مفیدتره.

با تشکر از smemamian

clam درسته که متن باز هست اما هم خارجی هست و هم برای لینوکس توسعه داده میشه ...
کلا از ساختار clam خوشم نمیاد ... قراره یه پروژه ی ملی و با همکاری خود ایرانی ها بسازیم ... !
نکته : من این آنتی ویروس را با qt شروع کردم به امید اینکه روزی برای mac و linux و android و ... هم باشه ... هرچند با استفاده از دیگر زبان ها و Api ویندوز این کار تغریبا غیرممکن هست اما یه جورایی میشه جداگانه توسعه داد ... !

FastCode
سه شنبه 22 اسفند 1391, 20:41 عصر
چرا دوست دارید همه چیز رو ملی کنید و برچسب بزنید؟بودجه میدن؟

اگر خیلی Qt دوست دارید یک Interface برای clam بنویسید.
قول میدم upstream هم merge بشه.چون من هم قبول دارم که از tk زیباتره.

در ضمن clam نسخه ویندوز هم داره
clamwin.com

بهروز عباسی
سه شنبه 22 اسفند 1391, 23:17 عصر
درود به همه
وقتی این همه آنتی ویروس خوب هستند که در طی سالیان گذشته هم امتحان خودشون رو پس دادن ، صرف وقت و هزینه کار بی خودی نیست؟؟
البته قصد بی احترامی به نظر و تصمیم شما رو ندارم.

فرض کنیم شما یک آنتی ویروس ملی رو از صفر ساختید چند درصد از کاربران کامپیوتری ایران ازش استفاده می کنند؟شاید برچسب ملّی بودن اوایل کار کمی کاربر جذب کنه اما چون مسلماً در ابتدای کار خیلی از ابزارهای روز دنیا عقب تره پس از مدتی ،حداقل برای کاربران عادی به درد نخور یا ضعیف و ... خواهد بود.
همه دنبال Nod هستند:لبخند:

اگر چنین کاری انجام بشه پروژه فقط به خاطر Open Source بودن میتونه مورد توجه قرار بگیره ،اونم برای یه عدّه برنامه نویس مثل ما که بتونن کدها رو بفهمن و شاید اونو توسعه بدن.
که احتمال این هم به نظر من کمه.


و اما :

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

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


یه مدت پیش خیلی روی آنتی ویروس ها تعصب داشتم ... یه جورایی روی آویرا ... خیلی دوست داشتم خودم یه آنتی ویروس بسازم ... (هیچ وقت فکر نمیکردم روزی برنامه نویس بشم و توانایی این کار رو داشته باشم ...)
حالا که این فکر و علاقه ی من به یه هدف تبدیل شده ... دیگه همه ی کار ها پله پله خودشون طی میشن ...
درسته که خودتون دوست داشتید یک AV بسازید اما شاید این کار چیزی جز اختراع دوباره چرخ نباشه !
من خودم ترم قبل قصد نوشتن OS داشتم خیلی هم جدی بودم Boot Loader و ... رو هم نوشتم اما متوجه شدم کاری بیخوده و اگه ادامه هم میدادم تازه الان N سال پیش MS یا مثلاً LINUX بودم.


برای این کار از دی ماه تا الان دارم در مورد ویروس ها تحقیق میکنم و خودم ویروس نوشتمو حتی ویروس هایی رو دانلود و تحلیل کردم و توانایی نوشتن آنتی ویروس برای این ویروس ها رو پیدا کردم
وقتی داشتم تحقیق میکردم چشمم به تایپیک (((پروژه ساخت آنتی ویروس))) در این بخش افتاد که از سال 87 تا الان هیچ نتیجه ای نداشته ... این تایپیک 93 پست تا الان داشته که من همشونو خودم و یه نتیجه گیری کردم ... معمولا ما برنامه نویسان ایرانی خلاق هستیم و فکر های بزرگی در سر داریم ... اما خیلی خود خواه هستیم و میخوایم همه ی دنیا به اسممون باشه و خیلی هم پول پرستیم و رایگان هیچ کاری نمیکنیم ... (نمیدونم)برای کار روی ویروس ها حتماً باید یک Cracker حرفه ای باشید به برنامه نویسی سیستمی تسلط داشته باشید و... و اگر شما فقط برنامه نویس هستید برای انجام چنین کاری نیاز به گروی با دانش های گفته شده برای انجام این کار هستید که بازم هزینه داره و این افراد چنین کارهای رو رایگان انجام نمیدن (کسانی که من دیدم _ شاید هم افرادی باشند.)

اون خلاقیت گاهی اوقات توهمی بیش نیست چون معمولاً به نتیجه ای نمیرسه ، خلاقیت چیزی که بشه در عمل پیاده سازیش کرد (برنامه نویس های گل جسارت نشه).
اما خود خواهی : زندگی خرج داره ،اگه توی بازار کار هم باشی که میدونی چطوریه دیگه !
و دلیل دوم : چون ایران مثل USA نیست که برای Windows که سیستم عامله N دلار پول بدن که قدر Open Source رو بدونن و ازش حمایت کنن.
MSWin از Linux هم ارزون تره! اینطور نیست؟



یه نتیجه ای دیگه اینه که ما مدیریت نداریم (مثل ژاپنی ها و چینی ها و ...) ... !
یه مثال براتون میزنم ... (موزیلا یه شرکت نیست و چنتا نرم افزار بیرون داه که مهمه با نرم افزار هاش آشنا هستید ... این نرم افزار ها متن باز هستن که توسط برنامه نویسان داخلی و خارجی پشتیبانی میشن ... شاید بیشتر برنامه نویسان موزیلا همدیگرو هیچ وقت ندیده باشن و ... اما موزیلا مدیریت داره ... بنیاد موزیلا تونسته با مدیریت خوبش نرم افزاری همچون فایرفاکس رو به وجود بیاره ... اونم کاملا Open Source ... که از این راه درامد هم داره) ... کاش گوگل هم یه شرکت نبود ... این یک واقعیت تلخه . اما 100% نیست .چه میشه کرد.


این در حالیه که شرکت هایی مثل مایکروسافت نرم افزار های استاندارد و متن بسته ای رو بیرون میده صرفا برای کسب سود ..
MS شرکت مورد علاقه منه اگه به قول بچه ها "انحصار طلبی" نداشت Open Source هم بی معنی بود مثل چیزی که توی IRAN هست.
این شرکت باعث شده خیلی از ما برنامه نویس ها از طریق برنامه نویسی برای OSاش در آمد داشته باشیم ،بی انصافی نکنید این شرکت یک کار آفرینه .




حالا کاری ندارم ... دارم از مبحث اصلی خارج میشم ... !
اصل مطلب ... یه مدت هست که دارم آنتی ویروس خودم رو مینویسم اما ...
وقتی شروعش کردم به همه چیزش فکر کردم الا پشتیبانیش ...
میدونید به چی فکر کردم ... با خودم فکر کردم که امکانداره وسطای کار نتونم کاملش کنم و یا شکست بخورم و یا اینکه نتونه یه محصول خوب باشه و ...
اما یه ریسک کردم ... یه ریسک برای تمام زمان آزادی که دارم .. زمانی که میره و دیگه بر نمیگرده ... داشتم به این چیزا فکر میکردم که یهویی یه چیزیبه ذهنم رسید (OPEN SOURCE) آره ... اگه متن باز باشه حتی اگه منم نباشم روزی میرسه که برنامه نویسان خلاق ایرانی تکمیلش میکنن و یا پشتیبانیش میکنن و این محصول رو به محصولی در سطح جهانی میرسونن ...
حالا گذشته از اینا خدایی یه نفره این کار تغریبا غییر ممکنه ...
حالا واقعا کمک نیاز دارم ... خیلی کمک نیاز دارم ... قرار نیست یه پروژه بنویسیم برای من .... قرای یه پروژه بنویسیم به اسم ایران برای تمام جهان ... نه به اسم ((جمهوری چک)) یا آلمان یا آمریکا یا ...
وطن پرستی خیلی خوبه ،اما این کار متخصصینی لازم داره که ما کم داریم .هرکاری هم بکنیم بازم از اون کمپانی ها عقبیم
وقتی اکثزاً استفاده درست از اون ابزار های آماده رو بلد نیستند!!! ...

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


فینال : ...
برای این کار من زبان های C++‎‎ و C و ... (زبان های سطح میانه و پایین و بالا منفی زبان های وابسته به فرامورک) رو انتخاب کرم (رابطشو با Qt نوشتم)
حالا واقعا نیاز به کمک دارم ... کسی هست در این راه منو همراهی کنه ... ؟
اگر کسی هست لطفا یا در این تایپیک و یا با استفاده از ایمیل اعلان کنه ...

نکته : خوب فکر کنید ... و همینطوری تصمیم نگیرید چون من همه جوره روی تصمیمات شما ریسک میکنم ... !
نکته : لازم نیست صرفا زبان برنامه نویسی بلد باشی ... برای این کار من نیاز به کراکر ها و گرافیست ها و حتی کسانی که در ریاضیات و الگوریتم نویسی خوب هستن هم نیاز دارم (حتی کسانی که ایده دارن)
برای این کار به منتقدان هم نیازه ...


زبان C قدرت لازم رو داره.
شما برای این کار باید بتونی برنامه های Kernel Mode بنویسی
باید بتونی یک برنامه رو تحیلی کنی (چیزی مثل کرک)
با ساختار برنامه های اجرایی آشنایی داشته باشی.
بدونی روند اجرای یک برنامه در OS های مختلف (اگر قصد داری برای Win بنویسی فقط برای MSWin) رو بدونی.
طرز کار خود OS هم باید فول باشی تا AV شما در کارش خللی ایجاد نکنه.
آزمایش گاهی برای تجزیه و تحیلی ویروس ها.


و ... .


امید وارم کمکی کرده باشم.
موفق باشی.

Abbas Naghdi
چهارشنبه 23 اسفند 1391, 20:07 عصر
سلام بهروز جان و سلام بچه ها
به نکته های جالبی توجه کردین ...


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

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


فرض کنیم شما یک آنتی ویروس ملی رو از صفر ساختید چند درصد از کاربران کامپیوتری ایران ازش استفاده می کنند؟ شاید برچسب ملّی بودن اوایل کار کمی کاربر جذب کنه اما چون مسلماً در ابتدای کار خیلی از ابزارهای روز دنیا عقب تره پس از مدتی ،حداقل برای کاربران عادی به درد نخور یا ضعیف و ... خواهد بود.
همه دنبال Nod هستند:لبخند:

با نظر شما کاملا موافق هستم اما ... برچسب زدن نیست ... واقعا ما میخوایم در ساخت آنتی ویروس خود کفا بشیم ...
و اما ... وقتی محصولی خوب باشه و کیفیت خودشو ثابت کنه و با نیاز کاربران ایرانی هم خونی داشته باشه ... دلیلی بر وجود Nod و امثال این ها نیست ... نظر شما چیه ؟


اگر چنین کاری انجام بشه پروژه فقط به خاطر Open Source بودن میتونه مورد توجه قرار بگیره ،اونم برای یه عدّه برنامه نویس مثل ما که بتونن کدها رو بفهمن و شاید اونو توسعه بدن.
که احتمال این هم به نظر من کمه.

خب یکی از دلایل متن باز بودنش اینه که برنامه نویسان دیگه هم بتونن از کد هاش استفاده کنن و هم بتونن توسه بدن ... من نظرم اینه اگر محصولی خوب باشه توسعه دهنده ی خوب هم داره (مثلا من خیلی دوست دارم Visual Studio رو توسعه بدم ... اما ... )



به نظر شما این آنتی ویروس ها چند درصد از کاربرانو جذب کردن؟
حتماً خیلی کم بوده .
اینطوری هم هزینه لازم برای تحقیق و توسعه و ... محیا نمیشه و پیشرفتی در کار نیست !!
اول باید نیاز کابران و تشخیص بدیم و بعد ابزاری رو بسازیم تا حداقل هزینه اولیه برگرده.
درسته که خودتون دوست داشتید یک AV بسازید اما شاید این کار چیزی جز اختراع دوباره چرخ نباشه !
من خودم ترم قبل قصد نوشتن OS داشتم خیلی هم جدی بودم Boot Loader و ... رو هم نوشتم اما متوجه شدم کاری بیخوده و اگه ادامه هم میدادم تازه الان N سال پیش MS یا مثلاً LINUX بودم.

یه سوال ... آیا لینوکس BackTrack که مخصوص هکر هاست و صد ها نرم افزار داره رایگان ارزه نمیشه ... من از یک محصول رایگان صحبت نمیکنم ... اما تصور سود های میلیاردی رو هم نمیکنم ...
و البته ما قرار نیست با شرکت هایی مثل symantec رقابت کنیم ... !




برای کار روی ویروس ها حتماً باید یک Cracker حرفه ای باشید به برنامه نویسی سیستمی تسلط داشته باشید و... و اگر شما فقط برنامه نویس هستید برای انجام چنین کاری نیاز به گروی با دانش های گفته شده برای انجام این کار هستید که بازم هزینه داره و این افراد چنین کارهای رو رایگان انجام نمیدن (کسانی که من دیدم _ شاید هم افرادی باشند.)

به نظر شما یک نفر میتونه هم برنامه نویس باشه و هم کراکر و هم آنالیزور و هم و ... البته درست میگین ... اما اصل نرم افزار اصلی هست ... بعدا گروهی اصلی برای توسعه در نظر گرفته میشه ... هیچ نرم افزار متن بازی بی صاحب نیست ... هر متن بازی یک گروه اصلی داره ...


اون خلاقیت گاهی اوقات توهمی بیش نیست چون معمولاً به نتیجه ای نمیرسه ، خلاقیت چیزی که بشه در عمل پیاده سازیش کرد (برنامه نویس های گل جسارت نشه).
اما خود خواهی : زندگی خرج داره ،اگه توی بازار کار هم باشی که میدونی چطوریه دیگه !
و دلیل دوم : چون ایران مثل USA نیست که برای Windows که سیستم عامله N دلار پول بدن که قدر Open Source رو بدونن و ازش حمایت کنن.
MSWin از Linux هم ارزون تره! اینطور نیست؟


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



MS شرکت مورد علاقه منه اگه به قول بچه ها "انحصار طلبی" نداشت Open Source هم بی معنی بود مثل چیزی که توی IRAN هست.
این شرکت باعث شده خیلی از ما برنامه نویس ها از طریق برنامه نویسی برای OSاش در آمد داشته باشیم ،بی انصافی نکنید این شرکت یک کار آفرینه .

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



وطن پرستی خیلی خوبه ،اما این کار متخصصینی لازم داره که ما کم داریم .هرکاری هم بکنیم بازم از اون کمپانی ها عقبیم
وقتی اکثزاً استفاده درست از اون ابزار های آماده رو بلد نیستند!!! ...
اونا هزینه کردن بهترین ابزار ها در حال حاظر رو ساختن ما می خوایم استفاده کنیم.

باز هم میگم قرار نیست با شرکت هایی مثل symantec رقابت کنیم ... ! حد اقل در این اوایل کار ...



زبان C قدرت لازم رو داره.
شما برای این کار باید بتونی برنامه های Kernel Mode بنویسی
باید بتونی یک برنامه رو تحیلی کنی (چیزی مثل کرک)
با ساختار برنامه های اجرایی آشنایی داشته باشی.
بدونی روند اجرای یک برنامه در OS های مختلف (اگر قصد داری برای Win بنویسی فقط برای MSWin) رو بدونی.
طرز کار خود OS هم باید فول باشی تا AV شما در کارش خللی ایجاد نکنه.
آزمایش گاهی برای تجزیه و تحیلی ویروس ها.

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

و در آخر متن باز بودن یه آنتی ویروس میتونه خیلی خطرناک باشه ... تصور کنید که سورس Norton در اختیار هر ویروس نویسی قرار بگیره ... (برای این مشکل هنوز راهی پیدا نکردم ... نظر شما چیه ؟)

بهروز عباسی
چهارشنبه 23 اسفند 1391, 23:44 عصر
درودی دوباره به همه:کف:


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


و در آخر متن باز بودن یه آنتی ویروس میتونه خیلی خطرناک باشه ... تصور کنید که سورس Norton در اختیار هر ویروس نویسی قرار بگیره ... (برای این مشکل هنوز راهی پیدا نکردم ... نظر شما چیه ؟)

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

مثلاً : کد زیرو ببینید (من روی سیستم AV ندارم که تست کنم اما نمونه های بوده که تست هم کردم و جواب داده)
#include<Windows.h>
#include <iostream>
bool IsSandBoxiePresent( )
{
bool bPresent = false;
unsigned char bBuffer;
unsigned long aCreateProcess = (unsigned long)GetProcAddress( GetModuleHandle( "KERNEL32.dll" ),"CreateProcessA" );

ReadProcessMemory( GetCurrentProcess( ), (void *) aCreateProcess, &bBuffer, 1, 0 );

// If the first byte of CreateProcessA is equal to 0xE9 (JMP), then it is hooking
if( bBuffer == 0xE9 )
bPresent = true;

return( bPresent );
};

int main()
{
if (IsSandBoxiePresent()==true)

std::cout<<"IsSandBoxiePresent ";

system("pause");
return 0;
}


یا
/*
BitDefenderDefender.c
- Detect BitDefender sandbox emulation. Hella easy.
*/

#include <stdio.h>;

typedef enum {FALSE, TRUE} BOOL;

BOOL IsBDVM()
{
unsigned char m[2+4], rpill[] = "\x0f\x01\x0d\x00\x00\x00\x00\xc3";
*((unsigned*)&rpill[3]) = (unsigned)m;
((void(*)())&rpill)();

if(*((unsigned*)&m[2]) == 0x80010160)
return TRUE;

return FALSE;
}

int main()
{
if(IsBDVM())
printf("\nBitDefender VM Detected.\n");
else
printf("\nBitDefender VM Not Found.\n");

return 0;
}

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

بهروز عباسی
پنج شنبه 24 اسفند 1391, 00:13 صبح
کمی فکر کردم
اگه واقعاً قصد داری کاری انجام بدی برای شروع این کارها بد نیست (از نظر من)



انتخاب نوع AV : یعنی مثل Kaspersky بر اساس Databaseای که داره Virusها رو شناسایی کنه یا مثل NOD32 با (فکر کنم Artificial Intelligence).



اگه اولی بشه ، باید چند صد سالی وقت بذاریم دستی Virusها رو Analyze کنیم و مشخصاتشون رو وارد DB کنیم تا بعداً AV بتونه با استفاده از اون مشخصه ها Virus رو شناسایی کنه (مشخصه های مثل CRC یا MD5 Hash )
دومی باشه که من فعلاً نیستم پوستمون کندست ، البته نه به این شدت ولی بیشتر کار میبره.


فعلاً این دوتا رو مشخص کنید تا بعد

Abbas Naghdi
پنج شنبه 24 اسفند 1391, 09:49 صبح
بازم سلام به همه و مخصوصا بهروز جان ...


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

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

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


جدای از همه این حرف ها
تخصص اصلی شما چیه؟

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



انتخاب نوع AV : یعنی مثل Kaspersky بر اساس Database ای که داره Virus ها رو شناسایی کنه یا مثل (NOD32(Smart Security با (فکر کنم Artificial Intelligence).
اگه اولی بشه ، باید چند صد سالی وقت بذاریم دستی Virusها رو Analyze کنیم و مشخصاتشون رو وارد DB کنیم تا بعداً AV بتونه با استفاده از اون مشخصه ها Virus رو شناسایی کنه (مشخصه های مثل CRC یا MD5 Hash )
دومی باشه که من فعلاً نیستم پوستمون کندست ، البته نه به این شدت ولی بیشتر کار میبره.


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

سایت های اسکن آنلاین و یا سایت های آنتی ویروسه ها امضا های ویروس ها رو همیشه روی سایتشون به صورت هم تکی و هم کامل دارن (MD5 و SHA1) من خودم همین الان دیتا بیسی دارم تشکیل شده از بیش از 6000000 ویروس و ...
البته بجز امضای ویروس تحلیل ویروس ها هم روی این سایت هها قرار داره ... مثلا روی سایت های Symantec و MacAfee و یا همین ایمن خودمون که البته ویروس هاش یه مقدار تاریخ گذشته هست

در مورد هوش مصنوعی که باید بگم کاری نداره ... : دی (خب اگه اونا تونستن ما هم میتونیم ... !)
ما هم از روش های آنتی ویروس های دیگه استفاده میکنم ...مثل مجازی سازی و ...

یه خواهشی که دارم اینه که ... من در خواست دارم همه در این راه منو همراهی کنن ... نه اینکه منو در این راه نا امید کنن (دلیل ینکه تا الان این کار رو هیچ کس نتونسته داخل ایران به صورت کامل انجام بده همینه ... ما ایرانی ها به جای کمک کردن یا سنگ جلوی پای دیگران میندازیم و یا نا امیدشون میکنیم و یا بی تفاوت هستیم ... درست مثل مایکروسافت : دی)

بهروز عباسی
پنج شنبه 24 اسفند 1391, 11:29 صبح
درود

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


درجواب سوال شما باید بگم که من آنتی ویروس هایی که از هوش مصنوعی استفاده میکنن رو بیشتر از آنتی ویروس هایی که از پایگاه داده استفاده میکنن میپسندم ... دلیلش واظحه ...
جالبه که بدونید که من دو آنتی ویروس نود و کسپر و روی ویروس های خودم امتحان کردم ... نود بیشتر شناسایی کرد ... این در حالیه که خیلی ها میگن کسپر بهتره ... !
هر چند کسپر هم از هوش مندی استفاده میکنه و نود هم از پایگاه داده ... اما من آنتی ویروس هایی مثل نود رو بیشتر دوست دارم ...
پس آنتی ویروسی که میسازیم بر اساس هوش و پایگاه داده هست ... و امابرای شروع بهتر نیست فقط DB باشه چون با AI کمی مشکل داریم :
تا جای که من می دونم مثلاً NOD کدها رو بصورت مجازی اجرا میکنه و تشخیص میده که v هست یا نه (اگه اشتباه نکنم)

If the threat in question is a real virus and not a hoax, it is very likely that ESET NOD32 Antivirus detects it. ESET's active heuristic technology creates a virtual computer within the scanning engine which allows the scanner to observe what the program might do if allowed to run on a real computer. This can reveal potentially malicious activities that other detection techniques would not identify.
یعنی باید قبل از Win اجرا بشه که برای این کار باید توابع اجرای رو در سطح Kernel-Mode بوسیه Hook دنبال کنیم که بازم برنامه نویس Kernel-Mode که نداریم (در ابتدای کار)


سایت های اسکن آنلاین و یا سایت های آنتی ویروسه ها امضا های ویروس ها رو همیشه روی سایتشون به صورت هم تکی و هم کامل دارن (MD5 و SHA1) من خودم همین الان دیتا بیسی دارم تشکیل شده از بیش از 6000000 ویروس و ...
البته بجز امضای ویروس تحلیل ویروس ها هم روی این سایت هها قرار داره ... مثلا روی سایت های Symantec و MacAfee و یا همین ایمن خودمون که البته ویروس هاش یه مقدار تاریخ گذشته هستحالا که DB داریم که چه بهتر .
باید Multi Threading رو خورده باشی ،چون باید هر فایلی که قراره Scan بشه با تک تک ایتم های DB مقایشه بشه .
که این کار هم زمین گیره و هم باید سریع انجام بشه .


در مورد هوش مصنوعی که باید بگم کاری نداره ... : دی (خب اگه اونا تونستن ما هم میتونیم ... !)
ما هم از روش های آنتی ویروس های دیگه استفاده میکنم ...مثل مجازی سازی و ...
:لبخند:

یه خواهشی که دارم اینه که ... من در خواست دارم همه در این راه منو همراهی کنن ... نه اینکه منو در این راه نا امید کنن (دلیل ینکه تا الان این کار رو هیچ کس نتونسته داخل ایران به صورت کامل انجام بده همینه ... ما ایرانی ها به جای کمک کردن یا سنگ جلوی پای دیگران میندازیم و یا نا امیدشون میکنیم و یا بی تفاوت هستیم ... درست مثل مایکروسافت : دی) حاجی جان من بیخیال Microsoft شو .:لبخند:

موفق باشی.

بهروز عباسی
پنج شنبه 24 اسفند 1391, 11:34 صبح
به این تیکه دقت نرکده بودم :

یه خواهشی که دارم اینه که ... من در خواست دارم همه در این راه منو همراهی کنن ... نه اینکه منو در این راه نا امید کنن (دلیل ینکه تا الان این کار رو هیچ کس نتونسته داخل ایران به صورت کامل انجام بده همینه ... ما ایرانی ها به جای کمک کردن یا سنگ جلوی پای دیگران میندازیم و یا نا امیدشون میکنیم و یا بی تفاوت هستیم

فکر بد نکنی :لبخند:
من اگه حرفی زدم چیزی غیر از واقعیت بوده!!
اول باید چیزی که می خوایم رو خوب تحلیل کنیم بعد شروع به کار.

اون پروژه های هم که میگی بصورت کامل انجام نشدن نتیجه جوّ گیر شدن افراد بوده شب خوابیدن صبح بیدار شدن خواشتند فلان کارو انجام بدن بدون این که کمی نیاز سنجی کنن و ... .

خلاصه قصد من هم کمک کردنه نه چیز دیگه ای !

روز خوش:افسرده:

FastCode
پنج شنبه 24 اسفند 1391, 20:57 عصر
@runtime&OP
ببین عزیزم
برای اینکه یه برنامه ایرانی بتونه با قیمت مساوی با یک برنامه خارجی رقابت کنه باید هزار بار قویتر باشه.یا مخصوص کاربرد های شرکتهای داخلی باشد.
برات مثال میزنم.
من الان دارم یک موتور دیتابیس مینویسم.
برای اینکه با SQL مایکروسافت توی ایران رقابت کنم یا باید هر نسخه رو هزار تومن بفروشم یا هزار برابر امکانات داشته باشم.یا امکاناتی رو ارائه بدهم که رقبا به سختی فراهم میکنند.مطمئنا روش سوم رو پیش میگیرم.چون اولی و دومی عملا غیر ممکن هستن.
من برای همین دیتابیس دو تا سوال توی این سایت پرسیدم.(تنها سوالاتی که من توی این سایت پرسیدم و حذف نشدن البته پاسخی هم دریافت نکردن)
من رو هم خیلی ها ناامید کردن.خیلی هم مسخره شدم.ولی علت اینکه به پروژم اطمینان داشتم و جواب تمسخر ها رو دادم این بوده که POC داشتم و قبل از مطرح کردن پروژم در جایی مثل اینجا ۲ سال روش کار کردم.
هیچ کس به سوالاتم پاسخ نداد که باعث شد روی اون موارد بیشتر از ۲ ماه فکر کنم و طرحهایم رو عوض کنم.
که نتیجش شد یک دیتابیس با ساختار توزیع شده بدون هرگونه Coordinator که برای کسانی که مفهوم دیتابیس رو درک میکنند به اندازه کافی جالب هست که مجبورشون کنه یک لایسنس دیتابیس من رو از روی کنجکاوی هم که شده تهیه کنن.
ولی شب نخوابیدم صبح بیام اینجا بگم میخواهم با Oracle یا Microsoft یا مثل این مورد با Symantec رقابت کنم.(البته ادعا دارید که نمیخواهند توی اون سطح کار کنند که خودش جای تاسف هست)
شما هم اگر میخواهی آنتی ویروس بنویسی اول دنبال یک ایده نو باش.
اول مطالعه کنید.پروژه رو بشناسید.بهتون قول میدم توی هر زمینه ای اینقدر کتاب هست که نیاز به مشورت پیدا نکنید.

FastCode
پنج شنبه 24 اسفند 1391, 22:59 عصر
هدف opensource همیشه اضافه کردن امکانات و ررقابت با نمونه های تجاری و در صورت امکان سود بردن از روشهای جانبی مثل پشتیبانی یا مشاوره بوده.

ظاهرا شما با معماری OpenSource و روشهای تجاری سازی OpenSource آشنا نیستی.
توضیح اینکه چرا تصورتون اشتباهه خودش یک کتاب میشه.
بهتون پیشنهاد میکنم برای یک درک ساده اول راجع به Dual Licensing تحقیق کنید.
بعد انتقال لایسنس و مطالبی مثل license کار های مشتق(derivative) و کارهای وصله ای(patch)
بعدش زبون همدیگه رو میفهمیم

بهروز عباسی
جمعه 25 اسفند 1391, 01:53 صبح
اینه که ما همه چیز داریم .. ولی حال نداریم! می ترسیم .. درگیر افکار الکی میشیم .. جرأت ریسک رو به خودمون نمیدیم .. یا حتی بعضی هامون به پول فکر میکنیم...!
همه چی داریم؟؟؟:لبخند:

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

من به یک برنامه نویس حرفه ای برای نوشتن برنامه های Kernel-Mode نیاز دارم هستی ؟
به یک برنامه نویس مسلط سیستم عامل ویندوز نیاز دارم هستی ؟ بقیه Os ها بماند.
به یک تحلیلگر ویروس .. هستی ؟
به چند نفر متخصص در حوزه امنیت نیاز دارم هستی ؟
و ...

شاید شما یکی از موارد بالا رو بدونی بقیه چی ؟ خوب نداریم دوست عزیز نداریم.(مجانی نداریم باید پول بدی)

اون چیزی که شما بهش میگی افکار الکی و ریسک و... اصول مهندسی نرم افزاره ها !
ما کارمون اینه (شما رو نمیدونم) باید خرج زندگی رو در بیاریم.


تخصص خودشون رو با نوشتن یه برنامه حسابداری نشون میدن
بازار کار ایران اینو می طلبه ، شما مثلاً بشین بهترین برنامه بخش موزیکو بنویس 1000 تومن میشه ازش در اورد؟



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

حالا فهمیدم تخصصت چیه.
چنین پروژه های در زمان مناسب خودشونو نشون دادن اون زمان چندتا CMS خوب بود الان چند تا AV خوب هست ؟
(بهترین CMS هم کوچکترین جز یک AV خفن نمیشه)


حداقل اش اینه که توانایی خودتون رو سنجیدید ... تجربه ی کار گروهی رو کسب کردید ... مطمئنا چیزای جدید هم یاد خواهید گرفت ..
موافقم :لبخند:


FastCode (http://barnamenevis.org/member.php?109710-FastCode) کلاً باهات موافقم.

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

FastCode
جمعه 25 اسفند 1391, 12:37 عصر
مطمئنن درآمد ۱۰۰ تا جوجه برنامه نویس از ۱ طراح با سابقه بیشتره ولی دلیل نمیشه بیشتر بلد باشن.هک هم همینطوره.
یه انجمن مثل آشیانه یا هر انجمن هک دیگه ای روش هک رو تولید نمیکنه(حداقل ما ندیدیم mitre یا امثالهم اسمی ازشون بیارن).اینها فقط استفاده کننده هستن.تولید کننده ها افرادی هستن که با اسم متخصص امنیت ازشون یاد میشه.شاید جایی شنیده باشید.
گروه آشیانه چون تعداد اعضاش زیاده میتونه بیشتر هک کنه.و معروفتر بشه.و کف شما رو ببره.

UfnCod3r
جمعه 25 اسفند 1391, 13:50 عصر
من نمی خوام نا امید کنم ولی به نظرم این کارا رو بیخیال بشید بهتره .
تخصص که نداریم . پول که نداریم . کپی رایتم که نداریم .
شما فرض کن انتی ویروسو نوشتی خب اینو نمیخوای قاب کنی بزاری رو تاقچه که :دی یکی باید استفاده کنه .
پس انتی ویروست باید خوب باشه . انتی ویروس خوب هم برنامه نویس های حرفه ای می خواد اونا هم پول میخوان . با شکم گرسنه که نمیشه کد زد :کف:
به نظر من تمرکزت رو بزار رو ایده .
ایده های نو .
حالا تو هز زمینه ای (انتی ویروس، بازی، نرم افزار های دیگه و ...)
چرخ اختراع شده اونا که تو چرخ ساختن تخصص دارن بزار چرخشونو بسازن ما بریم یه چی دیگه بسازیم بهتر نیست ؟
نمونش خیلی از بازی ها هستن که کلی خرجش میشه چند صد نفر روش کار می کنن . اما این وسط یه بازی ساده و کم هزینه میاد به اسم Angry Birds که صد برابر بقیه فروش میره . چرا چون یه چیز جدیده .

FastCode
جمعه 25 اسفند 1391, 20:22 عصر
تا حدودی باهاتون موافقم ... ولی به نظرتون برای کسب تجربه و بالابردن سطح علمی و محک زدن خودمون هم که شده ... نمیشه استارتشو زد؟ ... حالا تا هر جایی بتونیم ادامه بدیم ... حداقل برای خودمون تجربه هایی کسب کردیم!
به نظر من ارزشش رو داره... به خصوص برای بنده که تجربه ی کمی در این زمینه دارم...
وقتی با یک مقدار تفکر بیشتر و با یک ایده بهتر میتونی به اهداف بهتری برسی باید بگم نه.

FastCode
جمعه 25 اسفند 1391, 21:42 عصر
اگر ایده داشتم که به شما نمیگفتم.خودم اجراش میکردم.
الان یک ایده opensource دارم که تازه توی github آپلودش کردم هنوز کامل آپلودش نکردم.فقط اسمش هست.
https://github.com/Behrooz-Amoozad/MVDB
اگر واقعا به OpenSource علاقه دارید خوشحال میشم کمک کنید.

Abbas Naghdi
یک شنبه 27 اسفند 1391, 11:02 صبح
با سلام و با تشکر از همه مخصوصا runtime عزیز
جالبه که توی این وضعیت 2 روز دسترسی به اینترنت من قطع شد ... ! ببخشید ... !

در حالی که شما ها در حال بحث بودیت من در حال طراحی آخر آنتی ویروس بودم ... ! (وقتی شروعش کردم قرار نبود با حرف و نظر کسی نا امید بشم)
حتی اگه خودم به تنهایی توسعه بدم ... باز هم توسعه میدم ... بالاخره این کار ثمره میده ... میگن نا برده رنج کنج میسر نمیشود ... میدونید که !
من این تایپیک رو زدم برای اعلان همکاری بچه های پایه ی این کار ...
کفتگویی که تا الان انجام دادیم قبلا داخل این تایپیک (http://barnamenevis.org/showthread.php?116901-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A2%D9%86%D8%AA%DB%8C-%D9%88%DB%8C%D8%B1%D9%88%D8%B3) بحث شده ...

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

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

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

با نام خدا و با یاد مهدی و برای سربلندی ایران و خودمون ... پروژه رو توسعه میدیم ... هست .. ؟

FastCode
یک شنبه 27 اسفند 1391, 11:16 صبح
ما پول نداریم ... تخصص نداریم ... کپی رایت نداریم ...:::: سیستم عامل رو نمیشناسیم ... برنامه نویسی سطح پایین بلد نیستیم ... قدرت رقابت نداریم ... زندگی به پول نیاز داره ... اگه پول نباشه چطوری زندگی کنیم ... حوصله ی کد نویسی هم نداریم ... کی حال داره این کار رو کنه ... کسی از این نرم افزار استفاده نمیکنه ... هوش مصنوعی بلد نیستیم ... کی پشتیبانی نمیکنه ... کی بلده این کار رو کنه ... هممون سر کاریم ... مگه الافیم ... بودجه نمیدن ... تا ناد مونده کی میاد از آنتی ویروس شما استفاده کنه ... نورتون بهتره ... شما تخصص دارید ... شما بلدیت آنتی ویروس بنویسید ... کرک و برنامه نویسی بلد هستید ... تحلیل ویروس چی ... ویروس چیه ... آنتی ویروس چیه ... چی به چیه ... .. !
به نظر من تقریبا همشون قابل حل هستن.مثل پول و سواد و پشتیبانی.
و حتی یک مشکل اساسی در همه رقبا وجود داره که شما با OpenSource بودن حل کردید.
اثبات عدم وجود نرم افزار جاسوسی و backdoor در آنتی ویروس که به نظرم خیلی مهمه.حداقل توی ایران.

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

موفق باشید.

بهروز عباسی
یک شنبه 27 اسفند 1391, 11:18 صبح
با سلام و با تشکر از همه مخصوصا runtime عزیز
جالبه که توی این وضعیت 2 روز دسترسی به اینترنت من قطع شد ... ! ببخشید ... !

در حالی که شما ها در حال بحث بودیت من در حال طراحی آخر آنتی ویروس بودم ... ! (وقتی شروعش کردم قرار نبود با حرف و نظر کسی نا امید بشم)
حتی اگه خودم به تنهایی توسعه بدم ... باز هم توسعه میدم ... بالاخره این کار ثمره میده ... میگن نا برده رنج کنج میسر نمیشود ... میدونید که !
من این تایپیک رو زدم برای اعلان همکاری بچه های پایه ی این کار ...
کفتگویی که تا الان انجام دادیم قبلا داخل این تایپیک (http://barnamenevis.org/showthread.php?116901-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A2%D9%86%D8%AA%DB%8C-%D9%88%DB%8C%D8%B1%D9%88%D8%B3) بحث شده ...

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

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

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

با نام خدا و با یاد مهدی و برای سربلندی ایران و خودمون ... پروژه رو توسعه میدیم ... هست .. ؟
نصف اون حرفا رو من زدم بازم میگم !!!

در مورد کار جدّی هم گه من نظرات خودمو گفتم :
چطوی باید شروع کنیم وقتی ابتدایی ترین مراحل رو هم طی نکردیم و نمیدونیم چی میخوایم ؟
برای شروع اگه با DB باشه بهتره چون فعلاً چه شما بخوای چه نخوای AI و سیستم مجازی نداریم !!
اگه تا اینجا رو موافقی بگو تا از اینجا به بعد رو ادامه بدیم ، اگر نه ؛ که هیچی ! چون من نمیتونم سیستم مجازیی طراحی کنم.البته اگر کسانی که چنین توانایی دارن اعلان آمادگی کنن من هستم.

روز خوش

بهروز عباسی
یک شنبه 27 اسفند 1391, 11:39 صبح
به این یه خط دقت نکرده بودم

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

اگه میشه بیشتر توضیح بده تا الان چکار کردی ؟
چه قابلیت های رو براش در نظر گرفتی ؟

Abbas Naghdi
یک شنبه 27 اسفند 1391, 13:27 عصر
به این یه خط دقت نکرده بودم


اگه میشه بیشتر توضیح بده تا الان چکار کردی ؟
چه قابلیت های رو براش در نظر گرفتی ؟

تو این 5 روز روزی یکی دو ساعت من تونستم از طراحی روی کاغد در محیط برنامه نویسی پیاده سازیش کنم ...
داخل فرم برنامه که فعلا 2 تا هست و قراره 10 فرم( یا همون 2 فرم) باشه من قابلیت هایی که یه نرم افزار آنتی ویروس باید داشته با شه رو پیاده سازی کردم
عکسشو آپلود کردم ببینید ... بعدا از همه ی صفحه هاش عکس میگیرم براتون تا ببینید (فعلا صفحه ی اصلی)

در مورد کد نویسی هم که شاید 100 خط نشه ... اما این کد نویسی صرفا برای رابط برنامه هست ...
البته فعلادارم روی الگوریتمی برای تبدیل فایل های یک پوشه یا درایو به MD5 کار میکنم ... (الگوریتم های زیادی با زبان C++‎‎ پیاده سازی شده اما به دلیل سرعت کم و فایل های زیاد برنامه کرش میکنه)
فعلا دارم روش کار میکنم ... امید وارم هرچه سریعتر افراد زیادی اعلان آمادگی کنن تا کار سریعتر پیش بره ...

اینم عکس پروژه ... البته گرافیکش برای طرح اولیه فکر کنم خوب باشه اما بعدا 100 برابر بهتر میشه ...

http://uploadtak.com/images/h6792_Cyrus.png

FastCode
یک شنبه 27 اسفند 1391, 13:49 عصر
تو این 5 روز روزی یکی دو ساعت من تونستم از طراحی روی کاغد در محیط برنامه نویسی پیاده سازیش کنم ...
داخل فرم برنامه که فعلا 2 تا هست و قراره 10 فرم( یا همون 2 فرم) باشه من قابلیت هایی که یه نرم افزار آنتی ویروس باید داشته با شه رو پیاده سازی کردم
عکسشو آپلود کردم ببینید ... بعدا از همه ی صفحه هاش عکس میگیرم براتون تا ببینید (فعلا صفحه ی اصلی)

در مورد کد نویسی هم که شاید 100 خط نشه ... اما این کد نویسی صرفا برای رابط برنامه هست ...
البته فعلادارم روی الگوریتمی برای تبدیل فایل های یک پوشه یا درایو به MD5 کار میکنم ... (الگوریتم های زیادی با زبان C++‎ پیاده سازی شده اما به دلیل سرعت کم و فایل های زیاد برنامه کرش میکنه)
فعلا دارم روش کار میکنم ... امید وارم هرچه سریعتر افراد زیادی اعلان آمادگی کنن تا کار سریعتر پیش بره ...

اینم عکس پروژه ... البته گرافیکش برای طرح اولیه فکر کنم خوب باشه اما بعدا 100 برابر بهتر میشه ...

http://uploadtak.com/images/j5967_Antivirus.png
من روی هش کردن گروهی فایل ها یک مقدار کار کردم.اگر کاری از دستم بر بیاد هستم
پیشنهاد من اینه که از finger-tree برای نگهداری hash فایلها به شکل گروهی استفاده کنید تا سرعت جست و جوی دیتابیستون کمتر بشه.البته این روش در تست فایلها تاثیری نداره.
اگر امکان داره پروژه رو بگزارید روی github یا sf.net که بتونیم کد رو بخونیم و ارسال patch راحتتر باشه.

(من نمیتونم full-time یا حتی part-time باشم ولی میتونم هر چند روز یک بار چند تا patch بفرستم.)

بهروز عباسی
یک شنبه 27 اسفند 1391, 16:17 عصر
البته فعلادارم روی الگوریتمی برای تبدیل فایل های یک پوشه یا درایو به MD5 کار میکنم ... (الگوریتم های زیادی با زبان C++‎‎‎ پیاده سازی شده اما به دلیل سرعت کم و فایل های زیاد برنامه کرش میکنه)
فعلا دارم روش کار میکنم ... امید وارم هرچه سریعتر افراد زیادی اعلان آمادگی کنن تا کار سریعتر پیش بره ... ببین دوست عزیز ،ظاهراً این پروژه فقط برای MSWin هستش دیگه نه ؟؟
اگه اینطوری باشه به احتمال 80درصد از Threadها استفاده نکردی (چون گفتی Crash میشه)
برای اینکار باید توی چند Thread جدا کارهاتو انجام بدی و در اخر نتایج رو دریافت کنی .

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

درضمن اگه میشه برای امشب یا امروز بعد ظهر یک ساعت رو مشخص کن تا باهم به این مسئله بپردازیم ،اینطوری بحث خیلی کند پیش میره!

Abbas Naghdi
یک شنبه 27 اسفند 1391, 17:22 عصر
ببین دوست عزیز ،ظاهراً این پروژه فقط برای MSWin هستش دیگه نه ؟؟
اگه اینطوری باشه به احتمال 80درصد از Threadها استفاده نکردی (چون گفتی Crash میشه)
برای اینکار باید توی چند Thread جدا کارهاتو انجام بدی و در اخر نتایج رو دریافت کنی .
اما اگه از Threadهم استفاده کردی بیشتر توضیح بده بالاخره شاید تونستم کمک کنم.
درضمن اگه میشه برای امشب یا امروز بعد ظهر یک ساعت رو مشخص کن تا باهم به این مسئله بپردازیم ،اینطوری بحث خیلی کند پیش میره!


بهروز جان همونطور که دیدی پروژه با qt هست که میشه روی Mac و Linux و Symbiyan و به زودی بر روی android و ios و ... اجرا بشه ... که ((البته که 100 البته وقتی قراره Hook انجام بشه و سطح کرنل برنامه نویسی بشه باید برای هر سیستم پروژه های جداگانه توسعه داده بشه که این خودش خیلی کار داره ... اما فعلا و فقط بر روی MSWin قراره کار بشه ... ))

فعلا روی این بخش به صورت جدی کار نمیکنم (یه جورایی برای گرم شدنه) بعدا روش خیلی کار میکنم ( در باره ی چند Thread شدن ... به نظر شما به قدرت CPU بستگی نداره)
آخه هم برنامه کرش میکنه و هم CPU بالا میره ...

خودت حساب کن از بین 1850000 فایل قراره فایل های اجرایی مثل exe و dll و com , jar و ... قراره فیلتر بشن و دونه دونه به MD5 تبدیل بشن که اگه حجم فایل ها زیاد باشه که واییییی ...
حالا بعد از MD5 شدن قراره با دیتابیسی متشکل از 650000(که هر روز قراره زیاد تر بشه) MD5 مقایسه بشه که این تازه شناسایی هست ...
حالا بعد از شنایایی خودم هنوز نمیدونم چطور دستکاری های ریجستری و ... و فایل های ویروسی و ... و فایل های اجرایی (مثل خود ویروس که اجرا شده) رو چطوری تشخیص بدم و از حافضه بیرون بکشم و حذف کنم ...
جدا از اینا ... فکر نکنم لازم باشه برای هر ویروس کد نویسی کنیم ... باید اونم از دیتابیس استفاده بشه که خودش کلی سیستم رو درگیر میکنه ... کلا هنگ میکنه ... نظرت چیه ... ؟
فکر بهتری داری ؟ ( البته خنده داره که از همین الان دارم کلا تصمیم گیری میکنم )

runtime عزیز هم داره روی لوگوی برنامه کار میکنه ...

و اما برای امشب میتونم بیام ++ چت کنیم یا ... ؟
و در آخر ... بهروز جان من هنوز نفهمیدم که شما با ما هستید یا نه ... با ایمیل به من خبر بدید + چطوری میتونید کمکون کنید ...

نکته : دوستان میل های من به صورت زیر هستن که اولیشو بیشتر سر میزنم (خیلی بیشتر) :

abbasnaghdi@outlook.com
abbasnaghdi@iran.com
abbasnaghdi@hotmail.com
abbasnaghdi@live.com
abbasnaghdix@gmail.com
abbasnaghdi@ymail.com

.................................................. .................................................. ..........................

بهروز عباسی
یک شنبه 27 اسفند 1391, 17:55 عصر
فعلا روی این بخش به صورت جدی کار نمیکنم (یه جورایی برای گرم شدنه) بعدا روش خیلی کار میکنم ( در باره ی چند Thread شدن ... به نظر شما به قدرت CPU بستگی نداره)
آخه هم برنامه کرش میکنه و هم CPU بالا میره ..
به قدرت سخت افزاری که بستگی داره ؛ خیلی زیاد
چون End-User برنامه ما (AV) نمی خواد که وقتی AV رو نصب میکنه سیستمش از زمانی که ویروسی بوده کندتر عمل کنه:لبخند:


حالا بعد از شنایایی خودم هنوز نمیدونم چطور دستکاری های ریجستری و ... و فایل های ویروسی و ... و فایل های اجرایی (مثل خود ویروس که اجرا شده) رو چطوری تشخیص بدم و از حافضه بیرون بکشم و حذف کنم ...
دو تا راه داریم :


یا قراره در بعد از اجرای ویروس اونو شناسایی کنیم (سیستم ویروسی شده بعد AV نصب شده)
AV روی سیستم نصبه و virus می خواد اجرا بشه .

برای اولی که اگه توی DB باشه تمومه :
بصورت خیلی خفن لیست Process ها رو بدست میاریم بعد آدرس فایل اونها در سطح دیسک و مقایسه با عناصر DB.
ولی برای دومی ماباید توایع API که مربوط به Process ها میشن رو در Kernel-Mode زیر نظر بگیریم (Hook) مثلاً تابع :ZwOpenProcess یا NtOpenProcess .
وقتی خواستند Process خاصی رو اجرا کنن (باید مراحل اجرای برنامه ها رو بدونید ) قبل از اجرا مقایسه انجام میشه یا Virus هست یا نیست اگه باشه که از اجرا جلو گیری میشه اگر هم نه که خوش به حالش:شیطان:

یه نصیحت دوستانه :
حتما! ؛فعلاً که داری برای MSWin کار میکنی کتاب Windows Internals رو بخون ، من خودم هم مدتی میشه شروع کردم روزی چند دقیقه تا چند ساعت وقت میذارم چون باید این کتابو 20 بشی.
یه سایت پر از کتاب های کم یاب (http://www.ircertificate.ir/)

جدا از اینا ... فکر نکنم لازم باشه برای هر ویروس کد نویسی کنیم ... باید اونم از دیتابیس استفاده بشه که خودش کلی سیستم رو درگیر میکنه ... کلا هنگ میکنه ... نظرت چیه ... ؟
فکر بهتری داری ؟ ( البته خنده داره که از همین الان دارم کلا تصمیم گیری میکنم )
برای Data Base فکری کردی ؟


و در آخر ... بهروز جان من هنوز نفهمیدم که شما با ما هستید یا نه ... با ایمیل به من خبر بدید + چطوری میتونید کمکون کنید ...
راستش من با خودم هستم
ولی هروقت ،هرجوری بتونم به همه کمک می کنم.

FastCode
یک شنبه 27 اسفند 1391, 19:02 عصر
تا اونحایی که من میدونم همه فایل رو نباید برای MD5 بخونید.
اگر به ۱۳۰۰ بایت اول(NTFS) راضی باشید و دو مرحله تست انجام بدید سرعتتون خیلی بیشتر میشه.
خیلی از آنتی ویروس ها اول طول فایل رو تست میکنند.

استفاده از ترد فقط وقتی جواب میده که از وضعیت هارد اطلاع داشته باشیم.
و دقیقا وضعیت هد ها دیسک ها و کش رو بدونیم.در غیر این صورت فقط باعث کند تر شدن سیستم میشیم.
دقیقا به همون اطلاعاتی نیاز داریم که Sun ZFS نیاز داره.

بهروز عباسی
یک شنبه 27 اسفند 1391, 19:32 عصر
نظر به این که با موافقت آقای نقدی بنده به عنوان گرافیست کارمو شروع کردم .. الان دارم روی لوگو و آیکون برنامه کار میکنم .. و همینطور اگه دوستان و آقای نقدی مایل باشید برای سایت هم برنامه بریزیم...
نظرتون رو بگید.
ممنون.
عجله نکن (برای سایت)بذار کار واقعی کمی پیش بره بعد .

اما برای UI برنامه هر کاری میتونی انجام بده ،دمت گرم:کف:

Abbas Naghdi
یک شنبه 27 اسفند 1391, 20:53 عصر
با تشکر از runtime عزیز ... فکر نمیکردم اینقدر سریع درستش کنی ... آفرین ...
لوگوش زیباست ... یه همچین چیزی باید باشه ... فقط
در مورد نام پروژه ... بچه ها خواهش میکنم نظر بدین برای نام گذاری ...(هرچند قرار بود توسط تیم اصلی نام گذاری بشه ... بعدا قابل تغییر هست ... شاید تغییر کنه ... شایدم نه)

من که خودم از اسم های زیر خوشم میاد :

Sky Fortress (دژ آسمان)
Avesta (اوستا)

البته runtime جان هم اسم های زیبایی رو به من پیام خصوصی دادن که من دوست دارم ... (خودش بگه بهتره)
شما چی میگین ... ؟

FastCode
یک شنبه 27 اسفند 1391, 21:48 عصر
فراموش کردم بگم که rkhunter از همین روش مقایسه فایل ها با دیتابیس hash استفاده میکنه. البته در rkhunter الگوریتم SHA1 استفاده شده.
چون هم سریعتره و هم دقیقتر.
البته اگر از SHA256 استفاده کنید بهتره.

Abbas Naghdi
دوشنبه 28 اسفند 1391, 10:31 صبح
محمد جان گفتم شاید بهتر باشه اسمتو نگم (نمیدونم)
ببخشید ظاهرا من فرق لوگو و آیکن رو نمیدونم ... !
من که همون سایروس رو که گفتی رو دوست دارم ...
حالا نمیدونم ... بقیه ی بچه ها نظر شما چیه ... ؟


و FastCode عزیز :
به این نوع روش hash کردن امضای فایل یا اصطلاحا امضای ویروس میگن که :
SHA1 دقیق تر هست و لی سریعتر نیست ... !
MD4 از MD5 سریعتر هست و در عوض MD5 دقیق تره و البته که SHA1 از MD5 و MD4 کند تر هست و در عوض دقیق تر هست ... پس ما هم میخوایم سریع باشه و هم دقیق ( نه سیخ بسوزه نه کباب ... میدونی که ... !)

و البته اگه از SHA256 و ... استفاده کنم 200 سال طول میگشه تا فقط درایو C رو hash کنم ... ! میدونی که ... !

FastCode
دوشنبه 28 اسفند 1391, 10:45 صبح
md5 فقط در سیستم های قدیمی از sha1 سریعتره

behrooz@behrooz:~$ openssl speed md5 sha1 sha256
Doing md5 for 3s on 16 size blocks: 10431958 md5's in 3.00s
Doing md5 for 3s on 64 size blocks: 7654383 md5's in 3.00s
Doing md5 for 3s on 256 size blocks: 4322412 md5's in 3.00s
Doing md5 for 3s on 1024 size blocks: 1570576 md5's in 3.00s
Doing md5 for 3s on 8192 size blocks: 225572 md5's in 3.00s
Doing sha1 for 3s on 16 size blocks: 11880910 sha1's in 3.00s
Doing sha1 for 3s on 64 size blocks: 8392762 sha1's in 2.99s
Doing sha1 for 3s on 256 size blocks: 4576908 sha1's in 3.00s
Doing sha1 for 3s on 1024 size blocks: 1650067 sha1's in 3.00s
Doing sha1 for 3s on 8192 size blocks: 243004 sha1's in 3.00s
Doing sha256 for 3s on 16 size blocks: 8622165 sha256's in 2.89s
Doing sha256 for 3s on 64 size blocks: 4983553 sha256's in 3.00s
Doing sha256 for 3s on 256 size blocks: 2177055 sha256's in 3.00s
Doing sha256 for 3s on 1024 size blocks: 670435 sha256's in 3.00s
Doing sha256 for 3s on 8192 size blocks: 90343 sha256's in 3.00s
OpenSSL 1.0.1e 11 Feb 2013
built on: Mon Feb 11 18:52:45 UTC 2013
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md5 55637.11k 163293.50k 368845.82k 536089.94k 615961.94k
sha1 63364.85k 179644.40k 390562.82k 563222.87k 663562.92k
sha256 47735.17k 106315.80k 185775.36k 228841.81k 246696.62k
سرعت یک هسته پردازنده من در محاسبه sha256 تقریبا ۴ برابر و sha1 تقریبا ۱۰ برابر هارد دیسکم در حالت raw هست که فکر میکنم کافی باشه.
md5 خیلی وقت هست که ضعف های امنیتیش مشکل ساز شده.
و همین یک سال پیش بود که مایکروسافت اعلام کرد برای تست امنیت و تغییر فایل sha1 هم فایده نداره چون چند مورد پیدا شده بود که جعل شده بود.(البته توی این مورد ظاهرا اشکال از یکی از library های ویندوز ۷ بوده که خیلی ها هنوز بدون به روز رسانی ازش استفاده میکنند.)

joker
دوشنبه 28 اسفند 1391, 11:51 صبح
حديث داريم :

إذا كان الأمر كذلك، الذين لم تتحدث إلى، قانون مكتوب في مكان ما كان بالفعل كنت
اگر اينقدر كه حرف زدين ، كد نوشته بوديد ، الان به يه جايي رسيده بوديد.

ترجمه از گوگله به من ربطي نداره :لبخند:

Abbas Naghdi
دوشنبه 28 اسفند 1391, 12:12 عصر
سرعت یک هسته پردازنده من در محاسبه sha256 تقریبا ۴ برابر و sha1 تقریبا ۱۰ برابر هارد دیسکم در حالت raw هست که فکر میکنم کافی باشه.
md5 خیلی وقت هست که ضعف های امنیتیش مشکل ساز شده.
و همین یک سال پیش بود که مایکروسافت اعلام کرد برای تست امنیت و تغییر فایل sha1 هم فایده نداره چون چند مورد پیدا شده بود که جعل شده بود.(البته توی این مورد ظاهرا اشکال از یکی از library های ویندوز ۷ بوده که خیلی ها هنوز بدون به روز رسانی ازش استفاده میکنند.


تمام آنتی ویروس های دنیا از MD5 + SHA1 استفاده میکنن ... یعنی هم MD5 و هم SHA1 مثل MacAfee یا Norton یا ...
حتما دلیلی داره دیگه ... شما چیز دیگه ای فکر میکنید ... تنها دلیل استفاده از MD5 اینه که دیتا بیس های آماده هست ... بعدا SHA1 هم اظافه میشه (رو همین MD5 هم هنگ میکنه چه برسه که SHA1 هم اظافه بشه)


حديث داريم :
إذا كان الأمر كذلك، الذين لم تتحدث إلى، قانون مكتوب في مكان ما كان بالفعل كنت
اگر اينقدر كه حرف زدين ، كد نوشته بوديد ، الان به يه جايي رسيده بوديد.

ترجمه از گوگله به من ربطي نداره


ترجمش با گوگل میشه این :

اگر چنین است، که شما را به صحبت می کنید، این قانون در محل از آنچه در حال حاضر شما نوشته شده است :لبخند:

ترجمش با مایکروسافت میشه این :

اگر چنین است، که شما را به صحبت کرده است، در حال حاضر قانون نوشته شده است در جایی بود :لبخند:

ما هم حرف میزنیم و هم کد میتنویسیم ... + هم کد مینویسیم و هم حرف میزنیم ... + این حرف ها نیازه ... نمیشه که همینجوری هر چی دلمون خواست کد بنویسیم ... ! (میدونید که)

FastCode
دوشنبه 28 اسفند 1391, 18:13 عصر
SHA1

439448 عدد فایل معادل 194265088 کیبی بایت.
time find . -type f -exec sha1sum {} >> SHA1SUMS \

real 80m9.464s
user 23m56.807s
sys 10m45.527s


میبینید که خیلی سریعه و تقریبا همون نسبت یک به چهار بین دیسک و CPU رعایت شده.

Abbas Naghdi
دوشنبه 28 اسفند 1391, 21:50 عصر
با سلامی دوباره ...
پست کاری :

تا الان هرچی پست دادیم دیگه بسته ...

نکته : پروژه به صورت ((رسمی)) از تاریخ اول فروردین 1392 آغاز میشه (یعنی کلید شروع) + از 20 فروردین به صورت جدی توسعه داده میشه و با اظافه شدن اولین قابلیت ها برای آزمایش به صورت متن باز اراعه میشه ... نام پروژه که محمد عزیز هم داخل پست خودش اعلان کرد Cyrus Security Guard هست که این نام به صورت رسمی هست ...

ما چند نفر هستیم که محمد جان بخش گرافیک رو به دست میگیره + سایت مربوطه
منم خودم وظیفه ی مدیریت و توسعه ی برنامه ی اصلی رو دارم که با اظافه شدن اهل تخصصش مسئولیت های من کمتر میشه (اینجاش واقعا کمک نیاز دارم)
دوتا از دوستان من هم که بعدا آشنا میشید وضیفه ی تحلیل ویروس ها و ارائه ی گذارشات + داده سازی و ... رو برعهدا دارن
یکی از دوستان من هم که بعدا آشنا میشید وظیفه ی مستند سازی و تجزیه و تحلیل برنامه قبل از انتشار رو بر عهده داره + کمک در الگوریتم نویسی و قابلیت های جدید

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

بقیه ی دوستان هم نظیر FastCodr و بهروز عباسی و بقیه ی بچه های برنامه نویس ... که تا الان خیلی کمک کردن ... و جا داره که یه تشکر مخصوص از اینها بکنیم این دوستان نشون دادن که خیلی میتونن کمک کنن ... پس من خواهش میکنم هر کمکی میتونن به ما برسونن چون واقعا نیاز هست ...

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

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

مطمعنم با شروع رسمی توسعه افراد زیادی علاقه نشون میدن + وقتی سایت آپ بشه و برنامه روی اون قراربگیره ...

به نظر شما چیز دیگه ای لازمه ... ؟

با نام الله پله پله بالا میریم ...

این پست بعدا اصلاح یا کامل تر میشه ... (در پست های بعدی)

بهروز عباسی
دوشنبه 28 اسفند 1391, 23:40 عصر
یعنی دیگه توی این تاپیک در مورد کد نویسی و این حرفا بحث نشه ؟؟؟؟

شاید یک راه حل برای افزایش سرعت گرفتن Hash

CheckSumMappedFile function (Windows) (http://msdn.microsoft.com/en-us/library/windows/desktop/ms679281%28v=vs.85%29.aspx)

میشه با تابعی که معرفی کردم Check sum گرفت و از اون Hash تهیه کرد

من الان وقت ندارم تست کنم روی چندتا فایل تست کنید ببینید خروجی همین تابع منحصر به فرد هست یا نه :
مثلاً یکبار روی یک فایل تست کن و یک تغییر کوچیک توش بده و بعد دوباره تست کن اگه نتیجه فرق کرد ،میشه روش حساب کرد.

Jarvis
سه شنبه 29 اسفند 1391, 00:16 صبح
خب از بعد از ظهر تا الان که ساعت نزدیک 1 شب هستش داشتم تمامی لوگو های نرم افزارهای مرتبط رو بررسی میکردم ... که نتیجه ی کار این شد...
شاید بگید خیلی ساده هستش .. ولی خیلی از آیکون های معروف از این هم ساده تر هستند ... این نرم افزار هم به نظرم توی آیکونش نباید زیاده روی کنم
علامت C که واضحه .. اون دایره رو گذاشتم تا یه مقداری به چشم شبیهش کنم...
رنگبندی هم می تونه تغییر کنه...

http://up.ehsanavr.com/uploads/CSG_Icon-1363706987.png

بهروز عباسی
سه شنبه 29 اسفند 1391, 00:31 صبح
خب از بعد از ظهر تا الان که ساعت نزدیک 1 شب هستش داشتم تمامی لوگو های نرم افزارهای مرتبط رو بررسی میکردم ... که نتیجه ی کار این شد...
شاید بگید خیلی ساده هستش .. ولی خیلی از آیکون های معروف از این هم ساده تر هستند ... این نرم افزار هم به نظرم توی آیکونش نباید زیاده روی کنم
علامت C که واضحه .. اون دایره رو گذاشتم تا یه مقداری به چشم شبیهش کنم...
رنگبندی هم می تونه تغییر کنه...

http://up.ehsanavr.com/uploads/CSG_Icon-1363706987.png


مرسی:لبخند:
من زیاد توی طراحی نبودم
اما به نظرم خوبه توی اون دایره مشکی مثلاً یک ویروس باشه که می خواد فرار کنه ولی نمیتونه :کف:
اگه ایده خوبی نیست ،ببخشید آخه تا حالا فقط برنامه نوشتم:متفکر:

Abbas Naghdi
سه شنبه 29 اسفند 1391, 00:43 صبح
محمد عالیه ... دستت درد نکنه ...

اما ... یه کاری میشه کنی ... !

میشه اون دایره ی وسطشو یه طرحی بدی
مثلا مثل کروم .. اما با رنگ بندی پرچم ایران و یا کلا شکل چشم درش بیار (مثل Nod)
به نظرم رنگ C خوبه ...

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

Abbas Naghdi
سه شنبه 29 اسفند 1391, 00:54 صبح
من کم کم باید برم سراغ کاراکتر نرم افزار ... موندم مث Nod32 ربات باشه .. چی باشه ؟

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

بهروز عباسی
سه شنبه 29 اسفند 1391, 00:59 صبح
نمی خوام از بقیه ی نرم افزارها تقلید کنم
فکر کنم یه سپر بذاری بد نباشه ها.

Abbas Naghdi
سه شنبه 29 اسفند 1391, 01:14 صبح
دوتا ایده ی جالب همین الان به ذهنم رسید

اولی ... اون نقطه ی وسط رو هم میشه خورشید کرد ... یه جسم نورانی ...

دومی ...
مجسمه ی آزادی آمریکا رو دیدیت که ...
دستش یه مشعله ...
حالا یه کاراکتری مثل روبات Nod رو تصور کنید که C دستش باشه ... (آیکن برنامه)
حالا در این حال به جای روبات Nod رباتی باشه زره پوش که دست راست یا چپش که خالیه یه تیقه مثل شمشیر باشه ... که ازش خون میچکه (عمق افکار رو دارید ... :دی)

بهروز عباسی
سه شنبه 29 اسفند 1391, 01:19 صبح
کل آیکون رو بزارم روی یه سپر ؟ یا نقطه ی وسطی رو تبدیل به سپر کنم ؟ :متفکر:
جفتش خوبه !

راستی اون تابعی که گفتم رو تست کزدید؟

Abbas Naghdi
سه شنبه 29 اسفند 1391, 01:39 صبح
راستی اون تابعی که گفتم رو تست کردید؟

بهروز جان امتحان نکردم ... VC++‎ نصب نیست ... فکرم نکنم اون تابع تنهایی کار کنه ...
الان دارم با Qt کار میکنم راستی خود کیوت تابعی برای MD5 داره .. تست نکردم ...
فعلا روش کار نمیکنم تا اول فروردین ... گفتم که ... (فعلا فقط تجزیه و تحلیل میکنم + تحقیق)



شما بیا +G اونجا با هم صحبت میکنیم در این مورد

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

+

اینم گرافیک جدید برنامه ... (یکم طراحی و رنگ بندیشو تغییر دادم)

http://uploadtak.com/images/h6792_Cyrus.png

Abbas Naghdi
چهارشنبه 30 اسفند 1391, 02:03 صبح
سلام


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


آیکون نرم افزار یه تغییر جزئی داشت که به نظرم خوب شده و دیگه لازم به تغییر نداره ... پس لطف کنید انتقاد نکنید چون میخام برم سراغ GUI اصلی نرم افزار...
http://upload.tehran98.com/img1/n7oy...635wyagtx1.png

خوبه خوبه خوبه ... فقط اون حلقه ی سفید داخل C رو وردار همون پره ها کافیه ...
و از سایز 32 تا 256 رو به من بده با پسوند png و ico ... (با backgrund نامرئی)

و اما در مورد صف حه ی اصلی ... صبر کن ... چون بعدا تغییر طراحی خیلی زمان بر هست پس باید از همین اول طراجی آخر رو انجام بدی ... (مثل آیکن و ... نیست با چند کلیک تغییر بدم که)

نکته هایی که باید در طراحی رعایت بشه :

1. از برنامه های مشابه تقلید نشه
2 . از برنامه های مشابه الهام بگیر
3. باید یه همچین چیزی مثل طرح الان باشه
4. رنگبندیش باید زننده نباشه + زیبا باشه + رنگ وارنگم نباشه
5.چیزی نباشه که نشه داخل IDE طراحیش کرد
6. داخل فرم اصلی باید تمام امکانات برنامه باشه (منفی تنظیمات برنامه )
7. با سیستم های لمسی سازگار باشه (مثلا اندازه ی Button ها)
8.سعی کن زنده باشه ... (یه ایده ی جدید ... مثلا بک گراند فرم برنامه تصاویر متحرک باشه ... مثل تو فیلم ها)
9. فعلا همین ... صبر کن ... یه طرح اولیه بده تا تایید بشه و بعدا روی بقیش کار کن (یه طرح اسکلتی)

Abbas Naghdi
چهارشنبه 30 اسفند 1391, 10:04 صبح
محمد جان اگه حرفی زدم که ناراحت شدی ببخشید ... (فقط خواستم نظر بدم)
کلا قراره یه پروژه ی تیمی بسازیم ... تک نفره نیست که ...
اون شماره ی 1 تا 9 رو گفتم تا بهتر بتونی تصمیم بگیری چون در نهایت باید من این طرح رو پیاده سازی کنم ... (چیزی نباشه که دوباره تعویضش بشه (فکر نکنم امکان داشته باشه) )

در کل منو چه به گرافیک ... من کار خودمو میکنم ... تا با هم هماهنگ بشیم ...

نکته : فعلا همین آیکنی رو که دادی بسته ... الان روی GUI کار کن تا بتونیم زود تر روش کار کنم ... (کد نویسیشو میگم)

Abbas Naghdi
چهارشنبه 30 اسفند 1391, 23:38 عصر
بازم سلام بچه ها

اینم یه مقایسه ی کوچیک با ESET Smart Security

http://uploadtak.com/images/u4935_Scan.png

به زودی در موردش صحبت میکنم ...

Abbas Naghdi
پنج شنبه 01 فروردین 1392, 23:02 عصر
بازم سلام

طبق گفته ی پیشینم ... امروز پروژه به صورت رسمی آغاز شد

توضیحات رو قبلا دادم و در مورد جزئیات هم قبلا گفتگو شده ...

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

و اما :

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

به نام خدا .. امروز 1 فروردین 1392 ... پروژه کلید خورد ...

بهروز عباسی
شنبه 03 فروردین 1392, 16:26 عصر
درود
سال نو مبارک

چند نکته :


اگر برنامه AV فقط با DB کارکنه (درسته که پیشنهاد خودم بود ولی فکر کنم اشتب زدم)فقط نسبت به گذشته کامله و نمیتونه virus های جدید رو تشخیص بده ،البته اگه قرار باشه فقط فایل ها رو چک کنیم

به همین خاطر باید DB هم از کارهای که ویروسها انجام میدن داشته باشیم ؛تا مثلاً اگر در قسمت تنظیمات X به Y تغییر کرد AV حساس بشه و اونو دنبال کنه اگه از نشانه های Virus بود دنبالش بگرده(چطوری ؟
داستان داره حالا بماند)


فعلاً همین:کف:



بحث در مورد الگوریتم ها و نحوه ی کار برنامه + کد نویسی در این تایپیک هست
تا الان بزرگترین مشکل ما برنامه نویسی مد-هسته است ،چرا ؟
چون ما باید رفتار Process ها رو زیر نظر بگیریم تا اگه خواستن دست از پا خطا کنن با لگد کارشونو بسازیم.
این فقط یک نمونه کوچیکیه و برای ساخت یک AV خوب شاید 70 تا 80 درصد کار با Kernel-Mode باشه .(نظر من)

من روی سیستم AV ندارم که تست کنم ؛
AV های معمول هیچ درایوری برای File System دارن؟؟
اگه اینطور باشه برای بالا بردن سرعت Scan ما هم باید Driver بنویسیم ،چون اگه خود برنامه Driver مختص خودش رو داشته باشه بهتر میشه Disk رو کنترل کرد و دستمون باز تره.
حتماً اینو تست کنید

موفق باشید

Abbas Naghdi
چهارشنبه 07 فروردین 1392, 00:08 صبح
سلام بچه ها ...
بعد از چند سال جمع آوری اطلاعات با ارزش + پروژه هایی که نوشتم + فایل های شخصی و ... یهویی همه پاک شدن
تا حالا به خاک سیاه نشستین :گیج:

من چندین هزار ویروس داخل کامپیوترم دارم (تحت کنترل هستن :شیطان:) حالا بعد از چند ماه که این ویروس ها رو داشتم داشتم روی آنتی ویروس Cyrus امتحان میکردم ... نمیدونم چطوری یهویی از کنترل خارج شدن و زدن کل سیستم کامپیوتر منو یوری کردن ... اول زدن ویندوز 8 من رو تخریب کردن (ضعف امنیتی ویندوز8) بعدشم کل هارد دیسک رو پاک کردن ... کلا فقط بدونید کل زندگیم بر باد رفت (پروژه ی Cyrus پاک شد)
الان 2 روزه دارم 100 تا نرم افزار رو امتحان میکنم ... فعلا 50 درصد فایل هام برگشتن ... اگه Cyrus بازیابی نشه مجبورم دوباره از اول پیاده سازی کنم (جالبه که بدونید ویروس ها دوباره بازیابی شدن 9000 ویروس)

حالا ... فعلا درگیرم (خوبیش اینه که تا چند ماه پیش رو بک آپ دارم) اما :


اگر برنامه AV فقط با DB کارکنه (درسته که پیشنهاد خودم بود ولی فکر کنم اشتب زدم)فقط نسبت به گذشته کامله و نمیتونه virus های جدید رو تشخیص بده ،البته اگه قرار باشه فقط فایل ها رو چک کنیم
به همین خاطر باید DB هم از کارهای که ویروسها انجام میدن داشته باشیم ؛تا مثلاً اگر در قسمت تنظیمات X به Y تغییر کرد AV حساس بشه و اونو دنبال کنه اگه از نشانه های Virus بود دنبالش بگرده(چطوری ؟)

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

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

بهروز عباسی
چهارشنبه 07 فروردین 1392, 00:53 صبح
بعد از چند سال جمع آوری اطلاعات با ارزش + پروژه هایی که نوشتم + فایل های شخصی و ... یهویی همه پاک شدن
تا حالا به خاک سیاه نشستین :گیج:
مرد حسابی ماشین های مجازی رو برای این جور مواقع گذاشتن:لبخند:


راستی آقای عباسی گفتید موتور دیتا بیس نوشتید ... درست متوجه شدم ؟
به کمکتون احتیاج دارم ... آخه نمیدونم دیتا بیس یه آنتی ویروس باید چطوری باشه ... (در موردش بحث میکنم)

نه من موتور نساختم ، کجا گفتم ؟
من دیتابیس کار نکردم (حرفه ای) که بخوام برات توضیح بدم ولی اول باید باید یک دیتابیس اصولی طراحی بشه که موقع جستجو و مقایسه سرعت کم نباشه و بعد هم DBMS خوب و مناسب رو براش انتخاب میکنیم.



آخه اول کارهایی رو باید انجام بدیم که راحت ترن و بعد ...
oOK
مشکل سرعت MD5 حل شد؟؟


نود32 که میشه گفت بهترین آنتی ویروس موجود هستش از درایور استفاده میکنه

runtime (http://barnamenevis.org/member.php?284726-runtime) عزیز منظورم درایوری برای فایل ها بود اونطور که از اسم اون مواردی که اشاره کردی معلومه هیچکدوم برای این کار نیستن.

Abbas Naghdi
پنج شنبه 08 فروردین 1392, 13:11 عصر
سلام بچه ها

بالاخره بازیابیش کردم ...
من هر 2 روز یک بار به صورت zip از پروژه هام backup میگرفتم ... حالا تونستم اون zip رو بازیابی کنم ...
پروژه ی Cyrus رو بازیابی کردم ... اما آخرین تغییراتی که دادم داخلش نیست ... (باید دوباره کد بنویسم :گیج:)
آفرین به برنامه نویسان Recovery My File ....


مرد حسابی ماشین های مجازی رو برای این جور مواقع گذاشتن

ماشین مجازی دارم و ویروس ها رو اونجا آنالیز میکنم
مشکل اینجاست که من قرار نبود هیچ ویروسی رو اجرا کنم ... داشتم MD5 میکردم !


مشکل سرعت MD5 حل شد؟؟

تا حدودی حل شد ... با VC++ خیلی سرعتش کند تر از Qt بود ... (جالبه نه) ... الان 400 مگابایت 5 ثانیه زمان میبره تا MD5 و SHA1 بشه ... (SHA1 رو هم اظافه کردم)
اما تو این 5 ثانیه بازم برنامه هنگ هست ... برای این مشکل فقط استفاه از dll به ذهنم میرسه

aidinMC
جمعه 09 فروردین 1392, 21:35 عصر
سلام
منم زیاد با کیوت کارکردم و تقریبا تسلط دارم.
و دوس دارم یه گوشه از این پروژه رو بگیرم...
خب کی رو ببینیم؟

daskar
جمعه 09 فروردین 1392, 23:38 عصر
سلام
آرزوی موفقیت براتون دارم
یه پیشنهاد برای گرافیست تون
میتونی برای روبات از سرباز هخامنشی استفاده کنی هم سپر داره هم نیزه هم ایرانی به اسم آنتی ویروس هم میخوره فقط باید 3D شو بسازی
موفق باشید

Abbas Naghdi
شنبه 10 فروردین 1392, 13:35 عصر
با سلام و تشکر از همه ی عزیزان همیار
لطفا این تایپیک رو با عنوان <<شروع ساخت پروژه ی آنتی ویروس متن باز ایرانی>> داخل امضای خودتون قرار بدید(با لینک) تا دوستانی که از این تایپیک اطلاعی ندارن به جمع ما بپیوندن

کمک :
پروژه رو با دیتابیسی متشکل از MD5 و SHA1 هماهنگ میکنم ... اما مشکل اینجاست که :
0. چطوری این دیتا بیس رو آپدیت کنم :: مطمعنا باید به فایل های تکی تقسیم بشه :::: دیگه چی ؟
1 . چطوری باید فایل ها رو با دیتابیس مقایسه کنم :: به صورت یکجا یا دونه دونه :::: دیگه چی ؟
2 . بعد از شناسایی فایل ها چطور پاکشون کنم :: مطمعنا باید از پردازنده kill بشن :::: دیگه چی ؟
3 . چطوری باید بفهمم ویروس چه تغیراتی رو انجام میده :: سایت های آنتی ویروس ها این کار رو انجام میدن :::: دیگه چی ؟
4 . چطور باید تغییرات ویروس ها رو باز گردانی کنم :: باید از دیتابیس استفاده بشه ::: چطوری : دیگه چی ؟

فعلا ... در پیدا کردن جواب این سوالات کمکم کنید ... با سپاس

بهروز عباسی
یک شنبه 11 فروردین 1392, 01:41 صبح
0. چطوری این دیتا بیس رو آپدیت کنم :: مطمعنا باید به فایل های تکی تقسیم بشه :::: دیگه چی ؟
یک سرور داریم که تمام ویروس ها درش لیست شدن (و تمام ویروس هایی که در دیتابیس AV قرار داره) هر آیتم جدیدی که بهش اضافه بشه توی یه لیست قرار میدی و AV موقع Update شدن دونه دونه از اون لیست برمیداره و به DB خودش اضافه میکنه و به سرور میگه کدومو برداشت تا از اون لیست برش داره و لیست ویروس های قدیمی تر منتقلشون میکنه ، برای این کار هر AV باید با شناسه Unique به سرور متصل بشه تا معلوم بشه کدوم AV بروز رسانی شده این یه راه (کمی زیادی پیچیده میشه)

در بازه های زمانی مشخص ویروس های جدید در قالب یک فایل جدا به DB مربوط AV تزریق میشن:کف:


1 . چطوری باید فایل ها رو با دیتابیس مقایسه کنم :: به صورت یکجا یا دونه دونه :::: دیگه چی ؟
من DB زیاد کار نکردم ولی درمورد Index ها در DB تحقیق کن ؛باعث افزایش سرعت در کوری میشن که میشه زمان مقایسه رو کاهش داد.



2 . بعد از شناسایی فایل ها چطور پاکشون کنم :: مطمعنا باید از پردازنده kill بشن :::: دیگه چی ؟
اگه روی دیسک باشه و در حال اجرا هم نباشه که سادست .
اگه در حال اجرا باشه از طریق هندلش آدرسش روی دیسک رو بدست میاری و بازم با استفاده از هندلش میبندیش و پاکش میکنی (بعضی وقت ها مقاومت میکنه که داستان خودشو داره - بذار برای بعد:کف:)






3 . چطوری باید بفهمم ویروس چه تغیراتی رو انجام میده :: سایت های آنتی ویروس ها این کار رو انجام میدن :::: دیگه چی ؟
یه راهش همون آنالیز دستی و دیتابیسه
یه راهشم شبیه سازی یک OS توی AV برای تست Virusها.



4 . چطور باید تغییرات ویروس ها رو باز گردانی کنم :: باید از دیتابیس استفاده بشه ::: چطوری : دیگه چی ؟

همین DB خوبه .

Abbas Naghdi
یک شنبه 11 فروردین 1392, 14:42 عصر
با سلام و سپاس از همه

یک مسئله : کامپیوتر سارا یک ویروس داره به اسم x ...
آنتی ویروس Cyrus سعی در نابودی این ویروس داره ... !

آنتی ویروس سعی کرد ویروس x رو شناسایی کنه ... امضای تمام فایل های اجرایی رو با امضا هایی که خودش از پیش داره برسی میکنه

اگر این امضا درست بود ویروس x رو شناسایی میکنه
در غیر این صورت اگر x در حال اجرا بود (که معلوم میشه که تغییراتی رو انجام داده = تغییرات رو برسی کن و به حالت اول باز گردان + ویروس رو حذف کن)
در غیر اینصورت اگر x در حال اجرا نبود (تغییراتی انجام نداده = حذف فایل ویروس)

اگر امضا درست نبود ویروس x شناسایی نمیشه = از روش هوشمند استفاده میشه
فایل داخل یک ماشین مجازی آزمایش میشه که + کد های فایل برسی میشه + تغییراتی که فایل داده برسی میشه + عملیات فایل مانیتور میشه + ...

اگر ویروس شناخته شد و ویروس در حال اجرا بود = (تغییرات رو برسی کن و به حالت اول باز گردان + ویروس رو حذف کن)
در غیر این صورت اگر ویروس در حال اجرا نبود = (ویروس رو حذف کن)
در غیر اینصورت اگر ویروس شناسایی نشد =(پس دیگه شناسایی نمیشه ... == کامپیوتر سارا پس از گذشت کسری از ثانیه یوری میشه :لبخند: )

مطمعنا این یک الگوریتم نیست ... یک روش کاره ... پس لطفاکاملش کنید + نواقصی که داره بر طرف کنید

Abbas Naghdi
یک شنبه 11 فروردین 1392, 18:49 عصر
با سلام و با تشکر محمد جان ... میتونی اون Cyrus رو یه طوری دیگه بنویسی ... ؟

یه بخشی کم داره ... بخش تنظیمات باید داخل فرمی دیگه باشه ...
اون Options میتونه تنظیمات اولیه باشه ...
نمیدونم ... فقط طرح نهایی رو بهم بده تا هرچه سریعتر اعمالش کنم ... + آیکن های اختصاصی (میتونی از طراحی آیکن های اپل یا ویندوز 8 کمک بگیری ... (شبیه باشه))

Abbas Naghdi
دوشنبه 12 فروردین 1392, 23:12 عصر
سلام بچه ها

اینجا گفته بودم :

تا حدودی حل شد ... با VC++‎‎ خیلی سرعتش کند تر از Qt بود ... (جالبه نه) ... الان 400 مگابایت 5 ثانیه زمان میبره تا MD5 و SHA1 بشه ... (SHA1 رو هم اظافه کردم(یک فایل 400 مگابایتی)
اما تو این 5 ثانیه بازم برنامه هنگ هست ... برای این مشکل فقط استفاه از dll به ذهنم میرسه

حالا من تونستم در طی زمان 1 ثانیه و خورده ای 3 گیگ فایل (3000 فایل اجرایی(dll,exe)) رو به صورت Sha1 و Md5 هاش کنم ... )
این سرعت زیاد هم برای مقایسه با دیتابیس و هم برای هوک کردن و مقایسه به درد میخوره ... (کم کم بیشتر از اینم میشه ... )

بچه ها لطفا در پست شماره ی #84 به من کمک کنید

aidinMC
سه شنبه 13 فروردین 1392, 22:49 عصر
با سلام و سپاس از همه

یک مسئله : کامپیوتر سارا یک ویروس داره به اسم x ...
آنتی ویروس Cyrus سعی در نابودی این ویروس داره ... !

آنتی ویروس سعی کرد ویروس x رو شناسایی کنه ... امضای تمام فایل های اجرایی رو با امضا هایی که خودش از پیش داره برسی میکنه

اگر این امضا درست بود ویروس x رو شناسایی میکنه
در غیر این صورت اگر x در حال اجرا بود (که معلوم میشه که تغییراتی رو انجام داده = تغییرات رو برسی کن و به حالت اول باز گردان + ویروس رو حذف کن)
در غیر اینصورت اگر x در حال اجرا نبود (تغییراتی انجام نداده = حذف فایل ویروس)

اگر امضا درست نبود ویروس x شناسایی نمیشه = از روش هوشمند استفاده میشه
فایل داخل یک ماشین مجازی آزمایش میشه که + کد های فایل برسی میشه + تغییراتی که فایل داده برسی میشه + عملیات فایل مانیتور میشه + ...

اگر ویروس شناخته شد و ویروس در حال اجرا بود = (تغییرات رو برسی کن و به حالت اول باز گردان + ویروس رو حذف کن)
در غیر این صورت اگر ویروس در حال اجرا نبود = (ویروس رو حذف کن)
در غیر اینصورت اگر ویروس شناسایی نشد =(پس دیگه شناسایی نمیشه ... == کامپیوتر سارا پس از گذشت کسری از ثانیه یوری میشه :لبخند: )

مطمعنا این یک الگوریتم نیست ... یک روش کاره ... پس لطفاکاملش کنید + نواقصی که داره بر طرف کنید

همونطور که خودت هم گفتی این نمیتونه یه الگوریتم باشه ، یه روش کلی برای بررسی عملکرد ویروسه!
یعنی در واقع داره روش اسکن کردن cyrus رو توضیح میده و تقریبا همه ی مراحل رو بررسی کرده...

در واقع cyrus باید طوری عمل کنه که ویروس نتونه وارد کامپیوتر سارا بشه اگه ویروس وارد سیستم سارا شده پس cyrus ضعیف عمل کرده چون سایروس باید موقعی که یه فایل تو سیستم ردو بدل میشه همون لحظه بررسی کنه که این فایل چیه؟ آلوده س؟ یا نه؟
سایروس اگه نتونه ویروسو پیدا کنه با دو مسئله روبرو میشیم:

1) یا باید سارا سایروس رو update کنه
2) یا الگوریتم سایروس مشکل داره

که هر کدومش قابل بحثه....

FastCode
چهارشنبه 14 فروردین 1392, 00:35 صبح
زبان تشخیص/تعریف ویروس clam رو مطالعه کردید؟

Abbas Naghdi
چهارشنبه 14 فروردین 1392, 12:34 عصر
همونطور که خودت هم گفتی این نمیتونه یه الگوریتم باشه ، یه روش کلی برای بررسی عملکرد ویروسه!
یعنی در واقع داره روش اسکن کردن cyrus رو توضیح میده و تقریبا همه ی مراحل رو بررسی کرده...

در واقع cyrus باید طوری عمل کنه که ویروس نتونه وارد کامپیوتر سارا بشه اگه ویروس وارد سیستم سارا شده پس cyrus ضعیف عمل کرده چون سایروس باید موقعی که یه فایل تو سیستم ردو بدل میشه همون لحظه بررسی کنه که این فایل چیه؟ آلوده س؟ یا نه؟
سایروس اگه نتونه ویروسو پیدا کنه با دو مسئله روبرو میشیم:

1) یا باید سارا سایروس رو update کنه
2) یا الگوریتم سایروس مشکل داره

که هر کدومش قابل بحثه....

مشکل وارد شدن ویروس یا نشدنش به کمپیوتر سارا نست ... بخش مانیتورینک سیستم عالم هنوز اجرا نشده ... (فرض بر این هست)
ما میخواییم این ویروسی که هست رو نابود کنیم + آنتی ویروس آپدیت کامل هست
فعلا بحث برای پیدا کردن یا پیدا نکردن نیست ...
من در نهوه ی پیدا کرن + برخورد با این مسئله مشکل دارم



زبان تشخیص/تعریف ویروس clam رو مطالعه کردید؟
اگه منظورت سورسش هست ... نه ندیدم ... سورسشو ندارم
من میخوام یه الگوریتم جدید به کار ببرم ... مگر نه میدونم چیکار کنم ... !

FastCode
چهارشنبه 14 فروردین 1392, 14:38 عصر
نه منظورم سورسش نیست.
clam یک زبان خاص برای تعریف ویروس ها داره.خودم هم مطالعش نکردم ولی شنیدم که خیلی جالبه.

Abbas Naghdi
جمعه 16 فروردین 1392, 01:04 صبح
طبق گفته ی پیشینم ... پروژه قرار بود از 20 فروردین قوت بگیره ... اما قبل از این تاریخ ... یه مشکلاتی هست ...
من با خیلی از برنامه نویسان برجسته ی مایکروسافت و دیجیا و ... صحبت کردم ...

خیلی از اون ها این کار رو بدون نتیجه میدونن ... جالبه که من فکر میکردم این نوع افکار فقط تو ایران هست ... !
حتی یکیشون میگه تا وقتی Symantec و MacAfee هست نمیشه رقابت کرد ... نمیدونه من ایرانی هستم و داخل ایران زندگی میکنم ... (اینجا ایرانه ... یعنی ... :لبخندساده:)
جالب تر از اینا همه ... برنامه نویس های مایکروسافت خیلی از مدافع ویندوز (Windows Defender) دفاع میکنن ... من که به عوان آنتی ویروس حسابش نمیکنم (البته مال ویندوز 8 خیلی خوبه)

و در مورد Qt ... خیلی از برنامه نویس ها نوشتن آنتی ویروس با qt رو غیر منطقی میدونن (من با C#‎ هم دیدم)
وقتی گفتم میخوام فقط در اینترفیس از qt استفاده کنم ... این کار رو مفید دونستن و اظافه کردن که بقیه ی کار باید با API بومی ویندوز باشه ...
جالب ترش اینه که خود کسانی که در توسعه ی qt نقشی داشتن این حرف ها رو میزنن ...

جالب تر جالب تر اینه که من برای MD5 و SHA1 کردن یک فایل دو نوع کد نوشتم
1.qt + ده خط کد نشد + سرعت خیلی بالا (قبلا سرعتشو گفتم ... 3000 فایل با حجم 3 گیگ رو در تغریبا 1 ثانیه و ... تبدیل کرد)
2. vC++‎ + بیش از 20 خط = سرعت معمولی = تا 1 فایل 700 مگابایتی ور Hash کرد من بالای 3 بار با کیوت Hash کردم (البته اون موقع که هنوز کد qt بهینه نبود ... الان که دیگه ...) ... من حتی از کدی که در آنتی ویروس Kasper هست برای این کار استفاده کردم (یادم نیست برنامه نویسش کی بود) اما بازم qt سریعتر بود ... برای خودمم جالبه چون منطقا طوری که همه میدونن و همه میگن باید VC++‎ سریعتر باشه ... شاید از الگوریتم باشه اما اینو بدونید Cyrus از Kaspersky سریعتره ...

qt . در ساخت یک اینترفیس عالی و گرافیکی + سرعت زیاد در طراحی و کد نویسی سریعتر و بهینه تر + کار با فایل ها و ... خیلی خوب عمل میکنه ...
VC++‎ . در Hooking و ... و ماشین مجازی و ... خیلی بهتره ... البته فقط سرعتش خوبه و دسترسی سطح کرنلش ...

تنها یک مسئله میمونه ... با حذف API و جایگذین شدن API جدید ... qt سازگار میشه ولی VC++‎ حذف میشه و WinC++‎ جایگذین میشه که اگر کد ما با Win32 باشه بعد از تغییرات باید آنتی ویروس رو دوباره و از نو کد نویسی کنیم ... !
نکته ی قابل توجهش اینجاست که کیوت قراره برنامه ها ی نوشته شده با خودش رو برای Metro Style هم پورت کنه ... انطوری مشکل برای پلتفرم جدید ویندوز هم نخواهیم داشت ...
در هر صورت من نمیدونم چیکار کنم ...

فعلا دارم با این برنامه نویس های بی سواد مایکروسافت بحث میکنم ... (فکر نکنید چون مایکروسافتی هستن خیلی شاخ هستن واقعا میگم بی سواد ... بچه های همین فروم از اون ها یه سرو گردن بالا تر هستن ... البته اگه کل برنامه نویسی ما نشه C#‎ ... :لبخند:)

آقای عباسی که در Kernel زندگی میکنید ... از نظر شما وضعیت چیه ... (چون میدونم شما در این مورد تخصص دارید مخصوصا سوال کردم).

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

Abbas Naghdi
جمعه 16 فروردین 1392, 14:17 عصر
عباس جان ... این خیلی خوبه که داری در این زمینه تحقیق می کنی .. ولی حواست باشه که اسم و مشخصه ای از پروژه رو لو ندی ...

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


پس یعنی من دستم توی طراحی بازه ؟؟ درسته ؟؟
من با چند زبان برنامه نویسی برنامه نوشتم اما Framework کیوت خیلی در گرافیک پیشرفته ( با استفاده از angle و opengl و diretx و ... خیلی گرافیکی کار میکنه) ... البته سرعتشم بالاست ... میتونی خودت یه سرچ کنی ببینی چی میشه باهاش نوشت ... تازه هر چی داخل اینترنت میبینی از qt app هست ...
Qt Quick رو ندیدی ... (تازه اومده) گرافیکی داره 100D :لبخند:
یه سرچ کن ببین چیه ...

اینم خودم گذاشتم ببینی :

http://uploadtak.com/images/n8589_Qt.png

بیشتر .... پیدا میکنی !

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

آره ایمیل آقای زارع مدیر پروژه رو گرفتم ... ایمیل دادم منتظر پاسخ هستم ... اگه اونم نشد تماس میگیرم ... خدا کنه کمکمون کنن !

Abbas Naghdi
جمعه 16 فروردین 1392, 17:10 عصر
چیزی نشون داده نشده ...

شاید مشکل از مرورگر یا سرعت اینترنتت باشه !
اینم لینک » http://uploadtak.com/images/n8589_Qt.png
این فقط یک مدل سه بعدی هست .. همین دم دستم بود ..

hassanjj
جمعه 16 فروردین 1392, 18:33 عصر
با سلام
دوستان عزیز کار بسیار خوب و جالبی هست و مطمئنا به نتیجه مطلوب خواهد رسید.
با موافقت دوستان هر کار و کمکی که بتونم انجام میدم.
در کل یه چیزهایی بلد هستم:لبخندساده:

به امید موفقیت

UfnCod3r
شنبه 17 فروردین 1392, 07:48 صبح
تا کجا پیش رفتین ؟
اگه میشه توی github ـی چیزی کدها رو بزارید ما ببنیم یه فیضی ببریم :لبخند:
موفق باشین :قلب:

Abbas Naghdi
شنبه 17 فروردین 1392, 12:55 عصر
تا کجا پیش رفتین ؟
اگه میشه توی github ـی چیزی کدها رو بزارید ما ببنیم یه فیضی ببریم :لبخند:
موفق باشین :قلب:

حتما ... اما الان نه ... !
پروژه متن باز هست اما برای انتشار سورسش یک سری قوانین و مراحل داره که طی نشده ...
به امید خدا وقتی سایت آپ شد ... پروژه روی اون گذاشته میشه ... !

hamidhws
شنبه 07 اردیبهشت 1392, 10:41 صبح
سلام
قبل از هر چیز بگم فقط نصف پست اولو خوندم پس اگه یهو دیدید از مرحله پرتم واسه همینه!دوم اینکه نمیخوام با این حرفم بدمن داستان بشم اما از شمایی که میخوای روی این پروژه وقت بزاری و به رایگان برای اینکه عاشق چشم و ابروی مردمی از عمرت بگذری چنتا سوال دارم:
شما با اینکارت میخوای باعث گسترش علم دنیا بشی یا گسترش علم خودت؟واقعا نمیفهمم چرا بعضی ها دنبال ساخت انتی ویروس یا چه میدونم سیستم عاملو این چیزا هستن,اونم تنهایی بدون بودجه و رایگان (حتما چون جوونای ایرانی میخوان خوشبختی زیادشون رو با مردم عزیزشون سهیم کنن!). یکی نیست بگه برادر من عزیز من هدفت چیه؟منم خودم ازین کارا کردم و مدت ها روی الگوریتم های فشرده سازی کار کردم اما هدف داشتم و هدفم گسترش علم جهانی بود نه عشقم به تحلیل ! حالا شما که میخوای عمرو جوونیتو بزاری پای ساخت انتی ویروس بگو ببینم هدفت چیه؟ چه ایده ای داری که بتونی باهاش بزنی رو دست eset یا avira یا میخوای ازشون تقلید کنی ؟(کاری که تو ایران مد شده) چون اگه هدفت شکست اونا و گسترش علم نباشه داری واسه گسترش علم خودت کار میکنی نه کمک به دنیا.لطفا اول تکلیفتو با خودت روشن کن,دیگه حالم از این تقلیداو کارای تکراری بهم میخوره ,چی میشه یکمی راهساز باشیم تا راهرو

FastCode
شنبه 07 اردیبهشت 1392, 13:03 عصر
سلام
قبل از هر چیز بگم فقط نصف پست اولو خوندم پس اگه یهو دیدید از مرحله پرتم واسه همینه!دوم اینکه نمیخوام با این حرفم بدمن داستان بشم اما از شمایی که میخوای روی این پروژه وقت بزاری و به رایگان برای اینکه عاشق چشم و ابروی مردمی از عمرت بگذری چنتا سوال دارم:
شما با اینکارت میخوای باعث گسترش علم دنیا بشی یا گسترش علم خودت؟واقعا نمیفهمم چرا بعضی ها دنبال ساخت انتی ویروس یا چه میدونم سیستم عاملو این چیزا هستن,اونم تنهایی بدون بودجه و رایگان (حتما چون جوونای ایرانی میخوان خوشبختی زیادشون رو با مردم عزیزشون سهیم کنن!). یکی نیست بگه برادر من عزیز من هدفت چیه؟منم خودم ازین کارا کردم و مدت ها روی الگوریتم های فشرده سازی کار کردم اما هدف داشتم و هدفم گسترش علم جهانی بود نه عشقم به تحلیل ! حالا شما که میخوای عمرو جوونیتو بزاری پای ساخت انتی ویروس بگو ببینم هدفت چیه؟ چه ایده ای داری که بتونی باهاش بزنی رو دست eset یا avira یا میخوای ازشون تقلید کنی ؟(کاری که تو ایران مد شده) چون اگه هدفت شکست اونا و گسترش علم نباشه داری واسه گسترش علم خودت کار میکنی نه کمک به دنیا.لطفا اول تکلیفتو با خودت روشن کن,دیگه حالم از این تقلیداو کارای تکراری بهم میخوره ,چی میشه یکمی راهساز باشیم تا راهرو
این سوال رو من قبلا پرسیدم.
البته جواب قانع کننده ای نگرفتم.

Abbas Naghdi
شنبه 07 اردیبهشت 1392, 13:46 عصر
سلام
قبل از هر چیز بگم فقط نصف پست اولو خوندم پس اگه یهو دیدید از مرحله پرتم واسه همینه!دوم اینکه نمیخوام با این حرفم بدمن داستان بشم اما از شمایی که میخوای روی این پروژه وقت بزاری و به رایگان برای اینکه عاشق چشم و ابروی مردمی از عمرت بگذری چنتا سوال دارم:
شما با اینکارت میخوای باعث گسترش علم دنیا بشی یا گسترش علم خودت؟واقعا نمیفهمم چرا بعضی ها دنبال ساخت انتی ویروس یا چه میدونم سیستم عاملو این چیزا هستن,اونم تنهایی بدون بودجه و رایگان (حتما چون جوونای ایرانی میخوان خوشبختی زیادشون رو با مردم عزیزشون سهیم کنن!). یکی نیست بگه برادر من عزیز من هدفت چیه؟منم خودم ازین کارا کردم و مدت ها روی الگوریتم های فشرده سازی کار کردم اما هدف داشتم و هدفم گسترش علم جهانی بود نه عشقم به تحلیل ! حالا شما که میخوای عمرو جوونیتو بزاری پای ساخت انتی ویروس بگو ببینم هدفت چیه؟ چه ایده ای داری که بتونی باهاش بزنی رو دست eset یا avira یا میخوای ازشون تقلید کنی ؟(کاری که تو ایران مد شده) چون اگه هدفت شکست اونا و گسترش علم نباشه داری واسه گسترش علم خودت کار میکنی نه کمک به دنیا.لطفا اول تکلیفتو با خودت روشن کن,دیگه حالم از این تقلیداو کارای تکراری بهم میخوره ,چی میشه یکمی راهساز باشیم تا راهرو

با سلام ... اگه حداقل 10 پست اول رو میخوندید شاید این سوالات رو نمیپرسیدیت ... اما :
من عاشق چشم و ابروی مردم نیستم + متن باز بودن فقط به ما کمک میکنه تا یک محصول مشترک ایجاد کنیم ... که این محصول 2 نسخه ی عمومی و سفارشی داره که عمومیش رایگان و متن باز هست (مثل همه ی نرم افزار های رایگان) و تجاریش پولی هست (مثل همه ی نرم افزار های تجاری) هست ... (مثلا فرق VS Express با VS Ultimate در چیه ؟) که البته کسانی که در این پروژه سهیم هستن حقشونو میگیرن ... !

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

حالا شمایی که میگین برای کسترش علم دنیا کارایی کردی ... اینو میگم بدونی ... اون کسانی که از این کارا میکنن این شرایط رو دارن ... !
1. باباشون پولداره
2. هوششون خیلی بالاست و تخصص زیادی دارن
3. اساتید مشهور دانشگاه ها هستند و ...
4. داخل یه شرکت مثل مایکروسافت یا گوگل کار میکنن ...
5. .... ... ... ... ... ... .. .. .. ........... .. . . . .. . . .... . ..
حالا اگه خواستی توضیح میدم چرا این شرایط کمکشون میکنه ... !
ساخت آنتی ویروس هم فقط علاقه ی خودم هست ... منم از کسانی که مثل من علاقه مند هستند دعوت کردم ... به هیچ کسی هم نگفتم بیا به من کمک کن رایگان ... !


این سوال رو من قبلا پرسیدم.
البته جواب قانع کننده ای نپرسیدم.

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

hamidhws
شنبه 07 اردیبهشت 1392, 17:50 عصر
ببخش دوست عزیز من یکم تند رفتم اما قصد توهین نداشتم . فقط حرفم اینه , چطور یه انتی ویروس نیاز بومیش احساس میشه؟اصلا همه بدبختیمون همینه, چرا همش میایم کارای غربو کپی میکنیم اسمشو میزاریم بومی سازی؟چرا جهانی فکر نمیکنیم و به جای این درجا زدن یه کار جدید با ایده جدید نمیکنیم؟ به نظرم بستگی به نگاهمون داره ,شما فرمودی خودکفایی در تولید داخل؟ تا اونجا که میدونم کمتر کسی تو این مملکت برای انتی ویروس یا هر نرم افزار دیگه ای هزینه میکنه و دلیلشم مشخصه!بحث من نه انرژی منفیه نه میخوام تلاش شما رو کم جلوه بدم , فقط میگم چرا ما باید همیشه مقلد باشیم؟چرا خالق نباشیم؟مثلا اگه قراره انتی ویروس تولید کنیم باید حداقل چیزی تولید کنیم که یه ایده جدید نسبت به نمونه انتی ویروسهای دیگه داشته باشه نه اینکه یه سری تقلید انجام بدیم و اسمشو بومی سازی بزاریم!من اسم اینو کپی میزارم.به قول بیل گیتس جهانی فکر کنیم محلی عمل کنیم نه اینکه مثل بعضی از مسئولین جوگیر که هیچی از این چیزا سرشون نمیشه بخوایم رو هر چیزی برچسب ملی بزنیم! البته دلیل اینکه ما جهان سومیم و امریکا جهان اول توی همین چیزا و طرز فکرا پیاده میشه , اونجا دنبال ادم خالق میگردن که ایده های نو داشته باشه اما اینجا دنبال ادمای مقلد میگردن که خوب بلده دزدی کنه!(واقعا شرایط مملکت به خاطر 4 تا مسئول نادان با توهم دانایی تاسف برانگیزه)

hamidhws
شنبه 07 اردیبهشت 1392, 18:49 عصر
شما ایده ی جدید داری ؟ بسم الله ...
ما که فعلا ایده ی خاصی نداریم!!!

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

hamidhws
شنبه 07 اردیبهشت 1392, 19:59 عصر
به قول دوست اجنبیمون انیشتین : علم چیز خوبیه به شرط اینکه نخوای خرج زنو پچتو باهاش بدی! منم دلم میخواد کارای جدید انجام بدم و ایده های جدید پیاده کنم اما وقتی هزارتا مشکل مادی دارم به نظرتون عاقلانست که کار رایگان انجام بدم؟دوست عزیز اینا لقمه های سر سیری هست ,در حال حاضر 3 تا پروژه زیر دست دارم واسه 3 تا ارگان و برای اینکه نیازهای مادیم برطرف بشه مجبورم کارهارو قبول کنم . اما اگه روزی نیازهای اولیه زندگیم برطرف شد حتما ازاین کارهای بشردوستانه انجام میدم چون عاشق علمو کنجکاویم (اما متاسفانه اینجا کسی ارزشی براش قائل نیست)

mahak006
شنبه 07 اردیبهشت 1392, 20:14 عصر
با سلام . من زیاد وقت خوندن پست ها رو ندارم . ولی با یه نگاه اجمالی به چند نکته پی بردم :
۱-آنتی ویروس هر چند هم open source باشه و رایگان باشه و کسی هم ایرانی بودنش و تازه کار بودنش رو توجه نکنه ، باید پشتیبانی خوبی داشته باشه . و اینکه آپدیت های پشت سر هم داشته باشه . سرور و سایت مشخصی که امنیت این سایت یا سرور هم بالا باشه . همین طور باید امکانات دیگه ای به جز آنتی ویروس بودن به کاربرا بده ( مثل بقیه ی آنتی ویروس ها ) تا بتونه جلب توجه کنه و ترغیب بره استفاده داشته باشه .
من نمی گم کار نشدنی هست . اما باید زیر ساخت هاش اول مورد بررسی قرار بگیره و ایجاد بشه .
۲-یه جورایی آنتی ویروس رایگان تو کت هیچ کسی نمی ره . بالاخره پشت این همه زیر ساخت و زحمت ، باید انگیزه ای بره وارد شدن تو سیستم ها باشه .
مثلا خیلی آنتی ویروس ها پول می گیرن . یا بعضیا آنتی ویروس رایگان هم می دن ولی تبلیغ آنتی ویروس پولی رو تو همون انجام می دن و امکانات بیشتری تو پولیه می ذارن . یا آنتی ویروس شرکتیشون پولیه و خونگیشون تبلیغی و مجانی . یا از سایتشون بره کسب درآمد استفاده می کنن .
به جورایی آنتی ویروس کاملا مجانی و بدون تبلیغات بره بعضیا به منزله ی خود ویروسه :)
۳-اگه واقعا تو این زمینه کار می کنید ، باید زمینه ای رو انتخاب کنید که راه رشدش راحت تره . مثلا آنتی ویروس با امکانات متفاوت بره موبایل . یا آنتی ویروس بره usb on the go تو موبایل هایی که پشتیبانی می کنن . یا آنتی ویروس حرفه ای که روی سیستم نصب می شه و مدیریت گوشی و ویروس یابیشو انجام می ده ( یه PCSuit که آنتی ویروس گوشی هم کنارش داره )

ببخشید که صحبتام زیاد شد .

MunderLine
شنبه 07 اردیبهشت 1392, 20:52 عصر
سلام
من توی تاپیکتون مشترک هستم. واقعاً خوشحال و ممنونم که همچین پروژه ای رو شروع کردید
یه نرم افزار Internet Security رایگان که امکانات خیلی خوبی هم داره، استفاده می کنم
اسمش هست Comodo Internet Security از شرکت Comodo. (تا اونجایی که فهمیدم امکاناتش شبیه Norton بود و حتی بیشتر از اون. مثل اجرای نرم افزار و مرورگر در SandBox و اسکن فایل ها با Drag & Drop و قابلیت Virtual Kiosk و اجرای مرورگر Comodo در حالت Virtual Browsing و ...)
دو تا عکس از رابط کاربریش گرفتم (یکی یه گجت از نرم افزاره که روی دسکتاپ میاد و اون یکی هم که رابط کاربری خود نرم افزاره). امیدوارم مفید باشه

و در هر صورت امیدوارم موفق باشید :تشویق:

mahak006
شنبه 07 اردیبهشت 1392, 22:50 عصر
hamidhws (http://barnamenevis.org/member.php?56131-hamidhws) :
بنده هم مث شما خیلی شدید نیاز به پول دارم... ولی خب اون چیزی که باعث همکاری من میشه علاقه ای هست که دارم...
به هر حال بنده و آقای نقدی منتظر همکاری شما عزیزان هستیم.
_____________
mahak006 (http://barnamenevis.org/member.php?74709-mahak006) :
بله صحبت های شما درسته ... ما هم روی همین مباحث بحث کردیم و بدیهی هستش که یک آنتی ویروس بدون این زیرساخت ها فلج هستش...
ما قصد نداریم از آنتی ویروس های قوی مث NOD32 تقلب کنیم .. یا باهاشون رقابت کنیم...
میخوایم یه چیز جدیدتر ایجاد بکنیم که یه کاربر بتونه توی تمام دستگاه هاش امنیت رو ( که سعی ما امنیت بالا ) هستش رو برقرار کنه...
از نوع رابط کاربری اون می تونید به این صحبت ها پی ببرید ..

از نظر و توجه شما بسیار سپاسگذارم...
_____________
MunderLine (http://barnamenevis.org/member.php?278490-MunderLine) :
باعث خوشحالی هستش...
من برای طراحی رابط کاربری این نرم افزار ، اکثر آنتی ویروس ها و نرم افزارهای امنیتی معروف رو بررسی کردم ...
و به خاطر این که بنده 4 سال متوالی روی بحث مهندسی طراحی رابط های کاربری گرافیکی کار و تحقیق میکردم ( و هنوزم میکنم ) سعی کردم که یه رابط کاربری سبک و راحت رو ارائه کنم...
نرم افزاری که شما لطف کردید و تصویر اون رو گذاشتید : این نرم افزار از رابط کاربری قدیمی استفاده میکنه ... یه مقداری سنگینه و کاربر رو سردر گم میکنه ... ولی نقاط قوت هم داره!

مدل کاری رابط کاربری ما DDM هستش .. مدلی که بنده خودم ابداع کردم و کاملا اصولی و حساب شده هستش...
_____________

موفق باشید


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

Abbas Naghdi
شنبه 07 اردیبهشت 1392, 23:30 عصر
اندر احوالات پروژه ی سایروس ...
شاید نام گارد امنیتی سایروس بهترین نامی باشه که میشه روی این پروژه گذاشت ... !
این یه پروژه ی متفاوت و با ایده های نو هست !
اگر پست های من از اول تا اینجا رو بخونید متوجه میشید که هدف ساخت آنتی ویروسی متفاوت بود ... ! اما متوجه شدم که این تفاوت باید خیلی عمیق باشه ... !
با پست های اخیر و رابطی که محمد جان دادن و بحث هایی که با همه ی دوستان همراه انجام دادم لازم دونستم که اطلاعاتی رو برای کسانی که در این راه مارو همراهی میکنن و یا قراره همراهی کنن قرار بدم

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

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

من دو راه دارم ... یا همین الان ادامه ی کار رو بدم و به قول دوستان یک محصول مشابه تولید کنم و یا صبر کنم و هی تحقیق کنم و هی تحقیق کنم و منتظر واکنش سیستم عامل هاباشم تا اینکه یه راهی برای پیاده سازی ایده هام داشته باشم ... که صبر کردن هم منطقی نست ... ! دارم روش کار میکنم ... باید روی کاغذ درستش کنم ... !

خب با گفته های من شما الان فکر میکنید که میخوام یک محصولی تولید کنم که روی همه ی سیستم عامل ها اجرا بشه ... در جواب میگم هم درست میگین و هم اشتباه میکنید ... من یک ایده دارم که قبلا اپل تغریبا پیاده سازیش کرده
شما چطور محصولی با نام x تولید میکنید که هم با همه ی سیستم عامل ها یازگار باشه + هم با وب + هم با همه ی سخت افزار ها (ام از لمسی و ...) ؟
خب اگه گنگ میگم ببخشید ... آخه قرار نبود اصلا هیچی بگم ... !

ادامه دارد ...

hamidhws
یک شنبه 08 اردیبهشت 1392, 00:45 صبح
اندر احوالات پروژه ی سایروس ...
شاید نام گارد امنیتی سایروس بهترین نامی باشه که میشه روی این پروژه گذاشت ... !
این یه پروژه ی متفاوت و با ایده های نو هست !
اگر پست های من از اول تا اینجا رو بخونید متوجه میشید که هدف ساخت آنتی ویروسی متفاوت بود ... ! اما متوجه شدم که این تفاوت باید خیلی عمیق باشه ... !
با پست های اخیر و رابطی که محمد جان دادن و بحث هایی که با همه ی دوستان همراه انجام دادم لازم دونستم که اطلاعاتی رو برای کسانی که در این راه مارو همراهی میکنن و یا قراره همراهی کنن قرار بدم

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

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

من دو راه دارم ... یا همین الان ادامه ی کار رو بدم و به قول دوستان یک محصول مشابه تولید کنم و یا صبر کنم و هی تحقیق کنم و هی تحقیق کنم و منتظر واکنش سیستم عامل هاباشم تا اینکه یه راهی برای پیاده سازی ایده هام داشته باشم ... که صبر کردن هم منطقی نست ... ! دارم روش کار میکنم ... باید روی کاغذ درستش کنم ... !

خب با گفته های من شما الان فکر میکنید که میخوام یک محصولی تولید کنم که روی همه ی سیستم عامل ها اجرا بشه ... در جواب میگم هم درست میگین و هم اشتباه میکنید ... من یک ایده دارم که قبلا اپل تغریبا پیاده سازیش کرده
شما چطور محصولی با نام x تولید میکنید که هم با همه ی سیستم عامل ها یازگار باشه + هم با وب + هم با همه ی سخت افزار ها (ام از لمسی و ...) ؟
خب اگه گنگ میگم ببخشید ... آخه قرار نبود اصلا هیچی بگم ... !

ادامه دارد ...

فکر کنم میخواید اینکارو تحت وب انجام بدید اره؟اینطوری احتیاج به پلتفرم خاصی نداره چون استاندارد همشون یکیه,البته احتمالا من دارم اشتباه فکر میکنم چون نمیشه با محدودیتاش کنار اومد

hamidhws
یک شنبه 08 اردیبهشت 1392, 01:43 صبح
اینو دلم نیومد نگم , دیدم بعضی از دوستان گفتن ایرانی حال کار کردن نداره و همش دنبال پوله و...
خب برادر من وقتی داریم از بدبختی میمیریم به فکر چی باشیم پس؟ هیچکس ارزش کارمونو نمیدونه وگرنه برای علم و وقتمون هزینه میکردن . نمیدونم خبر مربوط به ملیاردر شدن جوون 17 ساله امریکایی رو شنیدید که با ساخت یه نرم افزار خبر خوان نزدیک به 30 میلیون دلار ثروت بدست اورد, در واقع شرکتی مثل یاهو حاضره به یه جوون 17 ساله اینقدر پول بده و هم استخدامش کنه! اونوقت خدایی اینجا باید برای یه کار خصوصی که کلی ایده هم توش گذاشتی سر هزار تومن چونه بزنی! خوب وقتی 4 تا مسئول نالایق و نفهم که هیچی از سختی کار نمیدونن ارزش کارو پایین میارن میخوای چیکار کنیم؟این حرفارو از رو تجربه میزنم با اینکه سن زیادی ندارم (24) و اینکه تخصص اصلیم research بوده اما فقط 10 سال سابقه برنامه نویسی حرفه ای دارم (یعنی براش پول گرفتم), پارتی هم نداشتم و حتما خودتون میدونید چقدر باید بدبختی بکشی و چقدر باید سطح کاریت بالا باشه تا بهت اعتماد کنن و مثلا چنتا از سامانه های مهم شرکتشون رو بدن انجام بدی,قیمتام هم پایین نبوده ولی سطح کاریم 10 برابر قیمت ها بود.اما وقتی کسی ارزش قائل نباشه همین انگیزه هم از بین میره. سال پیش یه پروژه 80 میلیون تومنی بهم پیشنهاد شد (یه چیزی مثل رسانه مهر اما در شبکه داخلی) . فقط یه قسمت کوچیک از لیستمو براتون میگم که شامل چندین ایده بزرگ به همراه حتی اختراع بودن , 1- سیستم تزریق مویرگی: باعث میشد حجم زیادی از اطلاعات با سرعت خیلی خیلی زیاد توی شبکه اینترانت انتقال پیدا کنه و همچنین 8 برابر ترافیک شبکه کاهش پیدا کنه , در کل سرعت 8 برابر بیشتر و ترافیک 8 برابر کاهش پیدا میکرد (کسایی که شبکه میفهمن حتما میدونن این یعنی چی و خودش چند میارزه) 2- سیستم کد و دکد ویدئو بصورت زنده (از طریق دوربین های مدار بسته و ...) : قادر به ارسال تصاویر 1080 بصورت زنده و بدون لگ و قطعی , توی این روش حدود 20 برابر کاهش ترافیک بود که باعث بالا رفتن سرعت میشد به طوری که به راحتی و بدون نیاز به بافرینگ عملیات ارسال انجام میشد . (این قسمت از یک روش کدک ویدئوی اختصاصی انجام میشد)

این فقط 2 تا از 60 مورد لیستم بود که این 2 تا مستقیما ایده و اختراع شخص خودم بود که مربوط به الگوریتم های فشرده سازی میشد و سال ها روش وقت گذاشته بودم.

در نهایت چون شرکت نداشتم مجبور شدم یه واسط گیر بیارم تا به عنوان شرکت برام فاکتور بزنه (چون پروژه های کمی بزرگ رو به شخص نمیدن) . قرار بود 60 20 باشه اما اونا وقتی لیستو دیدن قیمتو 300 گذاشتن و اون ارگان هم زیر بار نرفت . حتی تا 140 هم راضی شدن اما اون شرکته میخواست این وسط 240 تومن سود کنه ! اونوقت منه بدبخت که همه کارو میکنم فقط 60 بگیرم.

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

joelandos
یک شنبه 08 اردیبهشت 1392, 02:24 صبح
با سلام
شمایی که ایده ای دارید یا کار جدیدی میتونید انجام بدید و طرح نووی دارید؛ اگر بهتون بها نمیدند که پیاده و اجراش کنید یا ازتون نمیخرند چون ارزششو نمیدونند، چیزی که به ذهنم رسید اینه که حداقل میتونید یک یا چند مقاله علمی ازش در بیاریدو اونو ارایه بدید. مخصوصا تو این ضمینه ها که علم روز و پرجمب و جوشی هم هست دهها مجله ای اس ای و کنفرانسهای بین المللی وجود داره.
پارک های علم و فناوری هم هرازچندی چیزس توش پیدا میشه.
شخصا تجربه ای بدین شکل نداشتم ولی اینارو به ذهنم اومد، دوست داشتم بگم.

hamidhws
یک شنبه 08 اردیبهشت 1392, 02:26 صبح
با سلام
شمایی که ایده ای دارید یا کار جدیدی میتونید انجام بدید و طرح نووی دارید؛ اگر بهتون بها نمیدند که پیاده و اجراش کنید یا ازتون نمیخرند چون ارزششو نمیدونند، چیزی که به ذهنم رسید اینه که حداقل میتونید یک یا چند مقاله علمی ازش در بیاریدو اونو ارایه بدید. مخصوصا تو این ضمینه ها که علم روز و پرجمب و جوشی هم هست دهها مجله ای اس ای و کنفرانسهای بین المللی وجود داره.
پارک های علم و فناوری هم هرازچندی چیزس توش پیدا میشه.
شخصا تجربه ای بدین شکل نداشتم ولی اینارو به ذهنم اومد، دوست داشتم بگم.

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

بهروز عباسی
چهارشنبه 11 اردیبهشت 1392, 18:48 عصر
درود به همه
شرمنده مدتی نبودم


خیلی از اون ها این کار رو بدون نتیجه میدونن ... جالبه که من فکر میکردم این نوع افکار فقط تو ایران هست ... !
هرچیزی ممکنه هرکسی نظر خودشو داره این خیلی ها چنین کاری رو بیهوده می ببین بی علت نیست .الان توی بازار (AV)چندتا شرکت غول هستن که دارن در سطح جهانی با هم رقابت میکنن کار اگر قرار باشه رقیب جدیدی به شمار بریم باید چیزی جدید ارائه بدیم.


جالب تر از اینا همه ... برنامه نویس های مایکروسافت خیلی از مدافع ویندوز (Windows Defender) دفاع میکنن ... من که به عوان آنتی ویروس حسابش نمیکنم (البته مال ویندوز 8 خیلی خوبه)
منم باهاشون موافقم (البته شاید محصول خیلی خوبی هم نباشه) ؛چون هیچ شرکتی به اندازه خود MS بچه خودش (Win)رو نمیشناسه و یک AV خوب هم باید بتونه کل سیستم رو بخوبی بشناسه تا کارایی خوبی داشته باشه.


و در مورد Qt ... خیلی از برنامه نویس ها نوشتن آنتی ویروس با qt رو غیر منطقی میدونن (من با C#‎‎ هم دیدم)
وقتی گفتم میخوام فقط در اینترفیس از qt استفاده کنم ... این کار رو مفید دونستن و اظافه کردن که بقیه ی کار باید با API بومی ویندوز باشه ...
جالب ترش اینه که خود کسانی که در توسعه ی qt نقشی داشتن این حرف ها رو میزنن ...
بی راه نمیگن برای برنامه نویسی سیستمی خیلی کاربردی نیست اما برای UI برنامه گزینه خوبیه.


جالب تر جالب تر اینه که من برای MD5 و SHA1 کردن یک فایل دو نوع کد نوشتم
1.qt + ده خط کد نشد + سرعت خیلی بالا (قبلا سرعتشو گفتم ... 3000 فایل با حجم 3 گیگ رو در تغریبا 1 ثانیه و ... تبدیل کرد)
2. vC++‎‎ + بیش از 20 خط = سرعت معمولی = تا 1 فایل 700 مگابایتی ور Hash کرد من بالای 3 بار با کیوت Hash کردم (البته اون موقع که هنوز کد qt بهینه نبود ... الان که دیگه ...) ... من حتی از کدی که در آنتی ویروس Kasper هست برای این کار استفاده کردم (یادم نیست برنامه نویسش کی بود) اما بازم qt سریعتر بود ... برای خودمم جالبه چون منطقا طوری که همه میدونن و همه میگن باید VC++‎‎ سریعتر باشه ... شاید از الگوریتم باشه اما اینو بدونید Cyrus از Kaspersky سریعتره ...
توی QT از چه Compiler ای استفاده می کنی ؟

qt . در ساخت یک اینترفیس عالی و گرافیکی + سرعت زیاد در طراحی و کد نویسی سریعتر و بهینه تر + کار با فایل ها و ... خیلی خوب عمل میکنه ...
VC++‎‎ . در Hooking و ... و ماشین مجازی و ... خیلی بهتره ... البته فقط سرعتش خوبه و دسترسی سطح کرنلش ...
کاملاً درسته MSVC چون محصول خود MS هستش برای برنامه نویسی سیستمی روی MSWin بهترین گزینست
و QT هم برای UI . (البته ممکنه استفاده از زبان های مختلف کمی مشکل ساز بشه)



فعلا دارم با این برنامه نویس های بی سواد مایکروسافت بحث میکنم ... (فکر نکنید چون مایکروسافتی هستن خیلی شاخ هستن واقعا میگم بی سواد ... بچه های همین فروم از اون ها یه سرو گردن بالا تر هستن ... البته اگه کل برنامه نویسی ما نشه C#‎‎ ... :لبخند:)
بستگی داره که شما به چه کسانی بحث می کنید :لبخند: اگه ممکنه کمی درباره این که چرا این حرفو زدین توضیح بدید.:لبخندساده:


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

اینم اظافه کنم که دارم یک راه ارتباط با شرکت مهران رایان(شرکت سازنده ی آنتی ویروس ایمن)پیدا میکنم ... خدا کنه کمکمون کنن ... بالاخره 18 سالی از ما جلو ترن ... :لبخندساده:
به نتیجه ای رسید؟

و اقای صالحی بابت کار زیباتون تشکر:لبخند:


خلاصه کارو نتونستم بگیرم از طرفی هم اختراعمو نتونستم توی این مملکت کوفتی ثبت کنم . با اینکه خدایی ارزش این کار از نظر خودم زیر 900 میلیارد تومن نبود . اما اینا حتی حاضر نشدن 80 تومن به من بدن! در نهایت پشت دستمو داغ کردم هیچوقت علممو واسه این مملکت خرج نکنم , منتظرم برم اونبر مطمئنم اونبر خیلی بیشتر از این الاغای به اصطلاح مسئول ارزش علم رو میفهمن
اگه همچین کاری کردی بری اونور بهتره ،خیلی ها هستند مثل شما که کارهایی بزرگی میکنن اما کسی نیست ارزش کار اونا رو بفهمه و این اقعاً باعث تاسفه:ناراحت:
آدم های زیادی رو دیدم (بچه های دانشگاه و ...) که شب و روز خودشون رو یکی میکنن برای یک اختراع ولی آخرش چی؟؟ این بیچاره ها ممکنه چیزای خوبی هم بسازن و لی 4تا آدم با سواد پیدا میشه که کار اونا رو ابزاری میکنه برای اینکه کشور پیشرفت کرده اینو نمیگه که حمایتی در کار نبوده و ... .

موفق باشید.

SlowCode
شنبه 14 اردیبهشت 1392, 23:10 عصر
آقای عباس نقدی
من توی این پیغام آخرتون یه نکته مبهمی دیدم!
شما از طرفی میگین پروژه اوپن سورس از ظرفی میگین محرمانه!!!
اگه قراره محرمانه باشه پس چرا عمومیش میکنی داداش من؟:لبخندساده:
شاید میخوای بگی الان محرمانه بمونه تا وقتی که کدها رو انتشار بدم، ولی به نظر من اشتباهه!
از الان فکرهات رو به اشتراک بزار تا اشکالات احتمالی از الان مشخص بشه نه اینکه چند ماه بعد تازه بشینیم ببینینم این موارد مشکل دارن یا نه.

daskar
یک شنبه 15 اردیبهشت 1392, 23:31 عصر
با سلام
در پاسخ به ایده ها و پلتفرم که دوستمان اشاره کرد
فکر کنم شما بایستی مطالعاتی در خصوص محاسبات ابری داشته باشید که ایده های شما کاملا در آن قابل پیاده سازی است
و هر کسی بجای داشتن یک آنتی ویروس یک یوزر و پس گرفته و توسط آن می تواند هر دستگاهی را که دارد ایمن کند

Abbas Naghdi
دوشنبه 16 اردیبهشت 1392, 20:38 عصر
توی QT از چه Compiler ای استفاده می کنی ؟

Mingw gcc


کاملاً درسته MSVC چون محصول خود MS هستش برای برنامه نویسی سیستمی روی MSWin بهترین گزینست
و QT هم برای UI . (البته ممکنه استفاده از زبان های مختلف کمی مشکل ساز بشه)

روش تحقیق کردم ... این کار به ما تنوع و کارایی میده اما مشکلاتی داره ... مثل حجم برنامه یا پیش نیاز های زبان و ...


بستگی داره که شما به چه کسانی بحث می کنید اگه ممکنه کمی درباره این که چرا این حرفو زدین توضیح بدید.

البته شاید این حرفی که زدم درست نباشه ... چرا که فروم های خارجی مثل فروم های ایرانی نیستن ... اونجا کسی در برابر چیزی متعهد نیست و تنها تخصص و تجربشونو به اشتراک میزارن ... مثل اینجا نیست یه کد بخوایی سریع بهت بدن و ... اما در هر صورت ... یه سری سوالات رو ابتدایی جواب میدادن و یه سری رو هم بلد نبودن ... !


به نتیجه ای رسید؟
و اقای صالحی بابت کار زیباتون تشکر

نه ... یا سرشون شلوغه و یا ... خودتون بگید ... !
و البته ضمن تشکر از آقای صالحی ... تشکر شما رو نفهمیدم برای چی هست ... !


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

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


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

در این مورد تحقیق میکنم ... !

بهروز عباسی
شنبه 04 خرداد 1392, 22:37 عصر
و البته ضمن تشکر از آقای صالحی ... تشکر شما رو نفهمیدم برای چی هست ... !
برای گرافیک برنامه:متعجب:
------------------------------------------------------------------------------------------------------------------

به کجا رسیدی ؟؟ اگه ممکنه بیشتر درمورد این پروژه توضیح بده.

پیشرفت ها ، مشکلات ، ایده ها (به غیر Priv8 ها) و اگه میشه سورس کد ها رو بذار تا توسعه داده بشن و باگ ها برطرف بشه.

اینطوری این تاپیک و این پروژه هم میشه مثل بقیه پروژه های ایرانی !

Abbas Naghdi
یک شنبه 05 خرداد 1392, 01:45 صبح
آهان ... من فکر کردم یه صالحی دیگه رو میگین ... !
در پست 116 توضیح دادم ... الانم گرفتارم تا 3 ماه دیگه ... !

بهروز عباسی
یک شنبه 05 خرداد 1392, 08:57 صبح
در پست 116 توضیح دادم ... الانم گرفتارم تا 3 ماه دیگه ... !

گفتم شاید به تازگی تغییراتی کرده باشه:لبخندساده:

اینو ببین یه برنامه خوب برای کاربا Process ها در MSWinاه که Open Source هم هستش حتماً به کارت میاد.
Process Hacker (http://processhacker.sourceforge.net/downloads.php)

Veyskarami
یک شنبه 12 خرداد 1392, 23:09 عصر
خیلی خوشحالم که میبینم همچین ایده هایی با جدیت ادامه پیدا میکنن
تو این کار اگه کمکی خواستی میتونم در خدمتتون باشم.

IamOverlord
جمعه 24 خرداد 1392, 22:24 عصر
سلام!

...
حالا من چیزی که توی ذهنم هست اینه که آیا راه بهتر از نوشتن درایور نیست ؟ یه چیزی که الگوریتمش از درایور بهتر باشه از هر لحاظ... اگه باشه که خیلی خوبه... :)
...

آخه درایور یه مزیت هایی داره که بقیه ندارن... درایورها تو Ring 1 یا Ring 2 اجرا می شن، ولی یه نرم افزار معمولی تو Ring 3 اجرا می شه که Ring های بالاتر نمی تونن به Ring های پایین تر دسترسی مستقیم داشته باشن.
دوستان این جا رو هم نیگا کنید: en.wikipedia.org/wiki/Ring_(computer_security) (http://en.wikipedia.org/wiki/Ring_(computer_security)‎)‎

بهروز عباسی
جمعه 24 خرداد 1392, 22:38 عصر
درایورها تو Ring 1 یا Ring 2 اجرا می شن
نه توی ویندوز !!
ویندوز به خاطر پشتیبانی از یک سری سخت افزار خاص فقط از Ring0 و Ring3 استفاده میکنه که به ترتیب Kernel-Mode و User-Mode رو تشکیل میدن.


Windows Internals :
The architecture of the x86 and x64 processors define four privilage levels (or rings)
to protect system code and data from being overwritten either inadvertently or maliciously
by code of lesser privilege. Windows uses privilege level 0 (or ring 0) for kernel mode and
privilege level 3 (or ring 3) for user mode. The reason Windows uses only two levels is that
some hardware architectures that were supported in the past (such as Compaq Alpha and
Silicon Graphics MIPS) implemented only two privilege levels.

IamOverlord
جمعه 24 خرداد 1392, 22:45 عصر
سلام!

سلام
قبل از هر چیز بگم فقط نصف پست اولو خوندم پس اگه یهو دیدید از مرحله پرتم واسه همینه!دوم اینکه نمیخوام با این حرفم بدمن داستان بشم اما از شمایی که میخوای روی این پروژه وقت بزاری و به رایگان برای اینکه عاشق چشم و ابروی مردمی از عمرت بگذری چنتا سوال دارم:
شما با اینکارت میخوای باعث گسترش علم دنیا بشی یا گسترش علم خودت؟

مگه شما فقط دنبال گسترش علم خودت یا علم دنیا می ری؟ نمی شه عمل خودت و چند نفر دیگه رو افزایش بدی؟


واقعا نمیفهمم چرا بعضی ها دنبال ساخت انتی ویروس یا چه میدونم سیستم عاملو این چیزا هستن,اونم تنهایی بدون بودجه و رایگان (حتما چون جوونای ایرانی میخوان خوشبختی زیادشون رو با مردم عزیزشون سهیم کنن!).

می تونی از کسایی که پروژه هاشون رو انجام دادن سوال کنی!
flatassembler.net (http://flatassembler.net)
dex-os.com (http://dex-os.com)
...


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

خوب، خوش حالیم که شما به علم دنیا کمک کردید، می شه بگید چه کمکی کردید؟ می شه به ما هم کمک کنید؟


چه ایده ای داری که بتونی باهاش بزنی رو دست eset یا avira یا میخوای ازشون تقلید کنی ؟(کاری که تو ایران مد شده) چون اگه هدفت شکست اونا و گسترش علم نباشه داری واسه گسترش علم خودت کار میکنی نه کمک به دنیا.لطفا اول تکلیفتو با خودت روشن کن,دیگه حالم از این تقلیداو کارای تکراری بهم میخوره ,چی میشه یکمی راهساز باشیم تا راهرو

شما اگه اول نتونی علم خودت رو گسترش بدی چه طوری می تونی علم دنیا رو گسترش بدی؟!

شما می شه بگی منظورت از راه سازی و راه روی دقیقا چیه؟! مگه این همه پروژه ی Open Source در واقع راه ساز نیستن؟

IamOverlord
جمعه 24 خرداد 1392, 23:03 عصر
سلام دوستان!

نه توی ویندوز !!
ویندوز به خاطر پشتیبانی از یک سری سخت افزار خاص فقط از Ring0 و Ring3 استفاده میکنه که به ترتیب Kernel-Mode و User-Mode رو تشکیل میدن.


Windows Internals :
The architecture of the x86 and x64 processors define four privilage levels (or rings)
to protect system code and data from being overwritten either inadvertently or maliciously
by code of lesser privilege. Windows uses privilege level 0 (or ring 0) for kernel mode and
privilege level 3 (or ring 3) for user mode. The reason Windows uses only two levels is that
some hardware architectures that were supported in the past (such as Compaq Alpha and
Silicon Graphics MIPS) implemented only two privilege levels.

ممنونم. نمی دونستم Windows از روش kernel-land و user-land استفاده می کنه.
ظاهرا سیستم عامل های مدرن از بیش تر از دو Ring استفاده نمی کنن.
این طور که دیدم درایور ها در Ring 0 تو Windows اجرا می شن که البته یه سری از درایور ها هم هستن که در حالت User-Mode تو همون Ring 3 کار می کنن.
پس یه سوال، این که آنتی ویروس ها درایور هاشون در حالت User-Mode اجرا می شه یا Kernel-Mode؟

Jarvis
جمعه 24 خرداد 1392, 23:10 عصر
پس یه سوال، این که آنتی ویروس ها درایور هاشون در حالت User-Mode اجرا می شه یا Kernel-Mode؟
Kernel-Mode

بهروز عباسی
جمعه 24 خرداد 1392, 23:16 عصر
ممنونم. نمی دونستم Windows از روش kernel-land و user-land استفاده می کنه.
خواهش میکنم . اگه می خوای بیشتر با معماری ویندوز آشنا بشی کتاب Windows Internals رو بخون.:لبخندساده:


این طور که دیدم درایور ها در Ring 0 تو Windows اجرا می شن که البته یه سری از درایور ها هم هستن که در حالت User-Mode تو همون Ring 3 کار می کنن.
درسته.


پس یه سوال، این که آنتی ویروس ها درایور هاشون در حالت User-Mode اجرا می شه یا Kernel-Mode؟
بستگی داره به کاری که می خواد انجام بده ؛مثلاً برای Monitor کردن رفتار/خود Process ها باید از هوکهای Kernel-Mode استفاده بشه خب طبیعتاً در این حالت باید از درایور های Ring0 استفاده کنن .شاید کسی بپرسه چرا ؟؟ ! چون ویروس ها و Rootkit های هستند که از هوک های Kernel-Mode برای مخفی کردن خودشون استفاده میکنن ،تمام توابعی که لیست پروسس های فعال رو برمیگردونن هوک میکنن و خودشون رو از لیست حاوی Process ها حذف میکنن با این کار نتیجه ای که به User-Mode میرسه کاملاً اشتباه چون اینطوری Process مربوط به اون برنامه مخرب دیده نمیشه در حالی که هست (هوک SSDT). ولی آنتی ویروس با درایور های کرنل مد میتونه ابن Process های مخفی رو ببینه:شیطان:.

امید وارم کمکی کرده باشم.

بهروز عباسی
جمعه 24 خرداد 1392, 23:26 عصر
آقا بهروز شما من نمیدونم شما چقدر اطلاعات در این زمینه دارید ... ولی خیلی خوبه که توی این بحث اطلاعات خودتون رو در اختیار میگذارید ... لطف می کنید ...
ممنون.
شما لطف داری ، من هیچ اطاعاتی در این باره ندارم:لبخند: جو سازی نکن:بامزه:
همه باید به هم کمک کنیم ،تا شاید یکی یه چیزی بسازه.
در ضمن لطف کنید پست های این تیپی نزنید (جسارت نشه)،یهو میبینی اینجا میشه Spam بازار.

اینم به خاطر بی محتوی نبودن این پست داشته باشید.

تفاوت User-Mode و Kernel-Mode (http://barnamenevis.org/showthread.php?391103-%D9%86%D9%88%D8%B4%D8%AA%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B3%D8%AE%D8%AA-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1&p=1790465&viewfull=1#post1790465)
ببخشید دیگه وقت نشد کاملش کنم.

IamOverlord
جمعه 24 خرداد 1392, 23:27 عصر
سلام دوستان.
ببینید منم قبلا می خواستم یه آنتی ویروس، حداقل یه نرم افزار امنیتی بسازم. یه ایده ای داشتم که اول قرار شد بیام یه نرم افزار ساده بنویسم که دسترسی به یه پوشه ی خاص رو کنترل کنه، مثلا:
چه Process ای سعی داره اون پوشه رو پاک کنه یا تغییر نام بده؟
چه Process سعی داره فایلی رو در اون پوشه یا زیر پوشه هاش ایجاد کنه یا حذف کنه؟
چه برنامه ای در اون پوشه قراره اجرا بشه؟
...
و چه طور می شه از این اعمال جلو گیری کرد؟
یه مطالبی در مورد Hooking خوندم، اما به مرحله ی عمل نرسیدم...
حالا می گم اگه می شه بیایم همین قسمت رو انجام بدیم؟ :متفکر:

بهروز عباسی
جمعه 24 خرداد 1392, 23:38 عصر
سلام دوستان.
ببینید منم قبلا می خواستم یه آنتی ویروس، حداقل یه نرم افزار امنیتی بسازم. یه ایده ای داشتم که اول قرار شد بیام یه نرم افزار ساده بنویسم که دسترسی به یه پوشه ی خاص رو کنترل کنه، مثلا:
چه Process ای سعی داره اون پوشه رو پاک کنه یا تغییر نام بده؟
چه Process سعی داره فایلی رو در اون پوشه یا زیر پوشه هاش ایجاد کنه یا حذف کنه؟
چه برنامه ای در اون پوشه قراره اجرا بشه؟
...
و چه طور می شه از این اعمال جلو گیری کرد؟
یه مطالبی در مورد Hooking خوندم، اما به مرحله ی عمل نرسیدم...
حالا می گم اگه می شه بیایم همین قسمت رو انجام بدیم؟ :متفکر:

ایده بدی نیست ،سخت هم نیست ،ولی یه مشکل هست !
برای Hooking خوب باید Kernel-Mode کارکنیم تا از دورزدگی جلوگیری کنیم:لبخند: توی نسخه های 64بیتی ویندوز برای اینکه بتونیم یک درایور رو نصب و اجرا کنیم باید اونو Sign کنیم ؛یعنی با خریدن یک کواهینامه از سازمانی معتبر ایمن بودن اون درایور رو به سیستم عامل ثابت کنیم، متاسفانه ایران تحریمه و نمیتونیم این گواهینامه رو بخریم پس تا اینجا باید 64bit رو کنار بذاریم یا برای سازگاری هردو (32بیت و 64بیت) از هوک User-Mode استفاده کنیم در این صورت هم بایک سری Handle و ... بیشتر سروکار نداریم.

بهروز عباسی
جمعه 24 خرداد 1392, 23:43 عصر
اواخر تابستون اگه بشه کارای گرافیک سایروس رو تموم میکنم
آخرین طرح GUI رو هم میتونید توی این پست ببینید ... منتظر نظرات هستم
http://barnamenevis.org/showthread.php?388722-%D8%B4%D8%B1%D9%88%D8%B9-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%DB%8C-%D8%A2%D9%86%D8%AA%DB%8C-%D9%88%DB%8C%D8%B1%D9%88%D8%B3-%D9%85%D8%AA%D9%86-%D8%A8%D8%A7%D8%B2-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-...&p=1750451&viewfull=1#post1750451

راستش من که الان نتونستم عکسو ببینم ،ولی حتماً قبلاً دیدمش ؛اگه نظری ندادم حتماً خوب بوده.
آقای صالحی لازم بابت کمکتون برای ساخت UI برنامه ازتون تشکر میکنم .
اگه تونستی با آقای نقدی هماهنگ کن یه دمو ازش بذارید اینجا.

IamOverlord
شنبه 25 خرداد 1392, 13:13 عصر
خوب پس یه مسئله ای، آیا می شه گفت یه جورایی همه ی برنامه های Windows...
از DeleteFile در Kernel32 برای حذف فایل ها استفاده می کنن؟
از RemoveDirectory در Kernel32 برای حذف پوشه ها استفاده می کنن؟
از MoveFile در ...؟

حالا برای Hooking کدمون در Kernel32 و جلوگیری از انجام بعضی کارها باید چی کار کنیم؟

بهروز عباسی
شنبه 25 خرداد 1392, 13:30 عصر
آیا می شه گفت یه جورایی همه ی برنامه های Windows...
از DeleteFile در Kernel32 برای حذف فایل ها استفاده می کنن؟


تقریباً آره ؛این تابعی که شما گفتی(DeleteFile (http://msdn.microsoft.com/en-us/library/windows/desktop/aa363915(v=vs.85).aspx)) میشه Windows API و کاملاً در User-Mode فراخوانی میشه ،ولی اجرا نمیشه !! یعنی چی ؟؟ یعنی اینکه این توابع در چند مرحله کنترل میشن تا به کرنل برسن ؛توی یوزر مد پارامترها چک میشه اگه درست بود به NTDeleteFile (http://msdn.microsoft.com/en-us/library/windows/hardware/ff556489(v=vs.85).aspx) که در ntdll.dll قرار داره ارسال میشه و بعد این تابع با یک System Call منجر به اجرای کدهای سطح پایین توسط ZwDeleteFile (http://msdn.microsoft.com/en-us/library/windows/hardware/ff566435(v=vs.85).aspx)
در NTOSKRNL.EXE می شود .

اگه بخوای Hook کنی باید این توابع (Native API) رو هوک کنی
[این مقاله رو بخونی بد نیست Nt vs. Zw - Clearing Confusion On The Native API (http://www.osronline.com/custom.cfm?name=articlePrint.cfm&id=257) ].


حالا برای Hooking کدمون در Kernel32 و جلوگیری از انجام بعضی کارها باید چی کار کنیم؟
چندین راه وجود داره ،فکر کنم خوندن این مقاله کمکت کنه105591

توی این کتاب Rootkits: Subverting the Windows Kernel (http://www.amazon.com/Rootkits-Subverting-Windows-Greg-Hoglund/dp/0321294319/ref=pd_sim_b_4/185-5288727-8861522) در مورد هوک توضیح داده شده هم User mode و هم Kernel mode
اگه بازم مشکلی داشتی بگو.

A.iman
شنبه 25 خرداد 1392, 14:18 عصر
کاش کمی هم در مورد امنیت شبکه و فایرو وال هم بحث میکردین ............

بهروز عباسی
شنبه 25 خرداد 1392, 14:29 عصر
کاش کمی هم در مورد امنیت شبکه و فایرو وال هم بحث میکردین ............
بذارین تا اینجا درستو حسابی پیش بره امنیت شبکه و ... بماند.

فایروال هم خودش دنیای خاصی داره ،نمیشه همینطوری گفتش در ساده ترین حالت یک درایور داریم که Port های باز و کلیه Packet هایی که ارسال/دریافت میشن رو Monitor میکنه و بسته به اینکه اون Packet چه محتوایی داره یه کاری انجام میده. (یعنی اصل شبکه:لبخند:)

Abbas Naghdi
یک شنبه 26 خرداد 1392, 01:44 صبح
با سلامی دوباره و با تشکر از آقای صالحی و آقای عباسی و ...

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

بهروز عباسی
جمعه 14 تیر 1392, 01:05 صبح
درود به همه

امروز این مقاله رو دیدم به نظرم جالب بود ،شما هم بخونید بد نیست


Experiences with Implementing a Simple Antivirus Engine

Abstract
In this report we describe our experiences with implementing Simple AntiVirus Engine (SAVE) designed to statically detect a virus family in obfuscated files. The engine is implemented in a flexible and extensible way allowing for easy incorporation of new features. We pay much attention to assessing advantages and drawbacks of the current detection scheme along with proposing possible ways of improving the engine.

بهروز عباسی
سه شنبه 18 تیر 1392, 11:48 صبح
The Art of Computer Virus Research and Defense (http://www.amazon.com/The-Computer-Virus-Research-Defense/dp/0321304543)

برای شناخت روش کار AVها و البته Virus ها ،کتاب خوبیه حتماً مطالعش کنید.

بهروز عباسی
جمعه 21 تیر 1392, 09:07 صبح
خوندنش خالی از لطف نیست.:تشویق:

ايتنا- سنجاي كتكار ، مدير ارشد فني، طراح و عضو هيات مديره شركت تكنولوژي هاي كوييك هيل مي باشد. براي روشن شدن بعضي از مسائل در مورد اين شركت امنيتي و بالاخص مباحث فني در زمينه ويروس و ضد ويروس جلسه مصاحبه اي با او برگزار كرديم.


کوييک هيل، توليدکننده پيشروي آنتي ويروس و ابزار امنيت اينترنتي است. از زمان پايه گذاري شرکت در سال ۱۹۹۳ کوييک هيل پيوسته درگير تحقيق و توسعه حوزه فناوري آنتي ويروس مي باشد.

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

شما يکي از بنيانگذاران و مدير ارشد تکنولوژي شرکت کوييک هيل هستيد؛ لطفا درمورد حرفه خود بيشتر براي ما توضيح دهيد.
کار ما رديابي آخرين تهديدهاي اينترنتي، بدافزارهاي جديد و تکنولوژي هايي است که هکرها و مجرمين شبکه از آنها براي نفوذ به سيستم و ضربه زدن به آن استفاده مي کنند. در واقع کار من کمک به کاربران کامپيوتر براي محافظت از سيستم هايشان و اطلاعات ذخيره شده در آنها با استفاده از آخرين تکنولوژي هاي مربوط به امنيت IT مي باشد. همچنين تحقيقات در رابطه با ميزان آسيب پذيري پايگاه هاي جديد از ديدگاه امنيتي بر عهده من است.

کوييک هيل چطور راه اندازي شد؟ چرا تصميم گرفتيد روي يک نرم افزار آنتي ويروس کار کنيد؟
در زمان فارغ التحصيلي و فعاليت هاي مربوط به آن، من علاقه مند به تحقيق در رابطه با آنتي ويروس و تحليل ويروس ها شدم. در طي مطالعات پس از تحصيل، به نتايجي رسيدم که بتوانم از کامپيوتر خود در برابر ويروس هاي آن زمان محافظت کنم. برادر بزرگ من کايلاش در آن زمان در زمينه نصب و تعمير کامپيوتر فعاليت مي کرد. او از من خواست نتايج بدست آمده خود را در قالب يک محصول ارائه دهم. اينچنين بود که اولين نسخه کوييک هيل متولد شد. پس از تکميل مطالعاتم کوشش کردم ويژگي هاي اين نرم افزار را توسعه دهم که منجر به Quick Heal Anti-Virus ۳.۰ در سال هاي ۱۹۹۴-۹۵ شد.

لطفا در مورد نحوه عملكرد تكنيكي يک نرم افزار آنتي ويروس كمي بيشتر توضيح دهيد؟
پاسخ به اين سوال مي تواند طولاني، فني و خارج از حوصله خوانندگان شما باشد. من سعي مي کنم با فهرست بندي اينکه هريک از اجزاي آنتي ويروس چطور کار مي کند، در مورد آن يک بررسي کلي انجام دهم. يک نرم افزار آنتي ويروس کامل شامل چندين واحد مهم مانند اكسنر، اسكن حافظه، محافظ از ايميل، محافظ بلادرنگ (Real Time) و غيره مي باشد. ترکيب اين واحدها محافظت کاملي به سيستم مي بخشد. در هسته همه اين بخش ها موتور آنتي ويروس است که هدف اسکن ويروس را دنبال مي کند. اين يک موتور قدرتمند چندرشته اي (multi-threaded) و چندوظيفه اي(multi-tasking) است که مي تواند فايل/فولدر/ بافر را به صورت كارآمد براي هرنوع بدافزار و تهديد اسکن کند. هريک از اين واحدها از نظر کاربرد و يکپارچه شدن با سيستم، جهت تامين محافظت کاملا پيچيده هستند.مثلا Real Time Protection بر مبناي درايور فايل سيستم كه درهسته قرار دارد عمل مي كند. اين واحد در همه فعاليت هاي پديد آمده در سيستم نفوذ مي کند تا اطمينان پيدا کند دسترسي به فايل ها بدون آلودگي هستند. Email protection بر مبناي درايور كارت شبکه عمل مي کند و همه ايميل هاي دريافتي و ارسالي را به صورت پيشگيرانه بررسي و اسکن مي نمايد.
مهم ترين جزء موتور آنتي ويروس شامل بخش هاي مختلفي مانند شناسايي و تجزيه فرمت، از حالت آرشيوي و بسته بندي درآوردن، اسکنر امضاء، نمونه ساز و غيره استُ. به عبارت ساده تر کار اصلي موتور آنتي ويروس اسکن فايل از ويروس و حضور ساير بدافزارها از طريق اسکن اوليه تعاريف ويروس(امضاء) مي باشد. پس از آن موتور ويروس ياب اسکن هاي مختلفي را برحسب نوع فايل و محتواي فايل به کار مي گيرد. مانند موتور شناسايي ويروس چندريختي، شناسايي نشانه هاي عمومي بدافزار و غيره. همچنين ابزاري در بيشتر موتورهاي آنتي ويروس به نام اسکنر اکتشافي وجود دارد که براي شناسايي مالويرهاي ناشناخته جديد به کار مي رود.
اميدوارم پاسخم به اندازه کافي در رابطه با تكنولوژي محصولات آنتي ويروس شفاف بوده و خوانندگان را راضي کرده باشد.

به نظر شما يك مهندس بايد چه دانش فني داشته باشد تا بتواند در زمينه تکنولوژي آنتي ويروس فعاليت کند؟ آيا نياز به داشتن دانش عميق در زمينه سيستم هاي عامل مي باشد؟
تکنولوژي آنتي ويروس در طي زمان تغييرات بسياري کرده و شکل بزرگي از سيستم امنيتي شامل جنبه هاي متفاوت امنيت را به خود گرفته است. از آنجا که هرروز تهديدهاي امنيتي تازه اي کشف مي شود، حوزه سيستم امنيتي نرم افزارهاي ضدويروس در همه زمينه ها رشد کرده اند. براي مقابله با همه اين تهديدها شخص نياز به داشتن دانش عميق در زمينه سيستم مورد نظر دارد. بسيار دشوار است که يک شخص به تنهايي بتواند دانش عميقي در زمينه همه سيستم عامل ها با تکنولوژي هاي متفاوت را در عصر حاضر داشته باشد. بنابراين فضا براي همه کساني که دانش عميقي درباره هر يک از جنبه هاي سيستم هاي عامل يا شبکه دارند وجود دارد. اين حوزه مي تواند سيستم فايل، شبکه، فرمت فايل، مديريت حافظه ،مهندسي معکوس، تحليل بدافزار، آناليز آسيب پذيري، پيامگذاري و غيره باشد.
شما درست مي گوييد، يك مهندس بيش از ۹۰% به اطلاعات كامل در زمينه مفاهيم سيستم عامل و به طور خاص بخشي که روي آن کار مي کند نياز دارد. مثلا مهندسي که در زمينه سيستم فايل اطلاعات دارد ممکن است در مورد مهندسي معکوس وارد نباشد.

بدترين نوع ويروس، تروجان يا كرم رايانه اي که در کوييک هيل با آن مواجه شديد چه بود؟ چطور تيم مهندسي شما به اين تهديدها پاسخ مي دهد؟
امروزه بيشتر بدافزارها براي ما حکم بدترين را دارند، از آنجا که مجرمين شبکه از طريق Hack کردن امرار معاش مي کنند، کوشش مي کنند براي مدت طولاني ناشناس باقي بمانند. آنها با استفاده يا استقرار بهترين ابزارها و بدافزارها كار خود را به بهترين وجه انجام مي دهند. بنابراين جديدترين بدافزارها بهترين بسته بندي، رمزنگاري و قابليت نفوذ را دارند که شناسايي آنها را دشوار مي کند.
اگر شما به دنبال اسامي خاصي از ويروس/تروجان/كرم اينترنتي هستيد، اجازه بدهيد بگويم پيچيده ترين تکنيک هايي که مالويرها استفاده مي کنند غيرمعروف ترين آنهاست؛ در حالي که ساده ترين ويروس ها مشهور شده و رو به گسترشند. بنابراين اسامي که من ذکر مي کنم ممکن است به نظر آشنا نيايند چون معروف نيستند اما بدترين انواع بدافزار به شمار مي آيند. دسته هاي چندريختي و دگرگون شده مالور بدترين انواع آنها هستند و چند نوع از آنها که فروشندگان آنتي ويروس ها را به دردسر انداخته شامل موارد زير مي باشد:
One Half, Natas در سيستم عامل MS-DOS
W۳۲/Marburg, W۳۲/CTX, W۳۲/Crypto, W۳۲/Zmist, W۳۲/Etap در سيستم عامل ويندوز
جهت اجراي شناسايي دقيق و به موقع در مورد چنين مالويرهايي، تحليلگران مالوير ما از تکنيک هاي نوين و بديع مهندسي معکوس استفاده مي کنند. در بسياري از مواقع اين امر تلاش جمعي گروهي از مهندسان را برمي انگيزاند تا مالور را قسمت به قسمت شناسايي کنند تا به راه حلي برسند. هرگاه چنين موقعيتي ايجاد شد تيم فني كوييك هيل بصورت شبانه روز کار مي کنند تا به راه حل منطقي شناسايي مالور برسد و آنرا به صورت آپديت براي کاربران ارائه دهند.

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

کوييک هيل راه حل هاي آنتي ويروس را براي انواع سيستم عامل هاي UNIX ارائه مي دهد. نوع ويروس هايي که بر روي سيستم عامل هاي مبتني بر يونيكس اثر مي گذارند چيست؟
ويروس هايي بر سيستم عامل هاي UNIX و يونيكس-مانند اثر مي گذارند که به طور کلي از فرمت فايل اجرايي ELF استفاده کنند. يونيكس انواع متفاوتي از بدافزارها را به خود ديده مانند ويروس هاي برمبناي shell-code، ويروس هاي اسكريپتي، ويروس هاي فايل هاي ELF آلوده به ويروس ها، كرم هاي منتشر شده از طريق ايميل و root-kitها. به علاوه پلتفرم هاي مشهور UNIX نيز مکان مناسبي براي ورود مالورهاي مرسوم بر مبناي ويندوز مي باشند.

ضمن سپاس از شما، آيا براي خوانندگان ايراني پيامي داريد؟
توصيه من به تمام مهندسين نرم افزار اين است که عرصه جرايم شبکه به معناي واقعي درحال گسترش است و به گونه بي حد و حصر اهداف منفي خود را مي جويد. همه آنهايي که در زمينه فعاليت هاي تجاري و تکنولوژي کار مي کنند، لطفا مراقبت امنيتي را به طور دقيق در هر سطح مهندسي نرم افزار رعايت کنند. از مرحله طراحي تا مرحله آزمايش بايد جنبه هاي امنيتي در فرايند لحاظ شود. به خصوص در مرحله آزمايش لطفاً مهندسان تقاضاها را از ديدگاه امنيتي مورد بررسي قرار دهند. براي اطلاعات بيشتر در اين زمينه به کتابي از مايکروسافت تحت عنوان The Security Development Life Cycle (چرخه حضور توسعه امنيت) تاليف Michael Howard & Steve Lipner مراجعه کنيد. اين کتاب جالبي براي آغاز به تفکر در اين مسير مي باشد. با چنين فعاليتي اگر نتوانيم جلوي هک شدن را بگيريم حداقل فعاليت هاي مضر و خرابکارانه را محدودتر و انجام آنها را دشوارتر مي سازيم.
بسيار متشکرم که مرا براي اين مصاحبه دعوت کرديد. اميدوارم پاسخ هاي من براي خوانندگان مفيد بوده باشد. اگر پرسش ها و ترديدهاي بيشتري داريد مي توانيد از طريق ادرس ايميل اسم کوچکم در کوييک هيل دات کام با من در ميان بگذاريد تا پاسخ دهم.

منبع (http://www.iranled.com/forum/thread-20371.html)

بهروز عباسی
جمعه 21 تیر 1392, 09:09 صبح
در دنياي شبكه‌اي امروز، لزوم داشتن يك نرم‌افزار ضدويروس قدرتمند كه كامپيوتر ما را از انواع ويروس‌ها، كرم‌ها، بمب‌هاي منطقي و به‌طور كلي كدهاي مخرب مصون بدارد، بيش از هر زمان ديگري احساس مي‌شود. خوشبختانه (شايد هم متأسفانه) انتخاب‌هاي متعددي در اين زمينه وجود دارد. ولي واقعاً كدام يك از آن‌ها مي‌تواند بهتر مشكل كامپيوتر (يا كامپيوترهاي شبكه) ما را حل كند؟ كافي است سري به سايت‌هاي مربوط به فروشندگان اين نوع نرم‌افزارها بزنيد. به نظر مي‌رسد كه همه آن‌ها از بهترين‌ها هستند. و همه آن‌ها در تمام طول سال و در تمام 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 كه گفته است: استفاده از ويروس‌هاي واقعي براي تست كردن يك ضدويروس در يك محيط عملياتي مانند اين است كه شما آتش را به دفتر كار خود بياوريد و بعد بخواهيد بررسي كنيد كه آيا حسگرهاي دود‌ به خوبي كار مي‌كنند يا نه؟ شما هرگز نمي‌توانيد از نتيجه كار مطمئن باشيد. ممكن است برنامه ضدويروس نتواند همه موارد را شناسايي كند و ويروس‌ها شروع به پاك كردن داده‌هاي ارزشمند سيستم شما و پخش شدن در شبكه بنمايند. امري كه ممكن است به بهاي از دست دادن شغلتان تمام شود.
دوم: اگر شما واقعاً مي‌خواهيد مطمئن شويد كه يك ضدويروس قادر به انجام چه كارهايي است مي‌توانيد در سايتhttp://www.eicar.org (http://www.eicar.org/) يك سري آزمايش‌هاي بي‌خطر جهت آزمايش ضدويروس پيدا كنيد. در اين سايت فايل‌هاي آزمايشي و بي‌خطري وجود دارند كه بيشتر ضدويروس‌ها آن‌ها را به عنوان ويروس شناسايي مي‌كنند.
در اين حالت اگر ضدويروس موفق به از بين‌بردن ويروس شود چه بهتر و چنانچه نتواند، شما هيچگونه اطلاعاتي از دست نخواهيد داد. بدين‌ترتيب مي‌توانيد يك روش امن براي آزمايش ضدويروس به كار ببنديد.
سوم: شما مي‌توانيد از منابع موجود كه قبلاً اين كار را انجام داده‌اند استفاده كنيد. بعضي از سازمان‌ها، متولي انجام همين فعاليت مي‌باشند. ليستي از ويروس‌ها توسط http://www.wildlist.org (http://www.wildlist.org/) نگهداري مي‌شود. در اين سايت مي‌توانيد ببينيد كه detection Rate يا نرخ شناسايي هر ضدويروس چقدر است.
اين سايت‌ها نيز براي اين منظور مفيد مي‌باشند:
http://www.virusbtn.com: (http://www.virusbtn.com/) اين سايت، آماري از توان ضدويروس‌ها براي شناسايي ويروس‌هاي موجود در سايت wildlist (در دو مورد on-demand,Real-time) را ارايه مي‌كند.
http://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. سیستم رادار : اطلاع رسانی به کاربران.
و ده ها تکنیک دیگر.


(به نقل از شماره 48 ماهنامه شبکه)

Abbas Naghdi
سه شنبه 25 تیر 1392, 00:35 صبح
http://barnamenevis.org/showthread.php?406010-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%A2%D9%86%D8%AA%DB%8C-%D9%88%DB%8C%D8%B1%D9%88%D8%B3-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C

بهروز عباسی
پنج شنبه 27 تیر 1392, 22:00 عصر
تا اینجا بیشتر حرف بود و تئوری شاید بهتره شروع کنیم .

من کمی روی این پروژه فکر کردم ،به نظرم فعلاً باید به این ترتیب عمل کنیم و کارهای رو پیش ببریم :



ساخت قسمت مربوط به جستجوی فایل ها و تهیه (MD5 or SHA1) Hash (که ظاهراً نوشته شده).
طراحی و پیاده سازی یک دیتابیس مناسب برای Hash ها و امضای ویروس ها.
طراحی قسمت مربوط به HOOK های Ring 3 (وقتی پروژه کمی پیشرفت داشت باید به فکر Ring 0 بود).
طراحی قسمت مربوط به Analysis فایل های اجرای برای تشخیص ویروس ها (Infection , Injection,...).

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


یه کم توضیح در مورد موارد بالا.
1 : که قبلاً هم بحث شده و نیازی نیست خیلی وارد جزئیات بشم ؛ در این مرحله با استفاده از Algorithm هایی مثل MD5 یا SHA1 اقدام به تهیه یک Hash از فایل ها میکنیم ،یک هش مقداریه که برای هر فایل منحصر به فرده یعنی اگر ویروس NewFolder رو ازش Hash تهیه بشه توی تمام سیستم ها با همون Hash قابل شناسایی (به شرطی که دقیقاً همون نسخه باشه و حتی یک Bit هم تفاوت نداشته باشه).
ما با یک دیتابیس از هش های ویروس های مختلف داریم بعد میایم دونه دونه فایل ها رویدا میکنیم ازشون هش میگیرم و با دیتابیس مقایسه میکنیم اه Hash یک فایل با یکی از مقادیر دیتا بیس یکی بود اون ویروسه و مشخصاتش هم از دیتابیس اشتخراج میکنیم ولی این روش یه عیب داره اونم اینه که فقط نسبت به گذشته کامله یعنی اگر من الان یه ویروس بنویسم و دیتابیس مال یک هفته قبل باشه ویروس من شناسایی نمیشه ،به همین خاطر باید به دنبال روش های دیگه ای باشیم که در ادامه توضیح میدم.


2 : خب معلومه دیگه باید یه دیتابیس خیلی ترو تمیز طراحی بشه تا موقع مقایسه ها سرعت کم نباشه و ... .


3 : هوک ها یکی از اساسی ترین اجزاء یک AV هستن و انواع مختلفی هم دارن در ساده ترین حالت یک واسطه هستن بین OS و برنامه ها (که میتونن ویروس هم باشن) و به درخواست هایی که از طرف برنامه ها به OS داده میشه و پاسخ های OS گوش میدن و اونا رو دریافت میکنن البته میشه اونها رو تغییر داد یا هر بلایی سرشون آورد ، خب توی AV ها چه استفاده ای دارن .


بیشتر برای Monitor کردن رفتار برنامه ها مورد استفاده قرار میگیره مثلا یک برنامه تابع APIای رو برای حذف فایل ها مورد استفاده قرار میده Av روی اون تابع هوک میکنه اگه برنامه ای با اون تابع قصد حذف فایل های سیستمی و مورد نیاز OS رو داشت جلوی اون رو میگیره تا خرابکاری نکنه و اونو به عنوان ویروس میشناسه.


4 : این مورد و تقریباً مورد قبل همون چیزای هستن که قرار شد در ادامه مورد اول توضیح بدم ؛ شما دیدن که بدون استفاده از دیتابیس هش ها ما با یک هوک یک برنامه مخرب رو کشف کردیم این خیلی خوبه حتی اگه دیتابیس هم نباشه AV میتونه تشخیصش بده ولی بازم کافی نیست
چرا ؟؟
چون بعضی برنامه ها با سطح دسترسی بالای اجرا میشن و اجازه هر کاری رو دارن و AV هم نمیتونه به خاطر حذف یک فایل بهش گیر بده ،ویروس های موزی میان این برنامه ها رو مورد حمله قرار میدن و کدهای مخرب خودشون رو به این برنامه های با دسترسی بالا تزریق میکنن اون موقع هم کدهای مخرب اجرا میشن و هم AV باید بره دنبال نخود سیاه :! اینجاست که باید به فکر آنالیز Process ها و فایل های اجرایی باشیم تا در زمان اجرا اگر تزریق کد رخ داد بتونیم تشخیصش بدیم و ازش جلو گیری کنیم یا وقتی ویروسی خودش رو به برنامه های دیگه میچسبونه بتونیم اون ویروس رو با این که در دل یک برنامه دیگه (در واقع فایل های روی دیسک) تشخیص بدیم.

* نکته : من فکر میکنم دوستان تفاوت امضای ویروس (Signature) و Hash اون رو نمیدونن (چند جا به جای هم استفاده شدن) ؛ امضای ویروس به قطعه کدی گفته میشه که توی یک ویروس منحصر به فرده و لی هش یه چیز کلی از اونه هش با کوچک ترین تغییری در ساختار فایل ویروس به هم میریزه ولی امضا نه !! در کل دقت امضا بیشتر Hash اه . امضای ویروس حتی اگر ویروس خودش رو به برنامه ای دیگه چسبونده باشه میتونه باعث شناسایش بشه ولی Hash نه .

Abbas Naghdi
پنج شنبه 27 تیر 1392, 23:13 عصر
با تشکر از بهروز عزیز


ساخت قسمت مربوط به جستجوی فایل ها و تهیه (MD5 or SHA1) Hash (که ظاهراً نوشته شده)

بله ... این قسمت نوشته شده ... مشکلاتی داره مثل کرش شدن برنامه در مواقعی که فایل ها زیادن و حجیم (این مشکل با thread ها حل میشه )
MD4 , MD5 , SHA1 , SHA256 نوشته شده !



طراحی و پیاده سازی یک دیتابیس مناسب برای Hash ها و امضای ویروس ها.
این یکم مشکل داره ( یعنی جای بحث داره) ... من یه دیتا بیس دارم پیوست میکنم !
این دیتا بیس مال یکی از دوستام (یکی از مدیرای تیم آشیانه هست) که این دیتا بیس رو روی آنتی ویروس خودش به کار برده بود ...
میتونید این آنتی ویروس رو از پست زیر دانلود کنید
http://ashiyane.org/forums/showthread.php?66538-Antivirus-Ashiyane-Version-0-01-Beta&p=336823#post336823
پست بعدی دیتابیس رو آپ میکنم ... <

Abbas Naghdi
جمعه 28 تیر 1392, 00:25 صبح
حجم دیتا بالا بود برای همینم یه بخشیشو کپی کردم (1000 تا از 649030 تا) و پیوست شد !
خودتون میتونید ببینید چی پیدا میکنه ...

سام یه همچین چیزی برای دیتا بیسش خوبه ؟

Abbas Naghdi
جمعه 28 تیر 1392, 03:25 صبح
بچه ها یه کروشه اینجا باز میکنم ...


بخشی از صحبت های من با مایکروسافت ...

آیا WinC++‎‎ جای VC++‎‎ را خواهد گرفت ؟

There is no such product as WinC++‎‎. There were some postings in 2011 about WinC++‎‎ hinting there might be a new appellation to the Visual C++‎‎ product, but this obviously has never transpired

توضیحات ...

C++‎‎ and WIN32 gives you all the tools you need to write anti-virus software. However, the subject is way more involved than we can possibly go into here. There are multiple facets to it: Identifyin[QUOTE]g suspect code (either known viruses or things that appear to be malicious), understanding the physical media (boot sectors, etc...) of physical devices, learning how to intercept certain calls in networking, autorun, etc... to known when to scan for things, learning how viruses attempt to defeat antivirus software, learning how to build a database of known threats and how to update your clients regularly, how to remove or render safe viruses found, etc..

There's a good reason why Semantec and McAfee gets good money for this (and why Microsoft doesn't bother with their own product).

If you really want to learn, run a search engine and there are some simplistic tutorial information. There are books on the subject of the nature of viruses/malware, detection, etc.. that you can learn. This is not a small undertaking.

I've done a very smaller program that scrubs files like an antivirus looking for certain "bad words" (detecting leaked classified information). Even that is way more than we could explain in a forum posting

Abbas Naghdi
جمعه 28 تیر 1392, 03:37 صبح
اینم سوال در مورد برنامه نویسی آنتی ویروس برای Windows 8 یا Windows Store


Windows Store apps are sandboxed and have limited access to the file system; by default they only have access to their own local and roaming data areas but you can declare app capabilities to gain additional access: http://msdn.microsoft.com/en-us/library/windows/apps/hh464936.aspx . By design there is no way to get full access to the complete file system in a Windows Store app; it's part of the security model.

In addition to the Windows Runtime APIs ( http://msdn.microsoft.com/en-US/library/windows/apps/br211377 ) you can also use the Win32 and COM APIs that are listed here: http://msdn.microsoft.com/en-US/library/windows/apps/br205757 .

For more on getting started with programming Windows Store apps, see the Getting Started with Windows Store apps page: http://msdn.microsoft.com/en-us/library/windows/apps/br211386.aspx .

You could write an app that would scan files for viruses but since it would not have access to things like the Windows directory or other restricted areas of the hard drive and since Windows Store apps only run when they are in the foreground (though you can add the ability to run in the background in limited circumstances), it would be of limited use. Note that any app you write will need to comply with the Windows 8 app certification requirements: http://msdn.microsoft.com/library/windows/apps/hh694083 .

همون سوال ادامه ...

One way I've seen some engineers going about this is to develop the virus scanning engine for Win8 Desktop believing that they could then develop a secondary (Metro) application and have this as the controller of the Desktop application. Not a real solution, as the Metro application is restricted from communicating (e.g. Pipes/Loopback IP) with any other application on the system (Metro or Desktop). You could do something where the Desktop application communicates to a remote server as well as the Metro application, but that sounds kinda messy.

barnamenevisjavan
چهارشنبه 02 مرداد 1392, 17:53 عصر
سلام خسته نباشید میشه یه ریلیز پیشنمایش واسمون از سایروس بزاری؟تا ازش استفاده کنیم علاوه بر تکمیلش نرم افزارو تست هم بکنیم و باگ یابی...

juza66
چهارشنبه 30 مرداد 1392, 08:15 صبح
چندوقتي هستش از ماه مبارك رمضان بگذشته آقاي موسوي

همچنان منتظر دموي برنامه و نتايج تحقيقات تون هستيم

بهروز عباسی
یک شنبه 17 شهریور 1392, 11:38 صبح
:ناراحت:

چقدر خلوته این جا!:ناراحت:

بخونید که جالبه
Making an antivirus engine : the guidelines (http://www.adlice.com/making-an-antivirus-engine-the-guidelines/)

mehran901
شنبه 30 شهریور 1392, 14:49 عصر
خسته نباشین بچه ها ، نسخه دمویی که قرار بوده ارائه بشه چی شدش آیا ؟ :متفکر:

Abbas Naghdi
یک شنبه 31 شهریور 1392, 16:38 عصر
سلام بچه ها ...

میدونید که مدتیه آنتی ویروس ایرانی به اسم پادویش سروکلش پیدا شده ...

من این آنتی ویروس رو نصب و آزمایش کردم ... و مشکلات و ... رو به شرکتش گذارش میدم ... بهتره شما هم این کار رو کنید
این آنتی ویروس لینک دنلود مستقیم نداره و شما باید اونو از شرکتش در خواست کنید ... من درخواست کردم و یه نسخه ی آزمایشی + کلید 60 روزه دریافت کردم به اسم خودم ...
البته جا داره بگم شاید به تیم برنامه نویسیش پیوستم ... چون من اعلام آمادگی کردم و شرکت امن پرداز هم همینطور ...

اینم سایت آنتی ویروس و سایت شرکتش ...
http://www.padvish-antivirus.com
http://amnpardaz.com

در خواست دانلود آنتی ویروس رو به ایمیل زیر ارسال کنید ... بعد از مدتی لینک دانلود + کلید این آنتی ویروس برای شما ارسال میشه ...
ایمیل : beta@amnpardaz.com

البته شما میتونید این آنتی ویروس رو از اینجا دانلود کنید ... این لینکیه که به من دادن اما برای دریافت کلید حتما درخواست ارسال کنید ... (http://download.amnpardaz.com/PadvishAntivirus_20130715_1609_beta_v1.0_build_109 0.exe)

شاید برای شما هم جالب باشه بدونید که در آزمایشی که از این آنتی ویروس انجام دادم فهمیدم که این آنتی ویروس بیشتر قدرتشو از هوشمندیش میگیره نه از دیتابیس ... فایل های ویروسی رو که Avira و Kaspersky شناسایی کردن رو شناسای کرد .. بدون آپدیت و فعال ساز:)
حتی در یک فروم در باره ی این آنتی ویروس بحث شده بود و یکی از یوزر ها این آنتی ویروس رو با Smart Security مقایسه کرده بود ... نتیجه ی مقایسه ... پادویش موفق تر بوده ... من در این شکی ندارم

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

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

باید منتظر نسخه ی 1 این آنتی ویروس باشیم ... بدون شک با برطرف شدن مشکلات نسخه ی آزمایشی و ارائه ی نسخه ی پایدار و ... این آنتی ویروس نه تنها در ایران بلکه در تمام دنیا طرفدار داره ... البته اگه بعد از مدتی به علت نبود پشتیبانی مالی و ... مثل ایمن نشه :(

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

UfnCod3r
پنج شنبه 04 مهر 1392, 11:10 صبح
داری زیاده روی می کنی
انتی ویروس های ایرانی چیز خاصی ندارن و اکثرا هم کپی بردارش شده هستند و واقع به هیچ دردی نمی خورن .
مثل موتور های جستجو و سیستم عامل و گوشی هایی که ادعای ایرانی بودن می کنن :قهقهه:
به عنوان مثال اگه ی وقت یکمی لینوکس رو تغییر دادین مرد باشین و واژه ی این یک توزیع از لینوکس هست رو استفاده کنید نه سیستم عامل بومی :قهقهه:

Jarvis
جمعه 05 مهر 1392, 15:51 عصر
داری زیاده روی می کنی
انتی ویروس های ایرانی چیز خاصی ندارن و اکثرا هم کپی بردارش شده هستند و واقع به هیچ دردی نمی خورن .
مثل موتور های جستجو و سیستم عامل و گوشی هایی که ادعای ایرانی بودن می کنن :قهقهه:
به عنوان مثال اگه ی وقت یکمی لینوکس رو تغییر دادین مرد باشین و واژه ی این یک توزیع از لینوکس هست رو استفاده کنید نه سیستم عامل بومی :قهقهه:
عجب ! تو از کجا سورس اونا رو گیر آوردی که اینو میگی ؟ رو چه مدرکی حرف میزنی ؟ اگه مدرکی داری ثابت کن اگه نه که رو هوا یه حرفی نزن که ملت فکر کنن داری مسخره میکنی ...

omidshaman
جمعه 05 مهر 1392, 16:22 عصر
این قد بدم میاد از این فرهنگ بعضی ایرانیا که فقط بلدن ادعا بازی در بیارن هیچ کاریم نمی کنن آخرش !!
نمونش

حتی در یک فروم در باره ی این آنتی ویروس بحث شده بود و یکی از یوزر ها این آنتی ویروس رو با Smart Security مقایسه کرده بود ... نتیجه ی مقایسه ... پادویش موفق تر بوده ... من در این شکی ندارماگر از اون اسفند پارسال تا الان 4-5 نفری نشسته بودین روزی 12-13 کار می کردین تا الان یک نسخه بتا رو حداقل ساخته بودین !! فقط تو ذهنتون آنتی ویروس می نویسین از اویرا بهتر !

UfnCod3r
جمعه 05 مهر 1392, 18:50 عصر
@omidshaman (http://barnamenevis.org/member.php?263476-omidshaman)
بابا صبر داشته باش. توکل به خدا
من می رم سربازی 2 سال دیگه میام ایشالله که شروع شده :قهقهه:
در ضمن اگه مشکل بودجه دارین بگید من راه حل دارم (ضدالویروس ملی ثارالله )

akbarg64
دوشنبه 08 مهر 1392, 15:21 عصر
داری زیاده روی می کنی
انتی ویروس های ایرانی چیز خاصی ندارن و اکثرا هم کپی بردارش شده هستند و واقع به هیچ دردی نمی خورن .
مثل موتور های جستجو و سیستم عامل و گوشی هایی که ادعای ایرانی بودن می کنن :قهقهه:
به عنوان مثال اگه ی وقت یکمی لینوکس رو تغییر دادین مرد باشین و واژه ی این یک توزیع از لینوکس هست رو استفاده کنید نه سیستم عامل بومی :قهقهه:

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

Abbas Naghdi
چهارشنبه 10 مهر 1392, 07:30 صبح
کی میتونه یه الگوریتم برای MD5 بده که با دیتابیس مقایسه بشه ؟

سریعترین الگوریتمی که در طول مدت زمان خیلی سریع بتونه چند هزار فایل رو مقایسه کنه که هر فایل باید چند صد هزار مقایسه بشه ؟

مثلا من یه فایل exe دارم که قراره با دیتابیسی متشکل از Sha1 MD5 مقایه بشه ... یعنی چند صد هزار مقایسه ... واوووووو
حالا فکر کنید چند صد فایل به جای یه فایله ... :)
یه جورایی مربع فایل ها رو باید مقایسه کنیم !

من موندم چطوری این کار رو میکنن !!!

بهروز عباسی
جمعه 12 مهر 1392, 19:10 عصر
سریعترین الگوریتمی که در طول مدت زمان خیلی سریع بتونه چند هزار فایل رو مقایسه کنه که هر فایل باید چند صد هزار مقایسه بشه ؟

اگه کتاب هایی


The Art of Computer Virus Research and Defense
Computer Viruses and Malware

رو بخونی متوجه می شی که قضیه انقدرا هم پیچیده نیست !!
نسخه ترجمه شده کتاب دومی توی بازار هست فکر کنم انتشارات ناقوس ، من دیدمش نسبت به اولی کمی کلی تر بحث کرده ولی از نظر ترجمه خوبه رون ترجمه شده.


مثلا من یه فایل exe دارم که قراره با دیتابیسی متشکل از Sha1 MD5 مقایه بشه ... یعنی چند صد هزار مقایسه ... واوووووو
ظاهراً شما فقط به روش استفاده از هش توجه کردید !! این روش به تنهایی روش خوبی نیست و کارایی نداره این روش در کنار روش های دیگه ای مثل Bookmarks یا Top and Tail Scanning یا ... به کار گرفته میشه .

یکی از روش های تشخیص Signature Matching هستش و همونطور که قبلاً هم گفتم منظور از امضای ویروس صرفاً هش اون نیست !! روش های مختلفی برای استخراج یک امضا از ویروس ها وجود داره و در مرحله اول کسایی که اون ویروس رو آنالیز میکنن سعی میکنن تا -در خوشبینانه ترین حالت- یک شناسه منحصر به فرد برای همون ویروس شناسایی/تولید کنن تا در DB ذخیره بشه و برای شناسایی توسط خود نرم افزار آنتی ویروس مورد استفاده قرار بگیره و نکته مهم اینجاست که در مقایسه فقط به همین تکه کد منحصر به فرد (Virus Signature)اکتفا نمیشه و این مقایسه به صورت مرحله ای باید فیلتر بشه مثلاً اول سایز فایل مقایسه بشه بعد اگه یکی بود با هش مقایسه بشه یا از امضای (کد) ویروس استفاده بشه و ...



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

اگه سوالی بود در خدمتیم:چشمک:

بهروز عباسی
یک شنبه 14 مهر 1392, 13:47 عصر
http://www.microsoft.com/global/security/publishingimages/pc-security/firewall-skinny-firewall.jpg
پیاده سازی دیواره های آتش

هر کاربر با تجربه اینترنت می داند که یک دیواره آتش چیست و چه کاربردی دارد. برای دانستن تعریف دقیق آن به «مقاله دیواره آتش چیست» در سایت میکرو رایانه مراجعه کنید. در این مقاله دسته بندی دقیقی از روش های تولید دیواره آتش ارائه نخواهد شد، بلکه تنها به مرور برخی از مهم ترین این روش ها پرداخته می شود. کلیه این روش ها مربوط به پیاده سازی دیواره آتش تحت نسخه های مختلف سیستم عامل ویندوز می باشد. از صحبت در مورد مزایا و معایب این رویکردها در این مقاله خودداری می شود. برای اطلاعات بیشتر در این زمینه می توانید به سایر مقاله های سایت میکرو رایانه که در این زمینه درج شده مراجعه کنید.
تکنولوژیهای فیلترینگ ترافیک شبکه در ویندوز
با وجود این که ویندوز ۹X/ME و ویندوز XP/NT واسطهای سوکت مشابه دارند و معماری NDIS نیز درایورهای باینری miniport سازگار برای واسطهای شبکه را پشتیبانی می کند، زیر سیستمهای داخلی شبکه آنها تفاوتهایی با هم دارند. در واقع، زیرسیستمهای شبکه ویندوز NT/2000/XP خیلی پیچیده تر از ویندوز ۹X/ME است، ولی هر دو قابل تقسیم به بخش های زیر می باشند:
- NDIS :
در سال ۱۹۸۹ Microsoft و ۳com با هم Network Driver Interface Specification) NDIS) را گسترش دادند که به درایورهای شبکه اجازه می دهد از سرویسهای واسط شبکه برای مخفی کردن جزئیات عملکرد خودشان استفاده کنند. درایور شبکه با مشخصات ذکر شده NDIS-miniport نامیده می شود. NDIS-miniport با نسخه های مختلف ویندوز سازگار است.
- درایورهای شبکه:
توصیف جزئیات این درایور خارج از حوصله این مقاله می باشد. به طور خلاصه یک درایور شبکه (به طور مثال TCP/IP ) در لایه پایین از توابع کتابخانه ایNDIS برای دستیابی به شبکه استفاده می کند و ممکن است (TDI (Transport Data Information را در لایه بالایی ارائه دهد. واسط TDI ارائه شده می تواند توسط Clientهای متنوعی نظیر بخشی از پیاده سازی سوکت afd.sys (در ویندوزهای NT/2000/XP) استفاده شود.
- DLL های سطح کار بر که واسط سوکت ویندوز را تشکیل می دهند و عبارتند از : WS2_32.DLL ،msafd.dll ، wshtcpip.dll
در زیر به بررسی سریع روش های ممکن فیلترینگ ترافیک شبکه پرداخته خواهد شد. برخی از این روش ها که در سطح کاربر کار می کنند دارای محدودیت های فراوانی هستند. به عنوان مثال نمی توانند از اتصال برنامه هایی که مستقیما از لایه TDI استفاده می کنند جلوگیری نمایند.
فیلترینگ ترافیک در سطح کار بر
۱)Winsock layered service provider (lsp) این رویکرد در msdn به خوبی مستند سازی شده است و دارای یک مثال مناسب (SPI.CPP) می باشد. از مزایای این روش می توان به امکان تعیین فرآیند هایی که سوکت های ویندوز را فراخوانی می کنند اشاره کرد. این روش می تواند برای انجام اعمالی از قبیل کنترل کیفیت سرویس، رمز نگاری جریان دادها و … استفاده شود. البته همان طور که گفته شدTCP/IP می تواند مستقیماً از طریق TDI فراخوانی شود، بنابراین این روش برای مراقبت در برابر ویروس ها و اسب های تروا و … استفاده نمی شود. به علاوه این رویکرد روی مسیریاب قابل استفاده نیست، زیرا بسته های اطلاعاتی در سطح TCP/IP مسیریابی می شوند (یا حتی در سطح کارت شبکه)
۲) Windows 2000 Packet Filtering Interface
ویندوز ۲۰۰۰ APIهایی را ارائه می کند که برنامه های کاربردی سطح کاربر با استفاده از آن ها می توانند مجموعه ای از فیلترها -که توسط TCP/IP برای فیلتر کردن بسته ها استفاده می شوند- را نصب کنند. البته قوانین فیلترینگ نسبتاً محدودند (بر مبنای عبور/انسداد برای آدرس های IP و اطلاعات port). هم چنین این رویکرد فقط در ویندوز ۲۰۰۰ و نسخه های بالاتر قابل استفاده است.
۳) جایگزینی Winsock DLL
این رویکرد با توجه به داشتن مشکلات امنیتی متعدد قابل اعتماد نمی باشد و لذا از بحث در مورد آن خودداری می شود.
۴) قلاب کردن کلیه توابع ناامن
استفاده از این رویکرد نسبتاً مشکل بوده و نیازمند احتیاط فراوان می باشد، زیرا ممکن است بر روی ثبات و امنیت سیستم تاثیر بگذارد.
فیلترینگ ترافیک در سطح هسته (kernel )
1) kernel-mode sockets filter
این تکنولوژی برای ویندوزهای NT/2000 قابل استفاده است. این رویکرد با قرار گرفتن در مسیر تمامی فراخوانی ها از msafd.dll (پائین ترین لایه سطح کاربر در Winsock ) به ماژول afd.sys در سطح هسته (TDI-client، که در بالاترین سطح هسته قرار دارد و به عنوان بخشی از سوکتهای ویندوز شناخته می شود) و کنترل یا تغییر آن ها کار می کند. این روش، روش جالبی است ولی امکانات بیش تری نسبت به روش LSP ندارد. به علاوه، واسط AFD در نسخه های مختلف ویندوز متغیر بوده است که این مساله باعث افزایش تغییرات لازم برای استفاده از این رویکرد در این نسخه ها می شود.
۲) TDI-FILTER driver
این تکنولوژی هم برای ویندوزهای ۹X/ME و هم برای ویندوزهایNT/2000 به کار می رود. البته پیاده سازی آن در این دو تفاوت های فاحشی با هم دارد. برای ویندوز ۹۸ مثالی در Vireo/Numega VtoolsD یافت می شود. هم چنین برای ویندوز NT/2000 مثالی در سایت http://www.sourceforge.net وجود دارد.
این تکنولوژی، تکنولوژی معروفی است که در تعدادی از محصولات تجاری (مثل outpost) استفاده شده است. البته همانند سایر روش هایی که تاکنون بیان شد، این رویکرد فقط می تواند برای ساختن محصولات ردة دیوارة آتش شخصی استفاده شود و نمی تواند از پشتة TCP/IP شما در برابر حملات خرابکاران مراقبت کند.
۳) NDIS Intermediate Driver
Microsoft این دسته از درایورها را دقیقا به منظور پیاده سازی دیواره های آتش فراهم کرده است . البته این درایورها برای ویندوز۹۵ قابل پیاده سازی نیست و در مورد ویندوزهای ۹۸/ME/NT نیز بهتر است از این کار صرفنظر شود. نصب این درایورها و هم چنین استفاده آنها برای کاربران خیلی راحت نیست.
پشتیبانی از درایوهایIM در ویندوز ۲۰۰۰/XP بهبود یافته است، ولی مساله دیگری که در این مورد وجود دارد آن است که چنین درایورهایی باید دارای امضای دیجیتال ازMicrosof باشد، در غیر این صورت در هنگام نصب کاربر با پیغامی مبنی بر عدم داشتن امضای دیجیتال مواجه می شود. مثالی در این زمینه در DDK ویندوزهای ۲۰۰۰ به بعد وجود دارد.
۴) windows 2000 filter hook driver
این روش در مستندات DDK توضیح داده شده است و فقط برای ویندوز ۲۰۰۰ و نسخه های بالاتر قابل استفاده است. مثالی در این زمینه در http://www.codeproject.com وجود دارد.
۵) NDIS HOOKING FILTER DRIVER
این رویکرد بر مبنای قلاب کردن برخی توابع NDIS عمل می کند بدین ترتیب کلیه ترافیک ارسالی و دریافتی شبکه از مسیر توابع قلاب شده عبور خواهد کرد. لذا می توان محدودیت های مورد نظر را در این نقطه اعمال نمود.
۶) Miniport Hooking
پایین ترین سطح برای پیاده سازی یک دیواره آتش، سطح miniport می باشد. البته نوشتن کد در این سطح، دشواری های فراوانی دارد و به همین دلیل توصیه نمی شود.

منبع (http://computer.webmoj.com/firewll-install)

Abbas Naghdi
سه شنبه 16 مهر 1392, 00:10 صبح
http://uploadtak.com/images/g4266_Aseman.png

Abbas Naghdi
سه شنبه 16 مهر 1392, 00:17 صبح
اگه کتاب هایی
The Art of Computer Virus Research and Defense
Computer Viruses and Malware
رو بخونی متوجه می شی که قضیه انقدرا هم پیچیده نیست !!
نسخه ترجمه شده کتاب دومی توی بازار هست فکر کنم انتشارات ناقوس ، من دیدمش نسبت به اولی کمی کلی تر بحث کرده ولی از نظر ترجمه خوبه رون ترجمه شده.

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

بهروز عباسی
سه شنبه 16 مهر 1392, 11:57 صبح
بهروز جان هیچ کدومشونو داخل بازار پیدا نکردم ... داخل بازار بروجرد نیست ...
PDF نداره ؟
میتونی صفحه های در این مورد رو برام با اسکنر یا با دوربین بگیری ؟

لینک نسخه PDF رو برات پ.خ کردم

brightening-eyes
سه شنبه 16 مهر 1392, 18:16 عصر
به یه برنامه نویس دیگه که تو پروژه شرکت کرده سلام کنید!
خوب منم هستم
من بیشتر رو threading و کدای سطح پایین آنتیویروس کار میکنم.

Jarvis
سه شنبه 16 مهر 1392, 18:25 عصر
حالا بالاخره چی شد؟ به کجا رسیدیم ؟
من پیشنهادم این بود که بهروز و عباس و این آقایی که جدیدا اومده سه نفری یه تیکه کد بنویسید که حداقل یه پله جلو رفته باشیم ... کم کم افراد دیگه هم اینجوری تشویق میشن که شرکت کنن .. پروژه رو بزاریم تو گیت هاب.
-------

به یه برنامه نویس دیگه که تو پروژه شرکت کرده سلام کنید!
خوب منم هستم
من بیشتر رو threading و کدای سطح پایین آنتیویروس کار میکنم.
سلام ... خیلی خوش اومدید...

Abbas Naghdi
چهارشنبه 17 مهر 1392, 01:08 صبح
لینک نسخه PDF رو برات پ.خ کردم

نیومد !!!!!!!!!!!!!

brightening-eyes
چهارشنبه 17 مهر 1392, 15:11 عصر
لینکو به منم بفرست.
منم بخونم ببینم چه خبره
البته باید این هاج آقای عباس نقدی یه لطفی بفرمان اون کدو بدن روش کار کنیم: همینجوری که نمیشه!
بهتره از svn استفاده کنیم تا git
چون الآن بیشتر پروژه ها رو svn میزبانی میشن: البته من بلد نیستم با github کار کنم: اکانت توش دارم ولی کلا سرم ازش در نمیاد: اصلا سر راهنماش نرفتم
یکی بگه ببینم حالا باید چه کار مفیدی کنم؟
راجع به آنتی ویروس اول یه سری نسخه بتا میدیم بیرون بعدشم رو هوش مصنوعیش کار میکنیم: یه جورایی بلدم چی کار کنم!
البته آقای هاج آقا عباس اگه کدو بزارن

FastCode
چهارشنبه 17 مهر 1392, 16:10 عصر
پروژه هایی که به این شکل توسط گروه های مختلف نوشته میشن و قسمتهای مختلفش ممکنه در وضعیت های مختلف باشن یا امکاناتش بین وضعیت تست و پایدار و آزمایشی و تاریخ گذشته جا به جا بشن همیشه با git بهتر جواب میدن.

brightening-eyes
چهارشنبه 17 مهر 1392, 21:28 عصر
خوب باشه!
فقط من درست نمیتونم با گیت کار کنم.
ولی بهتر نیست اول کدش فقط به صورت یه فایل زیپ باشه؟
آخه اینجوری راحتتر میشه فایلو آپلود کرد: چه میدونم میریزیمش یه جا بعدش برنامه نویسا میان دانلودش میکنن: به گیت و ساب ورژن توحین نشه: اینا قابلیت دیدن ورژنای قبلیوم دارن ولی زیپ نداره

brightening-eyes
پنج شنبه 18 مهر 1392, 10:52 صبح
من میتونم تو هر دوتا مد: kernel-mode و همینطور user-mode کد بزنم
ولی زیاد وقت ندارم منم درگیری دارم:باید یه گیم انجین بنویسم: اونم اوپن سورسه ولی میتونم تو یه سری وقتا کد بزنم.
البته اگه آقا عباس کدو بده من از همین امروز شروع میکنم به کدزنی: نباید وقتو تلف کنیم.

Abbas Naghdi
پنج شنبه 18 مهر 1392, 11:49 صبح
سلام بچه ها
کدی که من نوشتم با کیوت هست و به درد شما نمیخوره ...
قراره بخش های ویژه c , asm نوشته بشه !
بقیه ی بخش ها رو من با کیوت مینویسم

الان اولین نیاز ما فقط به یه آنالیزور فایل های اجرایی هست !
و البته کد رو داخل github یا ... قرار نمیدم
نمیشه که آدم هرچی نوشت داخل این سایت ها قرار بده
من با این کار موافق نیستم
از اون اولشم اسمی از سایت های اشتراک گذاری پروژه های متن باز نیوردم
نظرم چیز دیگه ای بود .

mnvoh90
پنج شنبه 18 مهر 1392, 12:44 عصر
من فقط یه چیزی میگم و اون هم اینه که اگر قرار که چون AV و ... خارجی هست و خیلیم خوبن دیگه ما سراغ ساختنش نریم ۹۰٪ برنامه نویسا باید بیکار بمونن یا سوپر مارکتی چیزی بزنن. ولی اگر قراره یه چیزی ساخته بشه که فقط اسمش آنتی ویروس باشه و حتی قدرت رقابت دورادور هم نداشته باشه همون بهتر که وقتتون رو تلف نکنید.

FastCode
پنج شنبه 18 مهر 1392, 13:21 عصر
اگر از لایسنس های مناسب استفاده کنید github نمیتونه مشکلی براتون ایجاد کنه.
من پیشنهاد میکنم از لایسنس sleepy cat و یک قرارداد دیجیتال برای پروژتون استفاده کنید.اینطوری تمام حقوق کد متعلق به شماست و هیچ کس حق استفاده تجاری نداره.

brightening-eyes
پنج شنبه 18 مهر 1392, 22:01 عصر
شما کدو یه جوری به دستم برسون تا من ببینم چه طوری باید رو threading کار کنم!
من اصلا نمیگم رو github یا 100 تا کوفت و زهر مار دیگه به اشتراکش بزاریم.
اینجوری کپی رایتش به ... میره

UfnCod3r
جمعه 19 مهر 1392, 07:58 صبح
بززارید تو github خب ما هم ببینم.
هنو هیچی نشده Close Source ?:قهقهه:

brightening-eyes
جمعه 19 مهر 1392, 16:59 عصر
آقایون هیش کی نگفته Close Source!
صبر کنید!
هنوز من و بهروز کدو نداریم!

Abbas Naghdi
یک شنبه 21 مهر 1392, 00:14 صبح
این threading یعنی چی ؟
شما چطوری میخایین C++ رو با asm ... threading کنید !!!
کدی که من دارم و نوشتم با C++ Qt هست و هیچ ربطی به Asm و C++ خالص نداره :)
اصلا threading از نظر تعریف شما یعنی چی ؟

شما یه دلیل بگین که کد من به چه درد شما میخوره ؟

brightening-eyes
یک شنبه 21 مهر 1392, 20:18 عصر
1. شما که نمیدونید threading یعنی چی, چه جوری میخواید آنتی ویروس بنویسید؟
threading در حقیقت CPU رو متمرکز میکنه رو اون کاری که باید انجام بده
و تو تمام پروژه های آنتی ویروس ازش استفاده شده
اگه شما میخواید اسکن کنید, برا 1. افزایش سرعت, 2. برای استفاده کمتر از حافظه باید از thread ها استفاده کنید که رو یه پروسس لاک میکنن و تابع مورد نظر اجرا میشه و بعدش آنلاک میشه
2. تا حالا اسم inline assembly به گوشت خورده؟
3. شما یه مثال بزن یه نفر بخواد با چندتا برنامه نویس دیگه همکاری کنه بععدش کدو نداشته باشه و بعدش بخواد کد بنویسه
به نظر شما اون فرد چه جوری میتونه کمک کنه؟

Abbas Naghdi
دوشنبه 22 مهر 1392, 00:17 صبح
1. شما که نمیدونید threading یعنی چی, چه جوری میخواید آنتی ویروس بنویسید؟
threading در حقیقت CPU رو متمرکز میکنه رو اون کاری که باید انجام بده
و تو تمام پروژه های آنتی ویروس ازش استفاده شده
اگه شما میخواید اسکن کنید, برا 1. افزایش سرعت, 2. برای استفاده کمتر از حافظه باید از thread ها استفاده کنید که رو یه پروسس لاک میکنن و تابع مورد نظر اجرا میشه و بعدش آنلاک میشه
2. تا حالا اسم inline assembly به گوشت خورده؟
3. شما یه مثال بزن یه نفر بخواد با چندتا برنامه نویس دیگه همکاری کنه بععدش کدو نداشته باشه و بعدش بخواد کد بنویسه
به نظر شما اون فرد چه جوری میتونه کمک کنه؟


brightening-eyes عزیز اگه تعریف threading اینه که من یک ماه پیش این کار رو کردم ... پست های قبلی رو نخوندین ... و البته بخشی از تعریفتون اشتباهه :)
قرارا نیست شما کد منو ببینید و من کد شما رو
چون من اسمبلی بلد نیستم و نمیفهمم .... همینطورم شما کیوت رو بلد نیستید و نمیفهمید ...
قراره یه dll به من بدین ... این یه برنامه رو جدا از برنامه های متن باز حساب کنید .... میشه ... خواهشا میشه ...
کد رو بنویسید و dll به من بدین ... بعدا کل پروژه به هم پیوند میخوره ...
چطوری بگم نمیدونم ... !

brightening-eyes
دوشنبه 22 مهر 1392, 14:04 عصر
آره من چیزی راجع به QT نمیدونم
اما شما چی کار میخوای بکنی که من با asm برات انجام بدم؟
البته من هم به شما کدو میدم هم dll رو
در ضمن بهتره همشون به صورت static تو پروژه لینک بشن: اینجوری دیگه امنیت برنامه میره بالاتر

brightening-eyes
دوشنبه 22 مهر 1392, 14:08 عصر
آهان داشت یادم میرفت:
من کدو با استفاده از inline assembly براتت مینویسم.
یعنی با C++ هم کار میکنم: ولی چون تا حالا با QT کار نکردم, چیزی ازش سر در نمیارم.
من با wxWidgets دارم الآن برا خودم یه گیم انجین اوپن سورس مینویسم.

Vitallity
دوشنبه 22 مهر 1392, 14:20 عصر
من با wxWidgets دارم الآن برا خودم یه گیم انجین اوپن سورس مینویسم.
O.o
wxWidgets ... Game engine ?!
جداً ؟!

brightening-eyes
دوشنبه 22 مهر 1392, 18:57 عصر
آره دارم ادیتورشو با wxScintilla طراحی میکنم.
با هر چیزی که بخوای میتونی براش ادیتور بنویسی

Vitallity
پنج شنبه 25 مهر 1392, 01:20 صبح
آره دارم ادیتورشو با wxScintilla طراحی میکنم.
...
آها! الآن قضیه بسیار فرق کرد. : )

brightening-eyes
پنج شنبه 25 مهر 1392, 16:07 عصر
از آنتی ویروس بحثمون کشید به گیم انجین!
بیخیال گیم انجین: هر کی هر چی دل تنگش میخواد از سایروس بگه

Jarvis
پنج شنبه 25 مهر 1392, 17:28 عصر
من چند وقت پیش هم این نکته رو عرض کردم .. بازم میگم ... ما اگه میخوایم واقعا کاری بکنیم اول باید همت داشته باشیم و امید... دوم این که با همین افرادی که داریم یه تیم خوب تشکیل بدیم و سعی کنیم از افرادی هم که میشناسیم دعوت به همکاری کنیم سوم این که یه کدی نوشته بشه به عنوان Base و تمام کار ها روی اون کد شکل بگیره .. منظورم اینه که تیم هر کاری میکنه اون کد رو دستکاری کنه... اینجوری کار منسجم میشه و بعد از چند وقت می بینیم حداقل یه هسته ای .. درایوری چیزی نوشتیم ... همین باعث میشه افراد دیگه هم مشتاق همکاری بشن... موفقیت شما آرزوی ماست :دی

brightening-eyes
پنج شنبه 25 مهر 1392, 22:19 عصر
شما اینو به abbas naghdi بگو!
آخه تا وقتی یه نفر کدو نداشته باشه میشه گسترشش بده؟

Jarvis
جمعه 26 مهر 1392, 12:47 عصر
شما اینو به abbas naghdi بگو!
آخه تا وقتی یه نفر کدو نداشته باشه میشه گسترشش بده؟

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

brightening-eyes
جمعه 26 مهر 1392, 14:03 عصر
من, شما, و هر کی که میخواد یه برنامه بنویسه, (تیمی) باید تموم اعضاش کدی که توسط بقیه نوشته میشه رو داشته باشن
در ضمن ماها اگه تا حالا کد مینوشتیم, الآن فکر کنم 10 تا ورژن داده بودیم دست مردم.
البته من خودمم میگما!
منم واسه این آنتی ویروس یه خط کد ننوشتم ولی باید بگم من یا هر کس دیگه تا کد دستش نباشه, نمیتونه بنویسه
شما به برنامه نویسای موزیلا, برنامه نویسای شرکتای تجاری نگاه کن, تموم برنامه نویساش کدو تو کامپیوتر کارشون دارن
شاید تو یه شرکت تجاری برنامه نویس حق برداشتن کدو نداشته باشه, ولی کد دست تموم برنامه نویسا هست
بعدم این پروژه اوپن سورسه
من که یکی از برنامه نویسای این پروژم هنوز اون کدی که یکی دیگه نوشته رو ندارم!

barnamenevisjavan
جمعه 26 مهر 1392, 15:09 عصر
بنظر من آقای عباس نقدی از این میترسن که کدهای برنامه رو که براش زحمت کشیدن یکی دیگه برداره بزنه به اسم خودش البته حق هم دارن.
خوب چرا از Microsoft Team Fundaction استفاده نمیکنید؟مگه این برنامه برای کارهای تیمی ساخته نشده؟
مام که هنو منتظر یه ریلیز بتا هستیم

joker
جمعه 26 مهر 1392, 15:44 عصر
سال 1399 : من با فتوشاپ ي آيكون قشنگ براي آنتي ويروس ايراننننننننننني درست كردم

UfnCod3r
جمعه 26 مهر 1392, 17:46 عصر
ایران 1404 :
دوستان در حال همت کردن...

brightening-eyes
جمعه 26 مهر 1392, 18:27 عصر
البته شاید اون موقع یه چیز نیومده باشه رو دست فوتوشاپ
بعید میدونم ایرانیا همت کنن خودشون پا شن برن آب بخورن
چه برسه بیان دو خط کد بزنن یه hello world بنویسن.

Abbas Naghdi
شنبه 27 مهر 1392, 01:29 صبح
بنظر من آقای عباس نقدی از این میترسن که کدهای برنامه رو که براش زحمت کشیدن یکی دیگه برداره بزنه به اسم خودش البته حق هم دارن.

یک ساله خودمو کشتم که اینو بگم ... !

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

omidshaman
شنبه 27 مهر 1392, 10:08 صبح
خب شما که الان کد نویسی سطح پایین بلد نیستی من خیلی دوست دارم بدونم هدفت از زدن این تاپیک چی بوده !؟

brightening-eyes
شنبه 27 مهر 1392, 12:47 عصر
آقایون!
آروم باشید!
حالا زده میخواد عیدشو پیاده کنه دیگه
تک تک برنامه نویسای آنتی ویروس باید حتما با کدای سطح پایین آشنا باشین
حد عقل تا جایی که بشه چندتا چیزو بخونه
مثل اطلاعات فایل
من یه نفری نمیتونم یه نفری رو کدای سطح پایین کار کنم.
حد عقلش اون جوری که من حساب کردم یه آنالیزور کوچولو بیشتر از 300 خط کد میگیره
اسمبلی بیچاره میکنه
من چشمم به هیچ کس نیست.
من میگم باید کدی که برا آنالیزور مینویسیم, باید وابسته به اون کدی باشه که abbas naghdi نوشته
اینجوری سرعتش میره بالاتر
فرض کنید من میخوام یه کتاب بنویسم.
حالا برا نوشتن این کتاب به یه سری چیز احتیاج دارم: اطلاعات راجع به اون موضوع, و کلا چیزای دیگه: مثل ورق و چمیدونم جوهر پرینتر
حالا اگه من بیام حجم کتابو کمتر کنم: با استفاده از اطلاعات قبلی, بیام یه جوری اون کتابو خلاصه کنم هم تو منابع صرفه جویی کردم, هم وقتمو کمتر هدر دادم
من بلفرض بیام کد آنالیزو بنویسم.
شما: abbas naghdi عزیز باید با کد سطح پایین آشنا باشی که بتونی مرطبتش کنی به پروژه؟
البته این آنالیزو میشه بدون اسمبلی با همون ++C جموجورش کرد.

Abbas Naghdi
دوشنبه 29 مهر 1392, 02:42 صبح
خب شما که الان کد نویسی سطح پایین بلد نیستی من خیلی دوست دارم بدونم هدفت از زدن این تاپیک چی بوده !؟

ببخشید IQ اگه قرار بود من همه ی تخصص ساخت آنتی ویروس رو داشته باشم که اینجا تایپیک نمیزدم !
اصلا ایران نمیموندم ... میرفتم مریخ :)

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

میدونید اساسا مشکل از چیه ... مشکل اینه که حرف گوش کن نیستیم ... البته این حقه چون به هر حال یه پروژه ی متن بازه و مدیریت پروژه قدرت کامل رو نداره مثل مدیر یه شرکت یا رئیس یک شرکت یا ...
این در مورد برنامه های متن باز دیگه صدق نمیکنه چون در نهایت اون ها رو یه نفری میشه نوشت ... البته منفی برنامه های بزرگ مثل php ... که اون ها هم نهاد مشترک دارن و ... مثل ما بی در و پیکر نیستن

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

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

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

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

brightening-eyes
دوشنبه 29 مهر 1392, 19:18 عصر
حرف حقیقتو میگی!
من شروع میکنم اگه وقت داشته باشم رو AI کار میکنم.
با اینکه کار سختیه! و کار هر کس نیست!
ولی خوب دیگه
سعی خودمو میکنم.
من باهاتم
هر کی از راه میرسه دمو میخواد.
هی میگن نسخه بتا
آقای abbas naghdi اگه قصدت اینه که هر کی خودش یه چیزو بنویسه, خیل خوب!
بعد از اینکه خودمون نوشتیم و اولین ورژنو دادیم بیرون اون وقت همگی رو تموم پروژه کار میکنیم.
اینجوری کپی رایتشم محافظت میشه
من از همین الآن رو کدزنی AI کار میکنم.
ولی باور کن دو سه نفری نمیشه این پروژه به این گندگی رو تموم کرد.
چون همکاری نمیکنن
فقط پست میزنن تاپیکو شلوغ میکنن
باور کنید چشمم درد گرفت این همرو خوندم!
فکر ما کمبیناهارم بکنید!
بهترین کارو کردی که بدون اطلاعرسانی رو پروژه کار کردی
از الآن منم کمکت میکنم: یه static library میسازم که پورتش کنی بعدش باهاش کار کنی
از الآنم از آقایون خواهش میکنم اینجا بیخودی پست نزنید!
بابا فقط تاپیک سنگین میشه!
این همه میگید دمو دمو چرا تا حالا خودتون نجمبیدین!
با اینکه خودمم قبول دارم اینجا بیخودی پست زدم
ولی من راستش دارم دنبال یه سری الگوریتم میگردم که باهاش رو هوش مصنوعی کار کنم.
فقط آقای abbas naghdi اون ایمیلای چرت و پرت اونارو پاک کن هر کسم بهت ایمیل زد, اسپم کن.
منم سعی میکنم هر طوری که شده, رو اون هوش مصنوعی کار کنم.
من با پ.خ با شما در ارتباطم
اگه چیزی نوشتم از طریق همون پ.خ به دستت میرسونم.
فعلا

omidshaman
دوشنبه 29 مهر 1392, 21:29 عصر
ببخشید IQ اگه قرار بود من همه ی تخصص ساخت آنتی ویروس رو داشته باشم که اینجا تایپیک نمیزدم !
اصلا ایران نمیموندم ... میرفتم مریخ :)کسی نمی گه همه ی تخصصا حداقل یک سری پیش زمینه میخواد که !

دونید اساسا مشکل از چیه ... مشکل اینه که حرف گوش کن نیستیم ... البته این حقه چون به هر حال یه پروژه ی متن بازه و مدیریت پروژه قدرت کامل رو نداره مثل مدیر یه شرکت یا رئیس یک شرکت یا ...هی میگین متن باز متن باز ما که سورس کدی نمیبینیم که قرار باشه بهش بگیم متن باز :)
بعد این که الان شما به حساب خودت مدیر پروژه ای ؟! کسی مدیر پروژه میشه که بقیه قبولش داشته باشن شما که 4 خط اسمبلی بلد نیستی بنویسی من نمی فهمم چجوری می خوای آنتی ویروسو مدیریت کنی !
البته مدیرای ایرانی اکثرا همین مدلین واسه همینه که اوضاع ایران الان این قدر خوبه !!

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

من از همین الآن رو کدزنی AI کار میکنم.عزیزم شما اول برو این چیزا رو یاد بگیر بعد شروع کن به AI نوشتن .. الکی که نیست همین جوری رو هوا یک کدی بنویسی ویروس تشخیص بده:لبخند:
heuristic technique, data mining, agent technique, artificial immune, artificial neural network
که برای فهمیدن اینا کلی درس مربوط به ریاضی هم لازمه یاد بگیری !
تازه موارد مربوط به امنیت و خیلی چیزای دیگه هم هست !!
من خودم چیزایی که روشون کار می کنم به این چیزا مربوط میشن ولی نه برای امنیت و انتی ویروس برای computer vision !
اگر حتی 1% هم فکر می کردم این پروژه یک فایده ای داره حاضر بودم کمک کنم...

Abbas Naghdi
دوشنبه 29 مهر 1392, 22:45 عصر
کسی نمی گه همه ی تخصصا حداقل یک سری پیش زمینه میخواد که !

اینو خودتون گفتید یا کسی کمکتون کرد :)


هی میگین متن باز متن باز ما که سورس کدی نمیبینیم که قرار باشه بهش بگیم متن باز :)
یعنی عملا نیم ساعت هونگ کوبیدم و مطلب نوشتم :(


بعد این که الان شما به حساب خودت مدیر پروژه ای ؟! کسی مدیر پروژه میشه که بقیه قبولش داشته باشن شما که 4 خط اسمبلی بلد نیستی بنویسی من نمی فهمم چجوری می خوای آنتی ویروسو مدیریت کنی !
البته مدیرای ایرانی اکثرا همین مدلین واسه همینه که اوضاع ایران الان این قدر خوبه !!

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


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

نه خیر شما درست متوجه نشدیت ... منظور من دانشمندایی مثل شما بودن :)
خب چیکار کنیم خوبه ؟



عزیزم شما اول برو این چیزا رو یاد بگیر بعد شروع کن به AI نوشتن .. الکی که نیست همین جوری رو هوا یک کدی بنویسی ویروس تشخیص بده
heuristic technique, data mining, agent technique, artificial immune, artificial neural network
که برای فهمیدن اینا کلی درس مربوط به ریاضی هم لازمه یاد بگیری !
تازه موارد مربوط به امنیت و خیلی چیزای دیگه هم هست !!
من خودم چیزایی که روشون کار می کنم به این چیزا مربوط میشن ولی نه برای امنیت و انتی ویروس برای computer vision !
اگر حتی 1% هم فکر می کردم این پروژه یک فایده ای داره حاضر بودم کمک کنم...

با بخشی از پاراگراف بالایی موافقم چون کد نویسی همینطوری یعنی راه رفتن با چشم بسته ... !
باید اول زیرساخت ها مورد بحث قرار بگیرن و بعد ...
نوشتن هوش مصنوعی هم یک نفری و همینطوری کار به جایی نمیرسونه ...
جالبه brightening-eyes عزیز ما در همین اول پروژه گیر کردیم ... حالا شما رفتین سراق آخر پروژه ... این دیگه آخرشه :)

UfnCod3r
دوشنبه 29 مهر 1392, 23:42 عصر
هرچند وقت ی سر به این تاپیک می زنم کلی می خندم .
جالبیش اینه که بعضی ها هنو نمی دونن ی انتی ویروس چیه و باید چی کار کنه :قهقه فجیح:

omidshaman
دوشنبه 29 مهر 1392, 23:52 عصر
بلد نیستم که نیستم اگه اسمبلی رو دوست داشتم یادش میگرفتم ... بعدشم آنتی وروس رو نمیخوام مدیریت کنم ... تخصصمو میخام مدیریت کنم ... الان خوب جا افتاد ؟ :)آره این خوبه به نظر منم همین کارو بکن . نه که خیلی متخصصی مدیریت کردن تخصصت واقعا کار سختیه :))))

UfnCod3r
سه شنبه 30 مهر 1392, 08:26 صبح
شما الان برای شروع باید ی برنامه بنویسی که مشکوک بودن ی فایل رو تشخیص بده . البته از نوع خیلی ساده .
خب الان چطور می خوای این کارو کنی ؟
اول از همه باید با ساختار فایل های exe اشنا باشی . کلا باید دل و رودشو بریزی بیرون.
اول باید ببینی با چی کامپایل شده و از چه کتاب خونه ها و توابعی استفاده کرده .
مثلا وقتی یه کیلاگر ساده با GetKeyboardState بنویسی خود Nod32 اصلا اخطار میده . به این صورت که میاد بررسی می کنه می بینه این تابع داخل ی حلقه استفاده شده و نتیجه هم هر دفعه ی جا ذخیره میشه
خب این ینی اینکه ی کیلاگر از نوع ایرانی هست . ازینا که بچه ها می نویسن.
شما فعلا این کارا رو بکنید ببینید می تونید:
تشخیص کامپایلری که استفاده شده . تشخیص 32 بیتی و 64 بیتی بودن . فهمیدن dependencies ها و ..
هاش و Thread رو من نمی دونم واس چی می خواین شما که هنوز باید رو مرحله تست باشین . وقتی موتور رو ننوشتین که فایل رو بررسی کنه واس چی می خواین از کل فایل ها و .. هاش بگیرید:قهقهه:
Thread می خواین چی کار:قهقهه:
ی نفر باید کارو مدیریت کنه . کد ها رو بزارید تو گیت هاب و کارتونو انجام بدین دیگه . این گدا بازی ها چیه مگه کدای شما چی هست . از لینوکس و .. هم پیشرفته تره؟:قهقهه:
شما اصلا تخصصت چیه سی++ بلدی ؟
می تونی بگی این ینی چی

new ((void*)ptr) MyClass;

brightening-eyes
سه شنبه 30 مهر 1392, 12:54 عصر
کسی نمی گه همه ی تخصصا حداقل یک سری پیش زمینه میخواد که !
هی میگین متن باز متن باز ما که سورس کدی نمیبینیم که قرار باشه بهش بگیم متن باز :)
بعد این که الان شما به حساب خودت مدیر پروژه ای ؟! کسی مدیر پروژه میشه که بقیه قبولش داشته باشن شما که 4 خط اسمبلی بلد نیستی بنویسی من نمی فهمم چجوری می خوای آنتی ویروسو مدیریت کنی !
البته مدیرای ایرانی اکثرا همین مدلین واسه همینه که اوضاع ایران الان این قدر خوبه !!
اتفاقا منم از وقتی که این تاپیکو دیدم همین سوال واسم پیش امده !
البته بازم تخیلاتت گل کرده 4 نفر حالا مثلا تو گوگل وناسا کار می کنن شدن بهترین دانشمند دنیا !! من موندم اگر مثلا یک بار یک ایرانی جایزه نوبل بگیره دیگه چکار می کنین !!
عزیزم شما اول برو این چیزا رو یاد بگیر بعد شروع کن به AI نوشتن .. الکی که نیست همین جوری رو هوا یک کدی بنویسی ویروس تشخیص بده:لبخند:
heuristic technique, data mining, agent technique, artificial immune, artificial neural network
که برای فهمیدن اینا کلی درس مربوط به ریاضی هم لازمه یاد بگیری !
تازه موارد مربوط به امنیت و خیلی چیزای دیگه هم هست !!
من خودم چیزایی که روشون کار می کنم به این چیزا مربوط میشن ولی نه برای امنیت و انتی ویروس برای computer vision !
اگر حتی 1% هم فکر می کردم این پروژه یک فایده ای داره حاضر بودم کمک کنم...


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

A_2006
سه شنبه 30 مهر 1392, 19:58 عصر
دوستان ادامه بدن.

brightening-eyes
سه شنبه 30 مهر 1392, 22:42 عصر
ادامه بدید ولی خواهشا چرت و پرت ننویسید!

abbasalim
سه شنبه 30 مهر 1392, 23:15 عصر
کلا به من مربوط نیستا ولی اون ایده هست نه عیده :چشمک:

brightening-eyes
چهارشنبه 01 آبان 1392, 12:46 عصر
من کلا از ابتدایی گند میزدم با املام!
همش 1, 2, 7 و اینجور میگرفتم.
الآنم همینجوریم
نمیدونم قطارو الآن مثلا درست نوشتم یا اشتباه!
حالا درست نوشتم یا نه؟

A_2006
چهارشنبه 01 آبان 1392, 14:02 عصر
تاپیک خوبیه فقط حیف دوستان ادامه نمیدن.

UfnCod3r
چهارشنبه 01 آبان 1392, 14:22 عصر
ادامه بدین تاپیک خوبیه .

A_2006
چهارشنبه 01 آبان 1392, 14:36 عصر
دوستان جون من ادامه بدید این بار علمی بسیار غنی شما داره منو متزلزل می کنه ما همه منتظریم . هر وقت میام اینجا روحم تا آسمون 7 میره و لذت می برم و احساس برتری و یه حس عجیبی می کنم.

A_2006
چهارشنبه 01 آبان 1392, 15:54 عصر
من کلا از ابتدایی گند میزدم با املام!
همش 1, 2, 7 و اینجور میگرفتم.
الآنم همینجوریم
نمیدونم قطارو الآن مثلا درست نوشتم یا اشتباه!
حالا درست نوشتم یا نه؟

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

Vitallity
چهارشنبه 01 آبان 1392, 16:57 عصر
@ A_2006
چیزی نگو دیگه! خوبه بیان تاپیک رو پاک کنن؟ من و جمعی از دوستان، بسیار دلبسته این تاپیک هستیم.

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

brightening-eyes
چهارشنبه 01 آبان 1392, 17:44 عصر
مسخره میکنید یا جدی میگید؟

Abbas Naghdi
چهارشنبه 01 آبان 1392, 19:07 عصر
جالبه ... اینجا شده محل اخذ دیپلم دلقکی ... :)
مبارک باشه :)

brightening-eyes
چهارشنبه 01 آبان 1392, 19:14 عصر
آره مث اینکه!

A_2006
چهارشنبه 01 آبان 1392, 20:00 عصر
چیه مسخره!!!!!!! نه بابا چرا مسخره کنم.
دوستان به خودشون هم شک دارن.

hadiroosta
چهارشنبه 01 آبان 1392, 23:31 عصر
با سلام خدمت همه دوستان
دوستان این تاپیک را امروز دیدم همه تاپیک را خوندم به نظرم میتونه پیشرفت داشته باشه .
حالا که همه مشتاق هستند بار علمیشون بالا بره به نظر من یه پروژه اوپن سورس را بزارید تا کد هاش رو تحلیل کنیم و از نکات مثبت اون استفاده کنیم
و هر جای اون را هم که تونستیم بهتر کنیم اگه زندگی نامه ادیسون را هم بخونید می بینید که ادیسون اول سعی میکرد ببینه یک اختراع چطور کار می کنه
و وقتی میتونست نمونه اون را بسازه بعد از اون مشکلات اون را بر طرف می کرد و نمونه جدید تر اون را می ساخت .
یا اصلا در ابتدا برای این که ایده بگیریم بیاین روش کار انتی ویروس های معروف را تحلیل کنیم و با هم مقایسه کنیم و برای بهتر کردن کار انها نظر بدیم
و به نظر من فعلا برای کد نویسی زود هست و در ابتدای کار باید الگوریتم کار نرم افزار نوشته بشه .
نظرتون را بگین لطفا .

Abbas Naghdi
پنج شنبه 02 آبان 1392, 00:09 صبح
با سلام خدمت همه دوستان
دوستان این تاپیک را امروز دیدم همه تاپیک را خوندم به نظرم میتونه پیشرفت داشته باشه .
حالا که همه مشتاق هستند بار علمیشون بالا بره به نظر من یه پروژه اوپن سورس را بزارید تا کد هاش رو تحلیل کنیم و از نکات مثبت اون استفاده کنیم
و هر جای اون را هم که تونستیم بهتر کنیم اگه زندگی نامه ادیسون را هم بخونید می بینید که ادیسون اول سعی میکرد ببینه یک اختراع چطور کار می کنه
و وقتی میتونست نمونه اون را بسازه بعد از اون مشکلات اون را بر طرف می کرد و نمونه جدید تر اون را می ساخت .
یا اصلا در ابتدا برای این که ایده بگیریم بیاین روش کار انتی ویروس های معروف را تحلیل کنیم و با هم مقایسه کنیم و برای بهتر کردن کار انها نظر بدیم
و به نظر من فعلا برای کد نویسی زود هست و در ابتدای کار باید الگوریتم کار نرم افزار نوشته بشه .
نظرتون را بگین لطفا .

بیا .. اینم نمونه مثال برای اثبات گفته های پست 207 ... مال من !
hadiroosta عزیز خوش اومدی ... فقط کی میری ؟ :)

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

صرفا جهت اطلاع ... :

به چند دلقک با خوشمزگی بالا با سابقه کار 5 سال نیاز مندیم ... ترجیحا هر چی میخاد باشه ...

روش کار ... خنداندن بنده برای عملکرد بهتر در کد نویسی ... لطفا رزومه یه خودتونو حواله کنید ...
با تشکر شرکت لوازم برنامه نویسی تمیز ممیز سافت ... :)

UfnCod3r
پنج شنبه 02 آبان 1392, 07:31 صبح
بله تاپیکی که استارترش هیچی بارش نباشه ، انتی ویروس ملی باشه و اول رو GUI کار کن و ... همین میشه .
شما حتی نمی دونی چطور باید گروهی کد بنویسی . یه خط کد رو هم می ترسی بزاری .
به شما کتاب سی++ برا کودن ها رو پیشنهاد می کنم . کتاب خوبیه . حتما مطالعه کن.:تشویق:

hadiroosta
پنج شنبه 02 آبان 1392, 09:46 صبح
به نظر من که تازه به گروه پیوستم اول باید مطالب را از قسمت های دیگه جمع اوری کنیم تا دوباره کاری نشه .
و خودم هم این کار رو شروع می کنم .
شما نظر بدین یا اگه میتونین کمک کنین .

hadiroosta
پنج شنبه 02 آبان 1392, 09:46 صبح
یک ویروس در ساده ترین حالت چیست؟

یک ویروس در ساده ترین حالت برنامه ایست که خود را به روش های مختلف در سیستمهای مجزا یا شبکه تکثیر میکند.
توجه کنید که اثر مخرب یک نرم افزار را در دسته بدافزارها قرار میدهد نه ویروسها. ساخت یک بدافزار بسیار ساده است و نه تنها ارزشی ندارد بلکه خلاف ارزش های اخلاقی و قانون است. همینطور دسته های دیگری از بدافزارها(مثل اسبهای تروجان، جاسوسافزارها و …) هستند که با وجودی سطح دانش و تخصص بیشتری نسبت به نرم افزار های مخرب نیاز دارند اما چون از همان روشهای استفاده شده در یک ویروس نمونه برای انتقال خود استفاده می کنند همچنان در دسته ویروسها قرار میگیرند.
یک آنتی ویروس در ساده ترین حالت چیست؟

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

بله، ما با هم در طول مقالات بعدی که در این سایت منتشر خواهد شد اقدام به توسعه یک آنتی ویروس ساده با قابلیتی زیر میکنیم:


استفاده از پایگاه داده امضای ویروس
مدیریت پروسس ها و استار آپ
اسکن ریجستری ویندوز
تشخیص هوشمند نرم افزارهای مشکوک با قابلیت متوقف کردن یا بستن اتوماتیک آن
رسدگر(monitor) و محافظ سیستم(System Guard)

hadiroosta
پنج شنبه 02 آبان 1392, 09:47 صبح
آیا ساخت یک آنتی ویروس تجاری ممکن است؟

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

A_2006
پنج شنبه 02 آبان 1392, 09:57 صبح
آقای hadiroosta واقعا از شما ممنونم که دست بکار شدید .

A_2006
پنج شنبه 02 آبان 1392, 10:00 صبح
جناب یه درخواست.
من الان میشم یک ویروس شما چگونه الان می خواید منو بکشید ایده شما برای نابودی من چیه؟

hadiroosta
پنج شنبه 02 آبان 1392, 10:04 صبح
خواهش می کنم اگه مقدوره همه کمک کنید .

hadiroosta
پنج شنبه 02 آبان 1392, 10:05 صبح
نحوه تشخیص ویروس

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

روش های مختلفی برای کشف امضای ویروس وجود دارد. بعضی از این روش ها جزو اسرار شدیداً مراقبت شده شرکت های سازنده آنتی ویروس ها هستند. چون آنها باید در کنار دقت بالا سرعت و کارایی بالایی هم داشته باشند. در کل برای کشف آمضای ویروس از دو روش استخراج هَش(Hash) فایل و روش تجزیه کد اجرایی استفاده میشود.
روش اول استخراج هَش امضای فایل به ما این امکان را میدهد که با یک کلید چند بایتی از بین چندین میلیارد فایل یک فایل بخصوص را پیدا کنیم. اما در صورتی که ویروس بخشی از ساختار فایل خود را تغییر دهد امضای ویروس هم تغییر میکند و برای آنتی ویروس قابل شناسایی نخواهد بود. برای همین آنتیویروس های جدید با استخراج هَش فرامین اجرایی داخل فایل(کد deAssemble شده) از ساختار اجرایی آن یک الگو تهیه کنند و از آن به عنوان امضای ویروس استفاده کنند. تولید ویروس های چند شکلی(Polymorphic) جدید با تکنیک های جدید این روش تهیه امضای ویروس را به یکی از رو به رشد ترین تکنولوژی های هدف در آنتی ویروس ها تبدیل کرده.
ما در اینجا وارد مباحث پیچیده ساختار باینری فایل های اجرایی نمی شویم و از روش اول برای کشف امضای ویروس استفاده میکنیم.
الگریتم استخراج امضای ویروس

شما میتوانید از روش های معروف استخراج هش مثل MD5، CRC و … برای استخراج امضای ویروس استفاده کنید. مسئله مهم در قدم اول داشتن تابعی است خروجی آن برای هر فایل متفاوت باشد. برای اینکه اکثر کسانی که دارای تحصیلات آکادمیک یا تخصصی در ضمینه شبکه آشنایی بیشتری با CRC دارند من در این نمونه از ۳۲CRC استفاده میکنم. این الگریتم در اصل برای اطمینان از ارسال صحیح بسته ها در شبکه ایجاد شده.

brightening-eyes
پنج شنبه 02 آبان 1392, 10:08 صبح
از همگی ممنونم!
ولی:
فکر کنم من اینارو یه جایی دیده باشم!
شما سرچ کردی؟
کار خوبی کردی: بازم ممنون

hadiroosta
پنج شنبه 02 آبان 1392, 10:14 صبح
الگریتم CRC32 در VB

[
Private crcTable(0 To 255) As Long

Public Function GetCRC(ByVal PathFile As String) As String
Dim B() As Byte, lcrc As Long
On Error Resume Next
If Len(PathFile) = 0 Then Exit Function
Open PathFile For Binary Access Read As #1
ReDim B(FileLen(PathFile) - 1)
Get #1, , B
Close #1
lcrc = UBound(B())
lcrc = CRC32(B(), lcrc)
GetCRC = Hex(lcrc)
End Function

Public Sub BuildTable()

Dim i As Long, X As Long, CRC As Long
Const Limit = &HEDB88320
For i = 0 To 255
If GetInputState() <> 0 Then DoEvents
CRC = i
For X = 0 To 7
If CRC And 1 Then
CRC = (((CRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF) Xor Limit
Else
CRC = ((CRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF
End If
Next X
crcTable(i) = CRC
Next i

End Sub

Private Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As _
Long, Optional ByVal lcrc As Long = 0) As Long

Dim lCurPos As Long
Dim lTemp As Long
If lLen = 0 Then Exit Function
lTemp = lcrc Xor &HFFFFFFFF
For lCurPos = 0 To lLen
DoEvents
lTemp = (((lTemp And &HFFFFFF00) \ &H100) And &HFFFFFF) _
Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))
Next lCurPos
CRC32 = lTemp Xor &HFFFFFFFF

End Function

Private Sub Class_Initialize()
BuildTable
End Sub

hadiroosta
پنج شنبه 02 آبان 1392, 10:15 صبح
خروجی این الگریتم یک عدد هگزادسیمال در قالب string است. من از کل این کد به عنوان یک کلاس در پروژه نهایی ایتفاده میکنم.
توجه کنید که کد زیر امضای فایل FilePath را استخراج و در متغیر متنی sCRC قرار میدهد:

Private CRC As New clsCRC32
sCRC = CRC.GetCRC(FilePath)



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

For i = 0 To UBound(VSig)
If sCRC = VSig(i).Value Then
' enter File Cleaning commands here
End If
Next i

hadiroosta
پنج شنبه 02 آبان 1392, 10:17 صبح
همش رو سرچ میکنم بعد قسمت هایی که میبینم به درد میخوره در فرم قرار می دهم .

hadiroosta
پنج شنبه 02 آبان 1392, 10:21 صبح
پایگاه داده آنتی ویروس

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

hadiroosta
پنج شنبه 02 آبان 1392, 10:24 صبح
ساختار فایل پایگاه داده

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

'new DataType for Virus Signature
Private Type VirusSig
name As String
Type As String
Value As String
Action As String
ActionVal As String
End Type

'new DataType for Virus Signature Info
Private Type VS_Info
VirusCount As Long
LastUpdate As Date
End Type


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

hadiroosta
پنج شنبه 02 آبان 1392, 17:45 عصر
امضای ویروس

الگوی منحصر به فردی از ویروس (http://fa.wikipedia.org/wiki/%D9%88%DB%8C%D8%B1%D9%88%D8%B3_%28%D8%B1%D8%A7%DB% 8C%D8%A7%D9%86%D9%87%29) که به‌وسیلهٔ برنامه‌های ضدویروس (http://fa.wikipedia.org/wiki/%D8%B6%D8%AF%D9%88%DB%8C%D8%B1%D9%88%D8%B3_%28%D8% B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87%29) برای شناسایی آنها مورد استفاده قرار می‌گیرد. امضای ویروس علامتی است که ویروس‌ها برروی برنامه‌ای که به آنها حمله کرده اند می گذارند تا دیگر به آن حمله نکنند وتنها ویروسی که یک برنامه را چند بار مورد حمله قرار می‌دهد ویروس اورشلیم است
هر ویروس با یک یا تعداد بیشتری از الگوها، به نام امضا یا سیگنیچر ارائه می‌‌‌شود، دنباله‌ای از بایت‌ها که (در حالت مطلوب و خوش‌بینانه) به طور خاص و منحصراً، آن ویروس را توصیف می‌‌‌کند. گاهی، سیگنیچرها، رشته‌های اسکن نیز نامیده می‌‌‌شوند، و لازم نیست رشته‌های ثابتی باشند. برخی از نرم‌افزارهای آنتی‌ویروس، علائم don’t care که wildcard نامیده می‌‌‌شوند را نیز پشتیبانی می‌‌‌کنند که یک بایت، یا بخشی از یک بایت خاص، یا تعداد صفر یا بیشتر بایت دلخواه را مقایسه می‌‌‌کند.
عدم شناسایی امضای ویروس در مقابل آنتی ویروس: گاه ممکن است یک ویروس در برابر آنتی ویروس ناشناس باشد، اما آنتی ویروس یک حالت جستجویی دارد که معروف به ابتدایی نیز می باشد. عکس العمل این جستجوی ابتدایی این می‌باشد که رفتارها را شناسایی کرده و در صورتی که فایل مشکوک باشد آن را به قرنطینه برده و اخطارهایی را نیز به کاربر صادر می‌کند. نکته جالب این است که وقتی ویروس ناشناخته به قرنطینه ارسال شده پس متصل شدن به اینترنت ضد ویروس نمونهٔ ویروس را به شرکت سازندهٔ ضد ویروس ارسال می‌کند.

hadiroosta
پنج شنبه 02 آبان 1392, 17:47 عصر
عملکرد آنتی ویروس : روش مبتنی بر کد (امضا)

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

Jarvis
پنج شنبه 02 آبان 1392, 17:54 عصر
چند روزی به این تاپیک سر نزدم ولی الان که سر زدم از یه طرف ناراحت شدم و از یه طرف خوشحال!
ناراحت به خاطر این که عده ای از بچه ها این تاپیک رو با جاهای دیگه اشتباه گرفتن و دارن توهین و تحقیر میکنن و هم دیگه رو مسخره میکنن... خوشحال به خاطر این که بالاخره چند خط کد دیدم و اونم به همت دوست عزیزمون hadiroosta (http://barnamenevis.org/member.php?39703-hadiroosta) هستش که واقعا ازشون ممنونم و امیدوارم همینجوری ادامه بدن
ما ایرانیا چرا نمی خوایم تو ذهنمون فرو کنیم که اگه یه نفر دلش میخواد پیشرفت کنه به جای مسخره کردنش کمکش کنیم
میخوام اینو بگم که به این پروژه فعلا به عنوان یک پروژه ی تجاری و رسمی نگاه نکنید ... این پروژه رو فرض کنید یه کار عملی هست .. یه کار تحقیقاتی .. یه چیزی که بتونید ایده های برنامه نویسی تون رو روش پیاده کنید
یه سوال : این همه برنامه نویسی کار کردید ! کجا میخواید ازش استفاده کنید ؟! من خودم چند سال اگه برنامه نویسی کار کرده باشم ، وقتی جایی ازش استفاده نکنم به چه دردم میخوره ؟! جز این که وقتم رو تلف کردم ؟!
نمیخواد به فکر ساخت آنتی ویروس ملی باشید ... من پیشنهاد میکنم به فکر این باشید که بفهمید کارکرد یه آنتی ویروس چجوریه ... معایب آنتی ویروس های دیگه چیه ؟ چه ایده هایی برای بهتر کردن یه آنتی ویروس می تونیم به کار بگیریم ... این تاپیک رو تبدیل کنید به یه تاپیک علمی ، تحقیقاتی و آموزشی ... حرفه ای باشید و حرفه ای تحقیق کنید ... از مسخره کردن و تحقیر کردن و پست الکی زدن و طعنه چیزی عاید هیچ کسی نمیشه و نتیجش این میشه که ایران قدرت نرم افزاریش ضعیفه ...!


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

hadiroosta
پنج شنبه 02 آبان 1392, 17:59 عصر
یک ضدویروس چگونه ویروس‌ها را شناسایی می‌کند؟

روش‌های مختلفی برای شناسایی ویروس‌ها وجود دارد.
ویروس‌ها (به‌طور معمول) چیزی بیشتر از کد یک برنامه نیستند. بنابراین اگر ما بدانیم که هر کدی چه کاری انجام می‌دهد قادر خواهیم بود که کد حامل ویروس را به محض رویت شناسایی کنیم.
این کار اولین عملی است که انجام می‌گیرد و به نام 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 -2 (جامعیت سرجمع)
در روش 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 یاد می‌شود.
پرسش دوم: نرم‌افزار ضدویروس تحت چه شرایطی می‌تواند یک ویروس را شناسایی کند؟ آیا اگر این ویروس در حافظه مقیم شده باشد توسط ضدویروس قابل تشخیص است؟

hadiroosta
پنج شنبه 02 آبان 1392, 18:01 عصر
توصیه های مهم
اول: یک راه‌حل این است که شما خودتان ضدویروس را بررسی کنید. برای این کار بر روی اینترنت به دنبال ویروس‌های مختلفی بگردید و این ویروس‌ها را به سیستم خودتان بیاورید و ببینید که آیا ضد‌ویروس می‌تواند این ویروس‌ها را شناسایی کند یا نه؟ ولی من شما را از انجام این عمل شدیداً منع می‌کنم. حتی اگر فروشنده ضدویروس خودش این پیشنهاد را به عنوان یک راه‌حل برای آزمایش ضدویروس داده باشد. همان‌طور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 پشتیبانی کند و اگر شک کردید که فایلی حاوی ویروس است، بتوانید آن را برای فروشنده ارسال کنید تا نظر خودش را راجع‌به فایل بیان کند.
اگر یک ویروس جدید شناخته شود، فروشنده باید بتواند این موضوع را به اطلاع شما برساند تا اقدامات لازم را برای خودتان، یا برای شبکه‌ای که شما مس‡وول آن هستید انجام دهید.

hadiroosta
پنج شنبه 02 آبان 1392, 18:12 عصر
چند تکنیک آنتی ویروس Kaspersky : (از بهترین آنتی ویروسها )
1. تکنیک تله گذاری: در این روش آنتی ویروس توجه ویروس را به خود جلب می کند.
2. مخفی ماندن : وقتی ما آنتی ویروسی در کامپیوتر نصب میکنیم ویروسها در بین فایلها پنهان می شوند. در آنتی ویروس Kaspersky هیچ قسمتی از سیستم (نرم افزاری) متوجه نصب نمی شوند.
3. سیستم رادار : اطلاع رسانی به کاربران.
و ده ها تکنیک دیگر.

hadiroosta
پنج شنبه 02 آبان 1392, 18:26 عصر
" روشهای شناسایی"
یکی از معدود نتایج نظری برگرفته از مطالعاتی که بر روی ویروسهای کامپیوتری انجام گرفته است مربوط می شود به اثباتهای عملی که Fred Cohen در سال 1987 به آن رسیده بود. در این مطالعات Fred Cohen به این نتیجه رسید که هیچ الگوی مشخصی نیست که بتوان تمامی ویروسها را از طریق آن شناسایی کرد.پس از انجام تحقیقات نهایی، نتیجه آن این شد که ویروسهای کامپیوتری، نرم افزار یا کدهای مخربی می باشند که توانایی بازتولید و انتشار خود را دارند. اما بعدها محققان متوجه شدند که معانی جدیدی نیز وجود دارند که لزوما با وجود اینکه دارای نقاط مشترکی با ویروسها می باشند ولی از لحاظ عملکرد مترادف با ویروسها نبودند. ابزارهای مخربی جهت رسیدن به اهداف خاص... از سوی دیگری نرم افزارهای آنتی ویروس نیز جهت شناسایی و حذف انواع مختلف بدافزار که با متدهای خاص و حرفه ای در حال طراحی بودند به تکنولوژیهای جدید مجهز می شدند که این تکنولوژیها پایه و اساس طراحی آنتی ویروسهای جدید می باشد.
متدهای طراحی و شناسایی ویروسها توسط نرم افزارهای آنتی ویروس:
1-شناسایی از روی امضاء دیجیتالی (Signature Based detection): معمول ترین روشی که آنتی ویروس ها جهت شناسایی بدافزارها مورد استفاده قرار می دهند، شناسایی ویروسها از روی امضاء دیجیتالی می باشد که در آن آنتی ویروسها محتویات یک فایل را با دیتا بیسی از امضاء دیجیتالی ویروسهای اکتشافی مقایسه می کند و در صورت آلوده بودن فایلها بعنوان بدافزار معرفی می شوند، در این روش کل یا بخشی از فایلها اسکن می شود که این بدان علت می باشد که ویروسها می توانند
2- روش اکتشافی( Heuristic Based Detection): در این روش آنتی ویروس ها با بررسی عملکرد فعالیت های مشکوک به اکتشاف ویروسهای ناشناخته می پردازند، این تکنولوژی یکی از جدیدترین متدهای اکتشافی می باشد. خود را داخل فایل ها جاسازی کنند
3- روش تقلید (File Emulation) : یکی دیگر از روشهای شناسایی ویروسها توسط نرم افزارهای آنتی ویروس که بر مبنای تکنولوژی Heuristic Analyzer استوارمی باشد، روش تقلید فایل می باشد. در این روش با اجرای یک برنامه در محیط مجازی و سنجش رفتارهای به وقوع پیوسته و مقایسه آن با رفتارهای بدافزارهایی که از قبل به ثبت رسیده اند تشخیص داده می شود که این رفتار مربوط به یک بدافزار می شود یا نه، درصورتی که برنامه اجرا شده یک بدافزار باشد اقدامات لازم جهت پاکسازی و جلوگیری از فعالیت ان بدافزار انجام خواهد گرفت..
شناسایی از روی امضاء دیجیتالی لازم اما ناکافی
همانطور که می‌دانید، نرم‌افزارهای آنتی‌ویروس غالبا از روش تست امضاء دیجیتالی به شناسایی بدافزارها می‌پردازند، با وجود اینکه این روش یکی از روش‌های موثر در این زمینه است ولی زمانی بیشترین کارایی را دارد که آنتی‌ویروس‌ها از قبل بااین بدافزار برخورد کرده باشند و امضاء دیجیتالی آن توسط شرکت‌های تولیدکننده آنتی‌ویروس تولید و به دیتابیس آنتی‌ویروس افزوده شده باشد، به همین دلیل این روش در مقابله با بدافزارهای جدید و ناشناخته راهی از پیش نخواهند برد.
در روش شناسایی بر مبنای امضاء دیجیتالی با توجه به اینکه روزانه ویروس‌های جدیدی تولید می‌شوند، نیاز به بروزرسانی دیتابیس امضاء‌های دیجیتالی امری اجتناب‌ناپذیر به نظر می‌رسد. از این رو جهت یاری رساندن به شرکت‌های تولید‌کننده آنتی ویروس امکاناتی در داخل خود نرم‌افزارهای آنتی‌ویروس تعبیه شده است که به کاربران کامپیوتر امکان ارسال فایل‌های مشکوک به شرکت‌های سازننده آنتی‌ویروس جهت آنالیز و افزودن به دیتابیس امضاءهای ویروسی داده شده است. عملیات کشف و خنثی‌سازی ویروس‌ها توسط متخصصان این رشته و با بکارگیری نرم‌افزارها و متدهای خاص در شرایط مهندسی معکوس اتفاق می‌افتد.
یکی از نرم‌افزارهایی که جهت آنالیز فایل‌های مشکوک مورد استفاده قرار می‌گیرد نرم‌افزار Interactive Disassambler است. البته توجه داشته باشید که این نرم‌افزارها کار یک آنتی‌ویروس را انجام نداده بلکه به متخصصان جهت شناسایی و اضافه‌کردن امضاء دیجیتالی یک ویروس جدید به دیتابیس آنتی‌ویروس یاری می‌دهند.
با وجود اینکه روش شناسایی بر مبنای امضاء دیجیتالی روش موثری در جلوگیری از شیوع بسیاری از ویروس‌های کامپیوتری است، ولی ویروس‌نویسان همواره با بکارگیری فناوري‌هايي چون "Oligomorphic" و و اخیرا فناوري کاملاً پیچیده "Metamorphic" سعی دارند که همواره یک قدم جلوتر از نرم‌افزارهای آنتی ویروس باشند. در تکنیک‌های جدیدی که برای ویروس‌نویسی مورد استفاده قرار می‌گیرد این امکان وجود دارد که بخش یا کل فایل آلوده بصورت رمزنگاری شده تولیدگردد که این امر باعث می‌شود ویروس‌های از پیش شناخته شده نیز تنها با ایجاد تغییر در رفتار و شکل و شمایل خود، آنتی‌ویروس را در روش مبتنی بر امضاء دیجیتالی گول بزنند حتی اگر امضاء دیجیتالی ویروس پیشتر از اینها به دیتابیس آنتی‌ویروس افزوده شده باشد.
با توجه به اینکه بسیاری از ویروس‌ها از روش‌های مشابه جهت انتشار و آلوده ساختن سیستم‌های کامپیوتری استفاده می‌کنند و فقط پس از نفوذ به کامپیوترها تنها با تغییر در بعضی از رفتارها، میزبان خود را تخریب می‌کنند، از این رو با ایجاد یک روش اکتشافی عمومی بسیاری از ویروس‌های کامپیوتری که از یک مفهوم مشخص جهت آلوده‌کردن سیستم‌ها استفاده می‌کنند، شناسایی و در یک خانواده طبقه‌بندی می گردند
بنابراین برای شناسایی هر نوع ویروس جدید لزوما نیازی نیست امضاء دیجیتالی آن ویروس در دیتابیس آنتی‌ویروس موجود باشد، بلکه با استفاده از فناوري Heuristic Analysis با تشخیص و تطبیق نوع رفتار و عملکرد یک فایل مشکوک با بدافزاری که از قبل شناسایی شده، آن فایل نیز جزء آن دسته از ویروس طبقه‌بندی شده و توسط آنتی ویروس قابل شناسایی و حذف می‌گردد. از ان جمله می‌توان بدافزار Sality را نام برد که در کلاسه‌بندی آنتی‌ویروس‌های مختلف دارای هم خانواده‌های مختلفی است که برای مثال در آنتی‌ویروس VBA32 این بدافزار دارای دو هم خانواده کاملاً متمایز به نام‌های Sality Baka و Sality Kaka است.
با وجود اینکه شناسایی یک ویروس مشخص و خاص از طریق امضاء دیجیتالی به نظر سودمند می‌آید ولی شناسایی یک خانواده از ویروس‌ها از طریق روش امضاء دیجیتالی عمومی (روش معمول در فناوري "Heuristic Analysis) سریعتر است. محققانی که در زمینه ویروس‌نویسی تبحر دارند به این موضوع رسیده‌اند که تمامی ویروس‌هایی که در یک خانواده طبقه‌بندی می‌شوند دارای نقاط مشترکی در کدنویسی هستند که به آنتی ویروس‌ها کمک می‌کنند تا با شناسایی این نقاط و ارتباط آن با یک امضاء عمومی، تمامی آن بدافزارها شناسایی گردند (این امضاء دیجیتالی عمومی به دیتابیس آنتی‌ویروس‌ها افزوده می‌شود).
این امضاءهای دیجیتالی غالبا دارای کدهای ناپیوسته قلابی هستند که ویروس‌نویسان غیرحرفه‌ای به منبع ویروس اصلی که قبلا تولید شده اضافه کرده‌اند. از این رو وجود همین کدهای نامتعارف و قلابی به اسکنرهای آنتی‌ویروس‌ها اجازه می‌دهند که بتوانند ویروس‌ها را شناسایی کنند حتی اگر در ساختمان آن ویروس‌ها از کدهای بی معنی استفاده شده باشد. به این روش شناسایی که از متد بالا استفاده می کند، روش "Heuristic Detection" گفته می‌شود.

hadiroosta
پنج شنبه 02 آبان 1392, 18:36 عصر
آشنایی با نمونه ای از انواع ویروس های رایانه ای

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

ویروس برای محافظت خود در برابر ویروس یاب در هنگام جستجو باید درون حافظه قرار گیرد . اولین ویروس ثبت شده از این نوع ،Brain می باشد که یک ویروس تحت Dos است . این ویروس اعمال خروجی و ورودی Dos را کنترل کرده و هر بار که تقاضایی مطرح می شود آن را به ناحیه ای از دیسک که قبلا boot سالم را در آنجا ذخیره کرده است هدایت می کند . از دیدگاه برنامه نویسی ، ویروس وقفه شمار 21H از Dos را تسخیر کرده و نتایج فرامین Dos را به ناحیه دلخواه خود معطوف می کند .

ویروس های کند

شناسایی این ویروس ها نیز سخت است ،زیرا آن ها فایل های مورد استفاده سیستم عامل را آلوده می کنند . به عبارت دیگر یک ویروس کند ، تنها فایلی که در حال حاضر مورد استفاده کاربر است را آلوده می سازد . به عنوان مثال ، یک ویروس کند ممکن است فقط ناحیه boot یک فلاپی را در حین اجرای فرمان هایی نظیر FORMAT یا SYS آلوده سازد . یکی از متداول ترین این ویروس ها Darth-Vader می باشد که فقط فایل هایی از نوع COM را آن هم در هنگام نوشتن آنها توسط سیستم عامل آلوده می سازد

ویروس های پس رو

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

ویروس های چند بخشی

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

ویروس های زره پوش

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

ویروس های بدل با ایجاد یک نسخه دیگر از یک فایل اجرایی فعالیت می کنند . به عنوان مثال یک ویروس بدل ، ممکن خود را با عنوان winword.com ذخیره کند . بدین ترتیب با هر بار اجرای winword .exe سیستم عامل ابتدا به سراغ winword .com رفته و با اجرای ویروس سیستم را آلوده کند .

ویروس های Phage

آخرین گروه از ویروس ها ، ویروس های Phage هستند که برنامه ها یا پایگاه داده ها را به شکلی غیر مجاز تخریب کرده و تغییر می دهند . حرفه ای ها این دسته از ویروس ها را پس از ویروس پزشکی Phage انتخاب کرده اند . در چنین ویروسی یک سلول آلوده با کد ژنتیک آن تعویض می شود (در پزشکی ) به طور مشابه ویروس Phage در کامپیوتر یک برنامه اجرایی را با بدنه خود عوض می کند.

روش آلوده سازی سیستم

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


ویروس های ماکرویی

در حال حاضر، رشد این دسته از ویروس ها نسبت به سایر ویروس ها بسیار چشمگیر است . این ویروس ها علاوه بر کامپیوتر های شخصی روی هر شبکه ای قابل رشد و توسعه می باشند . بزرگترین خطر ویروس های ماکرویی عدم وابستگی آن ها به سخت افزار و سیستم عامل می باشد . علاوه بر این،ویروس ماکرویی به فایل های اجرایی کاری ندارد بلکه مستقیما به داده ها حمله می کند .
تنوع و گونه های ویروس ماکرویی به شدت در حال افزایش هستند.در اکتبر سال 1996 تنها 100 ویروس ثبت شده از این نوع شناسایی شدند.
در ماه مه 1997 تعداد آن ها به 700 عدد رسید و اکنون این رقم اصلا قابل مقایسه با قبل نیست .این ویروس ها با یک زبان داخلی (1) و در درون برنامه های کاربردی نوشته می شوند . نمونه هایی از این برنامه عبارتند از :برنامه های حروفچینی ،صفحه ی گسترده و گرافیکی نویسندگان ویروس برای آلوده سازی فایل هایی که توسط این نوع برنامه ها ایجاد می شوند ،ماکروها را طراحی می کنند .بدین ترتیب با مبادله ی فایل های آلوده ی دیگر کامپیوتر ها نیز آلوده خواهند شد .اکثر اوقات ،ماکروها طوری فایل ها را پاک می کنند که غیر قابل بازگشت باشد.هر سیستمی که قادر به خواندن این نوع فایل های آلوده باشد مورد تهاجم این ویروس خواهد بود.
زبان داخلی برنامه ها ، غالبا از قدرت های زیادی برخوردار است و می تواند اعمالی نظیر حذف و تغییر نام فایل ها و شاخه ها را انجام دهد.همچنین می تواند محتویات یک فایل را عوض کند . بسیاری از ویروس های ماکرویی با استفاده از Word basic و Visual Basic for Application (2) نوشته می شوند . یک ویروس ماکرویی نوشته شده در VBA قادر به آلوده سازی یک فایل Excle یک پایگاه داده Access با یک طرح PowerPoint می باشد .
یک ویروس ماکرویی باید روی گزینه های save ،New و saveAse از منوی File باز نویسی شوند تا عملکردشان تضمین گردد.

برخی از ویروس های ماکرویی مشهور

ویروس WordMacro/Concept که با عنوان Word Prank Macro یا www6 Macro نیزشناخته می شود ، ماکرویی است که با زبان ماکرو MS Word 6.0 نوشته شده است . این ویروس از چند ماکرو به نام های Payload,FilesaveAs,AutoOpen,AAAZFS,AAAZAO تشکیل شده است . این ویروس سعی می کند صفحه عمومی Word یعنی فایل normal.dot را آلوده کند .اگردر حین آلوده سازی normal.dot ، وجود ماکروهای Payload یا File Save As در صفحه تایید شود ،ویروس فرض را بر این می گذارد که صفحه ی آلوده شده و از ادامه کار دست می کشد . پس از آلوده شدن صفحه ، کلید فایل هایی که توسط گزینه ی Save As ذخیره می شوند ، آلوده خواهند شد . با انتخاب گزینه ی Tools>Macro می توانید به وجود این این ویروس پی ببرید . اگر در لیست ماکروها نام AAAZFS مشاهده شود ، ویروس concept احتمالا سیستم شما را آلوده کرده است.
با ایجاد ماکروهایی به نام Payload که حاوی هیچ نوع دستوری نباشد می توانید از آلوده شدن سیستم خود جلوگیری کنید . این ماکرو روی ویروسی بازنویسی خواهد شد ، و ویروس تصور می کند یک بار سیستم را آلوده کرده است و از ادامه کار صرف نظر می کند .ایجاد ماکروpayload راه حلی موقتی است. شاید شخصی دیگر بدون اهمیت دادن به این که آیا فایل normal.dot حاوی ماکروهای FileSaveAs یا Payload است با استفاده از بدنه ی Concept ویروسی دیگر طراحی کند . از دیگر ویروس های ماکرویی مشهور عبارتند از WordMacro/Nuclear, WordMacro/DMDA, WordMacro/Hot, WordMacro/Colors, WordMacro/Bandung,WordMacro/Atom و WordMacro/Wzzu,.
بهترین راه حل برای مقابله با ویروس های ماکرویی

ازMS Word 97 به بعد با بازکردن فایل حاوی ویروس پیامی نشان داده می شود .علاوه بر این بهتر است کلیه ی فایل های Word را که در قالب email از اینترنت دریافت می شود یا به صورت ذخیره شده روی دیسک تحویل می گیرید ، با استفاده از نرم افزارهای ویروس کش مورد بررسی قرار دهید .
علاوه بر این در نگارش جدید VBA ، مکانیزمی امنیتی در نظر گرفته شده است که با استفاذه از آن می توان کلیه ماکروهای ویروسی را بی اثر ساخت . زبان VBA در زبان های درونی بسیاری از برنامه ها نظیر AutoCAD,Photoshop,Chameleon کاربرد دارد

Abbas Naghdi
پنج شنبه 02 آبان 1392, 23:34 عصر
بدون شرح ... خودتون کد رو ببینید و بگید چیکار میکنه ... البته کد بهینه سازی شده نیست ... بخشی از کد آنتی ویروس متن باز !

QString CSPath = "C:\\Windows\\System32";
QDirIterator dir(CSPath,QDirIterator::Subdirectories);

QCryptographicHash crypto0(QCryptographicHash::Md4);
QCryptographicHash crypto1(QCryptographicHash::Md5);
QCryptographicHash crypto2(QCryptographicHash::Sha3_224);
QCryptographicHash crypto3(QCryptographicHash::Sha3_256);
QCryptographicHash crypto4(QCryptographicHash::Sha3_384);
QCryptographicHash crypto5(QCryptographicHash::Sha3_512);
QCryptographicHash crypto6(QCryptographicHash::Sha224);
QCryptographicHash crypto7(QCryptographicHash::Sha256);
QCryptographicHash crypto8(QCryptographicHash::Sha384);
QCryptographicHash crypto9(QCryptographicHash::Sha512);

while (dir.hasNext()) {
QFile file(dir.next());
if(file.open(QFile::ReadOnly)) {

crypto0.addData(file.read(1024*1024));
QByteArray hash0 = crypto0.result();
crypto1.addData(file.read(1024*1024));
QByteArray hash1 = crypto1.result();
crypto2.addData(file.read(1024*1024));
QByteArray hash2 = crypto2.result();
crypto3.addData(file.read(1024*1024));
QByteArray hash3 = crypto3.result();
crypto4.addData(file.read(1024*1024));
QByteArray hash4 = crypto4.result();
crypto5.addData(file.read(1024*1024));
QByteArray hash5 = crypto5.result();
crypto6.addData(file.read(1024*1024));
QByteArray hash6 = crypto6.result();
crypto7.addData(file.read(1024*1024));
QByteArray hash7 = crypto7.result();
crypto8.addData(file.read(1024*1024));
QByteArray hash8 = crypto8.result();
crypto9.addData(file.read(1024*1024));
QByteArray hash9 = crypto9.result();

qDebug() <<hash0.toHex();
qDebug() <<hash1.toHex();
qDebug() <<hash2.toHex();
qDebug() <<hash3.toHex();
qDebug() <<hash4.toHex();
qDebug() <<hash5.toHex();
qDebug() <<hash6.toHex();
qDebug() <<hash7.toHex();
qDebug() <<hash8.toHex();
qDebug() <<hash9.toHex();

file.close();
}
}

Abbas Naghdi
پنج شنبه 02 آبان 1392, 23:41 عصر
اینم یه کد پیشرفته تر ... که البته ... خودتون حدث بزنید و به منم بگید ... بخشی از کد آنتی ویروس متن باز ... !

static int iii;

QString s[100] ;
s[0] = "57edbed221f31b13a464a84c7c0acdb1";
s[1] = "d41d8cd98f00b204e9800998ecf8427e";
s[2] = "4155555555555555555554545455444";
s[3] = "713b3557e19f1e6e0065c62f042c423d";
s[4] = "6548adcafc86b36912913b45d21cbf69";
s[5] = "9sscdaf986424df2d9ca1d9a82414bde";
s[6] = "End";


QString fileName = "*.exe";
QString CSPath = "C:\\";

QDirIterator dira(CSPath,QDirIterator::Subdirectories);

QDir dir(dira.filePath());
QStringList files = dir.entryList(QStringList(fileName),QDir::Files | QDir::NoSymLinks);

while(dira.hasNext())
{


while (!(files.at(iii) == files.last()))
{
QCryptographicHash crypto(QCryptographicHash::Md5);
QFile file(files.at(iii));
crypto.addData(file.read(1024*1024));
QByteArray hash = crypto.result();
qDebug() <<files.at(iii)<< " "<<hash.toHex();
iii++;
file.close();
}
}
}

FastCode
پنج شنبه 02 آبان 1392, 23:43 عصر
بدون شرح ... خودتون کد رو ببینید و بگید چیکار میکنه ... البته کد بهینه سازی شده نیست ... بخشی از کد آنتی ویروس متن باز !

QString CSPath = "C:\\Windows\\System32";
QDirIterator dir(CSPath,QDirIterator::Subdirectories);

QCryptographicHash crypto0(QCryptographicHash::Md4);
QCryptographicHash crypto1(QCryptographicHash::Md5);
QCryptographicHash crypto2(QCryptographicHash::Sha3_224);
QCryptographicHash crypto3(QCryptographicHash::Sha3_256);
QCryptographicHash crypto4(QCryptographicHash::Sha3_384);
QCryptographicHash crypto5(QCryptographicHash::Sha3_512);
QCryptographicHash crypto6(QCryptographicHash::Sha224);
QCryptographicHash crypto7(QCryptographicHash::Sha256);
QCryptographicHash crypto8(QCryptographicHash::Sha384);
QCryptographicHash crypto9(QCryptographicHash::Sha512);

while (dir.hasNext()) {
QFile file(dir.next());
if(file.open(QFile::ReadOnly)) {

crypto0.addData(file.read(1024*1024));
QByteArray hash0 = crypto0.result();
crypto1.addData(file.read(1024*1024));
QByteArray hash1 = crypto1.result();
crypto2.addData(file.read(1024*1024));
QByteArray hash2 = crypto2.result();
crypto3.addData(file.read(1024*1024));
QByteArray hash3 = crypto3.result();
crypto4.addData(file.read(1024*1024));
QByteArray hash4 = crypto4.result();
crypto5.addData(file.read(1024*1024));
QByteArray hash5 = crypto5.result();
crypto6.addData(file.read(1024*1024));
QByteArray hash6 = crypto6.result();
crypto7.addData(file.read(1024*1024));
QByteArray hash7 = crypto7.result();
crypto8.addData(file.read(1024*1024));
QByteArray hash8 = crypto8.result();
crypto9.addData(file.read(1024*1024));
QByteArray hash9 = crypto9.result();

qDebug() <<hash0.toHex();
qDebug() <<hash1.toHex();
qDebug() <<hash2.toHex();
qDebug() <<hash3.toHex();
qDebug() <<hash4.toHex();
qDebug() <<hash5.toHex();
qDebug() <<hash6.toHex();
qDebug() <<hash7.toHex();
qDebug() <<hash8.toHex();
qDebug() <<hash9.toHex();

file.close();
}
}
به طور خلاصه کد اشتباه میکنه.اگر اشتباه نکنم هر بار که read صدا زده میشه, offset جلو میره.به جز این احتمالا هدفش این بوده که از یک مگابایت اول فایلهای یک دایرکتوری هش بگیره.که باید بگم طراحی فوقالعاده افتضاحی هم داره.
در یک انتی ویروس شما باید در موارد اینچنینی از معماری سرویس دهنده سرویس گیرنده استفاده کنی و برای متودهای هش از معماری کارخانه و باید یک مقدار انعتاف رو بیشتر کنید.
مشکل اصلی کد شما اینه که مثل روش کار شهرداری میمونه.همونطور که شهرداری یه خیابون رو آسفالت نمیکنه چون میدونه سال دیگه قرار هست خط تلفن از اونجا رد بشه.شما هم کد بد نشوتید چون میدونید سال دیگه باید همش رو از اول درست بنویسید.

Abbas Naghdi
پنج شنبه 02 آبان 1392, 23:46 عصر
این یکی رو دیگه خودم ننوشتم و فقط برای بهینه سازی و ساز گاری یه سری تغیرات کوچیک دادم ... اینم خودتون بگید کارش چیه و چیکار میکنه ...

فایل هدر :


#ifndef MD5_H
#define MD5_H

// Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
// rights reserved.

// License to copy and use this software is granted provided that it
// is identified as the "RSA Data Security, Inc. MD5 Message-Digest
// Algorithm" in all material mentioning or referencing this software
// or this function.
//
// License is also granted to make and use derivative works provided
// that such works are identified as "derived from the RSA Data
// Security, Inc. MD5 Message-Digest Algorithm" in all material
// mentioning or referencing the derived work.
//
// RSA Data Security, Inc. makes no representations concerning either
// the merchantability of this software or the suitability of this
// software for any particular purpose. It is provided "as is"
// without express or implied warranty of any kind.
//
// These notices must be retained in any copies of any part of this
// documentation and/or software.



// The original md5 implementation avoids external libraries.
// This version has dependency on stdio.h for file input and
// string.h for memcpy.
#include <stdio.h>
#include <string.h>

#pragma region MD5 defines
// Constants for MD5Transform routine.
#define S11 7
#define S12 12
#define S13 17
#define S14 22
#define S21 5
#define S22 9
#define S23 14
#define S24 20
#define S31 4
#define S32 11
#define S33 16
#define S34 23
#define S41 6
#define S42 10
#define S43 15
#define S44 21






static unsigned char PADDING[64] = {
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

// F, G, H and I are basic MD5 functions.
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
#define H(x, y, z) ((x) ^ (y) ^ (z))
#define I(x, y, z) ((y) ^ ((x) | (~z)))

// ROTATE_LEFT rotates x left n bits.
#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))

// FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
// Rotation is separate from addition to prevent recomputation.
#define FF(a, b, c, d, x, s, ac) { \
(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define GG(a, b, c, d, x, s, ac) { \
(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define HH(a, b, c, d, x, s, ac) { \
(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#define II(a, b, c, d, x, s, ac) { \
(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
#pragma endregion

typedef unsigned char BYTE ;

// POINTER defines a generic pointer type
typedef unsigned char *POINTER;

// UINT2 defines a two byte word
typedef unsigned short int UINT2;

// UINT4 defines a four byte word
typedef unsigned long int UINT4;


// convenient object that wraps
// the C-functions for use in C++ only
class MD5
{
private:
struct __context_t {
UINT4 state[4]; /* state (ABCD) */
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
unsigned char buffer[64]; /* input buffer */
} context ;

#pragma region static helper functions
// The core of the MD5 algorithm is here.
// MD5 basic transformation. Transforms state based on block.
static void MD5Transform( UINT4 state[4], unsigned char block[64] )
{
UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];

Decode (x, block, 64);

/* Round 1 */
FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */

/* Round 2 */
GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */
GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */

/* Round 3 */
HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */

/* Round 4 */
II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */

state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;

// Zeroize sensitive information.
memset((POINTER)x, 0, sizeof (x));
}

// Encodes input (UINT4) into output (unsigned char). Assumes len is
// a multiple of 4.
static void Encode( unsigned char *output, UINT4 *input, unsigned int len )
{
unsigned int i, j;

for (i = 0, j = 0; j < len; i++, j += 4) {
output[j] = (unsigned char)(input[i] & 0xff);
output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
}
}

// Decodes input (unsigned char) into output (UINT4). Assumes len is
// a multiple of 4.
static void Decode( UINT4 *output, unsigned char *input, unsigned int len )
{
unsigned int i, j;

for (i = 0, j = 0; j < len; i++, j += 4)
output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
(((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
}
#pragma endregion


public:
// MAIN FUNCTIONS
MD5()
{
Init() ;
}

// MD5 initialization. Begins an MD5 operation, writing a new context.
void Init()
{
context.count[0] = context.count[1] = 0;

// Load magic initialization constants.
context.state[0] = 0x67452301;
context.state[1] = 0xefcdab89;
context.state[2] = 0x98badcfe;
context.state[3] = 0x10325476;
}

// MD5 block update operation. Continues an MD5 message-digest
// operation, processing another message block, and updating the
// context.
void Update(
unsigned char *input, // input block
unsigned int inputLen ) // length of input block
{
unsigned int i, index, partLen;

// Compute number of bytes mod 64
index = (unsigned int)((context.count[0] >> 3) & 0x3F);

// Update number of bits
if ((context.count[0] += ((UINT4)inputLen << 3))
< ((UINT4)inputLen << 3))
context.count[1]++;
context.count[1] += ((UINT4)inputLen >> 29);

partLen = 64 - index;

// Transform as many times as possible.
if (inputLen >= partLen) {
memcpy((POINTER)&context.buffer[index], (POINTER)input, partLen);
MD5Transform (context.state, context.buffer);

for (i = partLen; i + 63 < inputLen; i += 64)
MD5Transform (context.state, &input[i]);

index = 0;
}
else
i = 0;

/* Buffer remaining input */
memcpy((POINTER)&context.buffer[index], (POINTER)&input[i], inputLen-i);
}

// MD5 finalization. Ends an MD5 message-digest operation, writing the
// the message digest and zeroizing the context.
// Writes to digestRaw
void Final()
{
unsigned char bits[8];
unsigned int index, padLen;

// Save number of bits
Encode( bits, context.count, 8 );

// Pad out to 56 mod 64.
index = (unsigned int)((context.count[0] >> 3) & 0x3f);
padLen = (index < 56) ? (56 - index) : (120 - index);
Update( PADDING, padLen );

// Append length (before padding)
Update( bits, 8 );

// Store state in digest
Encode( digestRaw, context.state, 16);

// Zeroize sensitive information.
memset((POINTER)&context, 0, sizeof (context));

writeToString() ;
}

/// Buffer must be 32+1 (nul) = 33 chars long at least
void writeToString()
{
int pos ;

for( pos = 0 ; pos < 16 ; pos++ )
sprintf( digestChars+(pos*2), "%02x", digestRaw[pos] ) ;
}


public:
// an MD5 digest is a 16-byte number (32 hex digits)
BYTE digestRaw[ 16 ] ;

// This version of the digest is actually
// a "printf'd" version of the digest.
char digestChars[ 33 ] ;

/// Load a file from disk and digest it
// Digests a file and returns the result.
char* digestFile( char *filename )
{
Init() ;

FILE *file;

int len;
unsigned char buffer[1024] ;

if( (file = fopen (filename, "rb")) == NULL )
printf( "%s can't be opened\n", filename ) ;
else
{
while( len = fread( buffer, 1, 1024, file ) )
Update( buffer, len ) ;
Final();

fclose( file );
}

return digestChars ;
}

/// Digests a byte-array already in memory
char* digestMemory( BYTE *memchunk, int len )
{
Init() ;
Update( memchunk, len ) ;
Final() ;

return digestChars ;
}

// Digests a string and prints the result.
char* digestString( char *string )
{
Init() ;
Update( (unsigned char*)string, strlen(string) ) ;
Final() ;

return digestChars ;
}
} ;

#endif

فایل اصلی :

#include "md5.h"
#include <iostream>
#include <string>
#include <string.h>

int main()
{
MD5 md5 ;
puts( md5.digestString( "HELLO THERE I AM MD5!" ) ) ;

// print the digest for a binary file on disk.
system("Pause");
puts( md5.digestFile( "E:\\OS Softwares\\Different Kit\\Operation System\\Actions\\Android 4.0 Ice Cream Sandwich.vmdk" ) ) ;
system("Pause");
return 0;
}

Abbas Naghdi
پنج شنبه 02 آبان 1392, 23:52 عصر
به طور خلاصه کد اشتباه میکنه.اگر اشتباه نکنم هر بار که read صدا زده میشه, offset جلو میره.به جز این احتمالا هدفش این بوده که از یک مگابایت اول فایلهای یک دایرکتوری هش بگیره.که باید بگم طراحی فوقالعاده افتضاحی هم داره.
در یک انتی ویروس شما باید در موارد اینچنینی از معماری سرویس دهنده سرویس گیرنده استفاده کنی و برای متودهای هش از معماری کارخانه و باید یک مقدار انعتاف رو بیشتر کنید.
مشکل اصلی کد شما اینه که مثل روش کار شهرداری میمونه.همونطور که شهرداری یه خیابون رو آسفالت نمیکنه چون میدونه سال دیگه قرار هست خط تلفن از اونجا رد بشه.شما هم کد بد نشوتید چون میدونید سال دیگه باید همش رو از اول درست بنویسید.

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

FastCode
جمعه 03 آبان 1392, 00:35 صبح
روش درستش اینه:

بهروز عباسی
جمعه 03 آبان 1392, 14:04 عصر
2. مخفی ماندن : وقتی ما آنتی ویروسی در کامپیوتر نصب میکنیم ویروسها در بین فایلها پنهان می شوند. در آنتی ویروس Kaspersky هیچ قسمتی از سیستم (نرم افزاری) متوجه نصب نمی شوند. من دقیقاً متوجه منظورت نشدم، اگه منظورت اینه که ویروس نمیتونه از نصب بودن AV مطلع بشه اشتباه می کنی ! با چند خط کد و استفاده از WMI میشه این کارو کرد! یا وقتی ما لیست Filter Driver ها رو از رجیستری بخونیم آنتی ویروس جماعت میشه گاو پیشونی سفید:لبخند:
این کد :
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils,
ActiveX,
ComObj,
Variants;

function VarArrayToStr(const vArray: variant): string;

function _VarToStr(const V: variant): string;
var
Vt: integer;
begin
Vt := VarType(V);
case Vt of
varSmallint, varInteger:
Result := IntToStr(integer(V));
varSingle, varDouble, varCurrency:
Result := FloatToStr(Double(V));
varDate:
Result := VarToStr(V);
varOleStr:
Result := WideString(V);
varBoolean:
Result := VarToStr(V);
varVariant:
Result := VarToStr(variant(V));
varByte:
Result := char(byte(V));
varString:
Result := String(V);
varArray:
Result := VarArrayToStr(variant(V));
end;
end;

var
i: integer;
begin
Result := '[';
if (VarType(vArray) and varArray) = 0 then
Result := _VarToStr(vArray)
else
for i := VarArrayLowBound(vArray, 1) to VarArrayHighBound(vArray, 1) do
if i = VarArrayLowBound(vArray, 1) then
Result := Result + _VarToStr(vArray[i])
else
Result := Result + '|' + _VarToStr(vArray[i]);

Result := Result + ']';
end;

function VarStrNull(const V: OleVariant): string;
// avoid problems with null strings
begin
Result := '';
if not VarIsNull(V) then
begin
if VarIsArray(V) then
Result := VarArrayToStr(V)
else
Result := VarToStr(V);
end;
end;

function GetWMIObject(const objectName: String): IDispatch;
// create the Wmi instance
var
chEaten: integer;
BindCtx: IBindCtx;
Moniker: IMoniker;
begin
OleCheck(CreateBindCtx(0, BindCtx));
OleCheck(MkParseDisplayName(BindCtx, StringToOleStr(objectName), chEaten,
Moniker));
OleCheck(Moniker.BindToObject(BindCtx, nil, IDispatch, Result));
end;

procedure GetAntiVirusProductInfo;
var
objWMIService: OleVariant;
colItems: OleVariant;
colItem: OleVariant;
oEnum: IEnumvariant;
iValue: LongWord;
begin;
objWMIService := GetWMIObject('winmgmts:\\localhost\root\SecurityCe nter2');

colItems := objWMIService.ExecQuery('SELECT * FROM AntiVirusProduct',
'WQL', 0);
oEnum := IUnknown(colItems._NewEnum) as IEnumvariant;
while oEnum.Next(1, colItem, iValue) = 0 do
begin
Writeln(Format('displayName %s',
[VarStrNull(colItem.displayName)])); // String
Writeln(Format('instanceGuid %s',
[VarStrNull(colItem.instanceGuid)])); // String
Writeln(Format('pathToSignedProductExe %s',
[VarStrNull(colItem.pathToSignedProductExe)])); // String
Writeln(Format('pathToSignedReportingExe %s',
[VarStrNull(colItem.pathToSignedReportingExe)])); // String
Writeln(Format('productState %s',
[VarStrNull(colItem.productState)])); // Uint32
Writeln('');
end;
end;

begin
try
CoInitialize(nil);
try
GetAntiVirusProductInfo;
Readln;
finally
CoUninitialize;
end;
except
on E: Exception do
begin
Writeln(E.Classname, ':', E.Message);
Readln;
end;
end;

end.
اینم نتیجه !
112215

روز خوش...

brightening-eyes
جمعه 03 آبان 1392, 15:48 عصر
یه بات چیه؟
بات در حقیقت, یه بنامست که از الگوریتم هوش مصنوعی استفاده میکنه که
1. گندکاری کنه به شیوه فجیح: تو نوشتن ویروسای خفن که به نیروگاهای هسته ای میفرستن از بات استفاده میشه
2. مخفی کردن خودش با استفاده از یه الگوریتم خاص
روشهای مقابله:
1. برعکس کردن الگوریتم خود بات و شناسایی کردنش.
تو این روش ما نمیدونیم چه باتی داره از چه الگوریتمی استفاده میکنه!
2. پیروی کردن آنتی ویروس از یه الگوریتم خاص!
تو این روش شاید(احتمال 99%) بات سعی کنه مارو بپیچونه!
یه سری الگوریتم پیاده میشه که بازم شناسایی نشه
این باتا بر حسب الگوریتم هوش مصنوعی هر لحضه ممکنه خودشونو تغییر بدن و یا شاید حتی الگوریتمشونو عوض کنن!
یه کم تغییر میدن.
راه نابودی:
تکتک الگوریتمارو رو تموم فایلا پیاده میکنیم و چک میکنیم کدوم باته
بعدش اون الگوریتمی که بات ازش پیروی میکردو برعکس میکنیم, بات بدبختو از کار میندازیم و بعدش از ring0 به کلی پاکش میکنیم!
البته باید اینم بگم که تموم باتها حکم ویروسو ندارن!
از بات تو ساخت بازی م استفاده میشه

hadiroosta
جمعه 03 آبان 1392, 15:52 عصر
آقای عباسی عزیز از این که توجه داشتید ممنون .
به نظرت اگر یک انتی ویروس با یک زبان سطح بالا مثل سی شارپ نوشته بشه بهتر نیست . چون که دات نت توابع قویتری داره و سی شارپ همه قابلیت های سی و سی پلاس را داره ؟
نظر شما چیه ؟

FastCode
جمعه 03 آبان 1392, 16:22 عصر
اگر با همین شیوه پیش برید محصول نهاییتون میشه Microsoft Bob

FastCode
جمعه 03 آبان 1392, 16:23 عصر
آقای عباسی عزیز از این که توجه داشتید ممنون .
به نظرت اگر یک انتی ویروس با یک زبان سطح بالا مثل سی شارپ نوشته بشه بهتر نیست . چون که دات نت توابع قویتری داره و سی شارپ همه قابلیت های سی و سی پلاس را داره ؟
نظر شما چیه ؟

اصلا بهتر نیست.
چون دسترسی و امکانات لازم در زبانهای سطح بالا وجود نداره و نمونه کدی که نوشتم فقط برای این بود که ساختار رو نشون بدم.

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

Abbas Naghdi
شنبه 04 آبان 1392, 00:09 صبح
آقای عباسی عزیز از این که توجه داشتید ممنون .
به نظرت اگر یک انتی ویروس با یک زبان سطح بالا مثل سی شارپ نوشته بشه بهتر نیست . چون که دات نت توابع قویتری داره و سی شارپ همه قابلیت های سی و سی پلاس را داره ؟
نظر شما چیه ؟

شما با هر زبانی که آنتی ویروس بنویسی در نهایت نیاز به دسترسی به kernel mod رو دارید و البته باید از APi استفاده کنید که اون با زبان های سطح پایین نوشته شده ... مگر اینکه بخوایید خودتون با C# بنویسید که ... ! ... :)

یه چیز دیگه اینه که سرعت عملگرد زیاد و درگیری حافظه باید کم باشه در آنتی ویروس در غییر این صورت استفاده نکردن از آنتی ویروس به نفع تره تا استفاده کردنش
نکته ی دیگه وابسته بودن C# و کلا زبان های تحت .net به خود .net هست که این خیلی مشکل سازه ...
نکته ی بعدی کرک شده این برنامه هاست که میشه با استفاده از چند ابزار کد برنامه های نوشته شده با این زبان ها رو بیرون کشید
نکته ی بعدی اینه که به راحتی میشه در فایل های dll یا exe این نوع زبان ها نفوذ کرد و رشته ها رو تغییر و جایگذین کرد
و نکته ی مهم تر و قابل بحث تر اینه که C# و کلا زبان های .net نمیتونن کد زبان های سطح پایین رو آنالیز کنن .... به طور خلاصه نمیشه باهاش ویروس های اسمبلی یا سی و ... رو تحلیل کرد و داخل فایل های اجراییشون جستجو کرد ...
پس این یه خطای بزرگ هست که از زبان های سطح بالا استفاده بشه ...
زبان های سطح بالا چه جاوا و چه سی شارپ و چه ... همگی وابسته هستند ... پس بهتره از مستقیم ترین راه با وبستگی کم و کوتاه استفاده کنیم ... تا با قدرتی بیشتر پیش بریم .

Abbas Naghdi
شنبه 04 آبان 1392, 00:35 صبح
این کد رو ببینید و کامپایل کنید
این کد برای مانیتور کردن یه پوشه هست ...
سرعت خیلی بالایی داره چون در واقع کاری نمیکنه بجز مانیتور کردن ... همه ی کار ها رو سیستم عامل انجام میده ... همون کاری رو میکنه که یه آنتی ویروس باید انجام بده ... میتونید کامپایلش کنید و نتیجشو ببینید ...

فایل هدر :

//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by DirMon2.rc
//
#define DLG_MAIN 9
#define IDR_ICO_MAIN 102
#define IDC_PATH 1001
#define IDC_BROWSE 1002
#define IDC_CHANGE 1003
#define IDC_START 1004
#define IDC_STOP 1005
#define IDC_CLEAR 1006
#define IDC_ABOUT 1007
#define IDC_STATIC1 1008
#define IDC_CUSTOM1 1009
#define IDC_STATUS 1010

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 103
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1010
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif



فایل اصلی :


#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <tchar.h>
#include <shlwapi.h>
#include <shlobj.h>
#include <objbase.h>
#include <process.h>
#include "resource.h"

/** Prototypes ************************************************** ************/

INT_PTR CALLBACK MainDlgProc(HWND, UINT, WPARAM, LPARAM);
BOOL MainProc_OnInitDialog(HWND, HWND, LPARAM);
void MainProc_OnCommand(HWND, int, HWND, UINT);
BOOL Main_OnWindowPosChanging(HWND, LPWINDOWPOS);
void Main_OnGetMinMaxInfo(HWND, LPMINMAXINFO);
void MainProc_OnClose(HWND);
void ShowErr(DWORD);
void AddColumn(HWND, LPTSTR, int, int);
void CheckThreadForExit(HWND);
void __cdecl th_GetChangeThread(void *);

/** Global variables ************************************************** ******/

HINSTANCE g_hInstance;
TCHAR lptPath[MAX_PATH];
HWND hList;
BOOL g_bInThread;
HANDLE g_hThread;
HIMAGELIST hImageList;

//************************************************** **************************

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
INITCOMMONCONTROLSEX icc;
WNDCLASSEX wcx;

g_hInstance = hInstance;

icc.dwSize = sizeof(icc);
icc.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&icc);

wcx.cbSize = sizeof(wcx);
if (!GetClassInfoEx(NULL, MAKEINTRESOURCE(32770), &wcx))
return 0;

wcx.hInstance = hInstance;
wcx.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDR_ICO_MAIN));
wcx.lpszClassName = _T("DirMonClass");
if (!RegisterClassEx(&wcx))
return 0;

return DialogBox(hInstance, MAKEINTRESOURCE(DLG_MAIN), NULL, (DLGPROC)MainDlgProc);
}

//************************************************** **************************

INT_PTR CALLBACK MainDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
HANDLE_MSG (hwnd, WM_INITDIALOG, MainProc_OnInitDialog);
HANDLE_MSG (hwnd, WM_COMMAND, MainProc_OnCommand);
HANDLE_MSG (hwnd, WM_CLOSE, MainProc_OnClose);
HANDLE_MSG (hwnd, WM_WINDOWPOSCHANGED, Main_OnWindowPosChanging);
HANDLE_MSG (hwnd, WM_WINDOWPOSCHANGING, Main_OnWindowPosChanging);
HANDLE_MSG (hwnd, WM_GETMINMAXINFO, Main_OnGetMinMaxInfo);
}

return FALSE;
}

//************************************************** **************************

BOOL MainProc_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
hList = GetDlgItem(hwnd, IDC_CHANGE);
int list_index = 0;

CreateWindowEx(0, STATUSCLASSNAME, NULL,
WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0,
hwnd, (HMENU)IDC_STATUS, g_hInstance, NULL);

ListView_SetExtendedListViewStyle(hList, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
AddColumn(hList, _T("Folder Path"), 200, list_index++);
AddColumn(hList, _T("Action"), 80, list_index);

CoInitialize(0);
SHAutoComplete(GetDlgItem(hwnd, IDC_PATH), SHACF_DEFAULT);

return FALSE;
}

//************************************************** **************************

void MainProc_OnClose(HWND hwnd)
{
CheckThreadForExit(hwnd);
CoUninitialize();
EndDialog(hwnd, 0);
}

//************************************************** **************************

void MainProc_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
BROWSEINFO bi;
TCHAR lpPath[MAX_PATH];

switch(id)
{
case IDC_BROWSE:
RtlZeroMemory(&bi, sizeof(bi));
bi.hwndOwner = hwnd;
bi.lpszTitle = _T("Specify Folder Path To Monitor");

SHGetPathFromIDList(SHBrowseForFolder(&bi), lpPath);
SetDlgItemText(hwnd, IDC_PATH, lpPath);

break;

case IDC_START:
GetDlgItemText(hwnd, IDC_PATH, lptPath, MAX_PATH);
if ( !PathIsDirectory(lptPath) )
{
MessageBox(hwnd, _T("Invalid Path."), _T("Error"), MB_ICONERROR);
break;
}
if ( !g_bInThread )
{
g_bInThread = TRUE;
SendDlgItemMessage(hwnd, IDC_STATUS, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM) _T("Monitoring Started"));
EnableWindow(GetDlgItem(hwnd, IDC_PATH), FALSE);
g_hThread = (HANDLE) _beginthread(th_GetChangeThread, 0, lptPath);
}
break;

case IDC_STOP:
if ( g_bInThread )
{
SendDlgItemMessage(hwnd, IDC_STATUS, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM) _T("Monitoring Stoped"));
EnableWindow(GetDlgItem(hwnd, IDC_PATH), TRUE);
InterlockedExchange((LONG *)&g_bInThread, FALSE);
}
break;

case IDC_ABOUT:
MessageBox(hwnd, _T("DirMon v1.0 ©2010\nCreated by Hoax3r"), _T("About"), MB_ICONINFORMATION);
break;

case IDC_CLEAR:
ListView_DeleteAllItems(hList);
break;
}
}

//************************************************** **************************

BOOL Main_OnWindowPosChanging(HWND hwnd, LPWINDOWPOS lpwpos)
{
HDWP hDwp;
RECT rc;

hDwp = BeginDeferWindowPos(9);
if ( hDwp ){
GetClientRect(hwnd, &rc);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_STATIC1), NULL,
7, 10, rc.right - 60, 20, SWP_NOZORDER | SWP_NOREDRAW);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_PATH), NULL,
7, 30, rc.right - 60, 20, SWP_NOZORDER | SWP_NOREDRAW);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_BROWSE), NULL,
rc.right - 45, 30, 35, 20, SWP_NOZORDER | SWP_NOREDRAW);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_CHANGE), NULL,
7, 60, rc.right - 18, rc.bottom - 138, SWP_NOZORDER | SWP_NOREDRAW);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_STATUS), NULL,
0, 0, 0, 0, SWP_NOZORDER | SWP_NOREDRAW);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_START), NULL,
7, rc.bottom - 68, 75, 32, SWP_NOZORDER | SWP_NOREDRAW);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_STOP), NULL,
97, rc.bottom - 68, 75, 32, SWP_NOZORDER | SWP_NOREDRAW);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_CLEAR), NULL,
187, rc.bottom - 68, 75, 32, SWP_NOZORDER | SWP_NOREDRAW);

hDwp = DeferWindowPos(hDwp, GetDlgItem(hwnd, IDC_ABOUT), NULL,
277, rc.bottom - 68, 75, 32, SWP_NOZORDER | SWP_NOREDRAW);

EndDeferWindowPos(hDwp);

RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN |
RDW_ERASE | RDW_NOFRAME | RDW_UPDATENOW);
}

return TRUE;
}

//************************************************** **************************

void Main_OnGetMinMaxInfo(HWND hwnd, LPMINMAXINFO lpInfo)
{
if(lpInfo){
lpInfo->ptMinTrackSize.x = 373;
lpInfo->ptMinTrackSize.y = 473;
}
}

//************************************************** **************************

void ShowErr(DWORD LastErr)
{
LPTSTR lpvSysMsg;

FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM, NULL, LastErr,
MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpvSysMsg, 0, NULL);

MessageBox(NULL, lpvSysMsg, _T("MsG"), MB_OK | MB_ICONERROR);

HeapFree (GetProcessHeap(), 0, lpvSysMsg);
}

//************************************************** **************************

void __cdecl th_GetChangeThread(void *param)
{
HANDLE hDir;
DWORD dwRet = 0;
DWORD iCount = 1;
DWORD itemcount = 0;
LPTSTR lpPath = (LPTSTR) param;
TCHAR lpFilePath[MAX_PATH];
LPTSTR lptAction;
LVITEM item = {0};
SHFILEINFO sinfo = {0};
FILE_NOTIFY_INFORMATION Buffer[1024];

if ( hImageList )
ImageList_Destroy(hImageList);

hImageList = 0;

int flags = FILE_NOTIFY_CHANGE_SIZE | FILE_NOTIFY_CHANGE_SECURITY |
FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_FILE_NAME |
FILE_NOTIFY_CHANGE_DIR_NAME | FILE_NOTIFY_CHANGE_ATTRIBUTES ;

hDir = CreateFile(lpPath, FILE_LIST_DIRECTORY,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);

if ( hDir != INVALID_HANDLE_VALUE )
{

item.mask = LVIF_TEXT | LVIF_IMAGE;
hImageList = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR16, iCount, iCount);

while ( ReadDirectoryChangesW(hDir, &Buffer, sizeof(Buffer), TRUE, flags, &dwRet, NULL, NULL) )
{
if ( InterlockedExchange((LONG *)&g_bInThread, TRUE) != TRUE )
break;

switch(Buffer[0].Action)
{
case FILE_ACTION_ADDED: lptAction = _T("Created"); break;
case FILE_ACTION_REMOVED: lptAction = _T("Deteled"); break;
case FILE_ACTION_MODIFIED: lptAction = _T("Modifed"); break;
case FILE_ACTION_RENAMED_OLD_NAME: lptAction = _T("Renamed"); break;
case FILE_ACTION_RENAMED_NEW_NAME: lptAction = _T("Renamed"); break;
}

RtlZeroMemory(lpFilePath, MAX_PATH);
PathAppend(lpFilePath, lpPath);
PathAppend(lpFilePath, Buffer[0].FileName);

if ( lstrcmpi(PathFindFileName(lpFilePath), _T("ntuser.dat")) != 0 &&
lstrcmpi(PathFindFileName(lpFilePath), _T("ntuser.dat.log") ) != 0 &&
lstrcmpi(PathFindFileName(lpFilePath), _T("ntuser.dat.log1") ) != 0 )
{
SHGetFileInfo(lpFilePath, 0, &sinfo, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_SMALLICON );

item.iImage = ImageList_AddIcon(hImageList, sinfo.hIcon);
DestroyIcon(sinfo.hIcon);

item.iItem = itemcount;
item.iSubItem = 0;
item.pszText = lpFilePath;
ListView_SetImageList(hList, hImageList, LVSIL_SMALL);
ListView_InsertItem(hList, &item);

item.iSubItem = 1;
item.pszText = lptAction;
ListView_SetItem(hList, &item);

ImageList_SetImageCount(hImageList, ++iCount);
}
RtlZeroMemory(&Buffer, sizeof(Buffer));
}

CloseHandle(hDir);
InterlockedExchange((LONG *)&g_bInThread, FALSE);
}
else
ShowErr(GetLastError());
}

//************************************************** **************************

void AddColumn(HWND listhandle, LPTSTR text, int width, int c)
{
LVCOLUMN clmn;

memset(&clmn, 0, sizeof(LVCOLUMN));

clmn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
clmn.fmt = LVCFMT_LEFT;
clmn.iSubItem = c;
clmn.cx = width;
clmn.pszText = text;
clmn.cchTextMax = lstrlen(text);

ListView_InsertColumn(listhandle, c, &clmn);
}

//************************************************** **************************

void CheckThreadForExit(HWND hwnd)
{
DWORD dwExitCode = 0;

GetExitCodeThread(g_hThread, &dwExitCode);

if ( dwExitCode == STILL_ACTIVE )
{
TerminateThread(g_hThread, 1);
InterlockedExchange((LONG *)&g_bInThread, FALSE);
EnableWindow(GetDlgItem(hwnd, IDC_PATH), TRUE);
g_hThread = NULL;
}
}

//************************************************** **************************

hadiroosta
شنبه 04 آبان 1392, 14:50 عصر
در سی شارپ مدیریت حافظه به صورت خودکار انجام میشه بر خلاف ++c . وابستگی ++c به فایل توابع خود که در ابتدای هر برنامه لود میشن در اصل ایده دات نت هم از همینجا گرفته شده ولی با توابع فروان و قویتر و این میتونه یک مزیت باشه .
در مورد فرمایش شما درباره کرک شدن برنامه های دات نت با چند برنامه باید عرض کنم که فراموش نکنید که برنامه نویسی داره به سمت اپن سورس شدن میره و وقتی کد های برنامه در اختیار ما قرار میگیره دیگه نیازی به کرک کردن نیست .

UfnCod3r
شنبه 04 آبان 1392, 15:32 عصر
با سی شارپ انتی ویروس نمی نویسن.
Native != Managed

FastCode
شنبه 04 آبان 1392, 16:17 عصر
در سی شارپ مدیریت حافظه به صورت خودکار انجام میشه بر خلاف ++c . وابستگی ++c به فایل توابع خود که در ابتدای هر برنامه لود میشن در اصل ایده دات نت هم از همینجا گرفته شده ولی با توابع فروان و قویتر و این میتونه یک مزیت باشه .



این قراره مزیت حساب بشه؟من اینطور فکر نمیکنم.
جست و جو کنید Custom Memory Allocator

بهروز عباسی
شنبه 04 آبان 1392, 20:35 عصر
میشه از زبان های غیر Native هم استفاده کرد ولی فقط به عنوان User Interface برنامه و نه قسمت های حساس

مدیریت حافظه !!! دیگه قرار نیست که اونطوری قدیمی کد بزنیم:لبخندساده: مثلا برای درایور ها الان M$ فریم ورک زده (WDF) و کارا راحت تر شده فقط باید دانش کافی رو داشته باشی تا بدونی چطوری ازشون استفاده کنی. در ضمن این کارا رو کسایی انجام میدن که بتونن حافظه رو مدیریت کنن چون توی Kernel-land گند زدن توی مدیریت حافظه یعنی تباهی:شیطان:

شب خوش

hadiroosta
شنبه 04 آبان 1392, 21:21 عصر
با تشکر از راهنمائی دوستان

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

بهروز عباسی
یک شنبه 05 آبان 1392, 07:16 صبح
ما اگه بخواهیم یک فایل را برسی کنیم که ببینیم حاوی ویروس هست یا نه باید اون فایل را به زبان سیستم تبدیل کنیم و بعد اون را برسی کنیم یا باید به کد همون زبانی که باهاش نوشته شده تبدیل کنیم ؟
نه دیگه به چی تبدیلش کنی ؟!

شما با #C هم می تونی انی کارو بکنی کافیه در ساده ترین حالت، یک Dis-assembler ساده طراحی کنی (که شاید برای #C هم باشه ولی من فعلاً چندنسخه کدباز فقط برای سی دیدم) بعد اون فایل مشکوک رو دیس اسمبل می کنی و توش دنبال دستورات تابلو می گردی :دی یعنی همون امضای ویروس !

hadiroosta
یک شنبه 05 آبان 1392, 12:35 عصر
نه دیگه به چی تبدیلش کنی ؟!

شما با #C هم می تونی انی کارو بکنی کافیه در ساده ترین حالت، یک Dis-assembler ساده طراحی کنی (که شاید برای #C هم باشه ولی من فعلاً چندنسخه کدباز فقط برای سی دیدم) بعد اون فایل مشکوک رو دیس اسمبل می کنی و توش دنبال دستورات تابلو می گردی :دی یعنی همون امضای ویروس !

تشکر آقای عباسی
با راهنمائی شما دارم ++C کار میکنم . محیط کد نویسی را Turboo C ++ IDE نصب کردم حالا موقعی که کامپلایل می کنم میگه قادر نیست فایل include را باز کنه (unable to open include file) لطفا راهنمایی کنید .
در ضمن کار کردن با فایل ها در ++C خیلی سریتر هست ولی ایا ساخت دیتا بیس (برای نگهداری امضا ها ) هم راحت و سریع هست ؟

Abbas Naghdi
یک شنبه 05 آبان 1392, 12:54 عصر
تشکر آقای عباسی
با راهنمائی شما دارم ++C کار میکنم . محیط کد نویسی را Turboo C ++ IDE نصب کردم حالا موقعی که کامپلایل می کنم میگه قادر نیست فایل include را باز کنه (unable to open include file) لطفا راهنمایی کنید .
در ضمن کار کردن با فایل ها در ++C خیلی سریتر هست ولی ایا ساخت دیتا بیس (برای نگهداری امضا ها ) هم راحت و سریع هست ؟


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

بهروز عباسی
یک شنبه 05 آبان 1392, 13:36 عصر
برای دیتابیس باید باید از یک معماری خیلی دقیق و حساب شده استفاده کنی چون توی مقایسه ها فراخوانی های دیتابیس هم خیلی زیاده و هم باید خیلی سریع انجام بشه تا کاربر شاهد افت کارایی سیستم نباشه
DBMS ای که عباس گفت(SQLite) برای این مناسبه برای مثال کسپرسکی و مکافی و فکر کنم اویرا از این سیستم استفاده می کنن.

hadiroosta
یک شنبه 05 آبان 1392, 13:50 عصر
برای این کار بهتره از کامپاییلر های خود مایکروسافت استفاده کنی


منظورتون همون visual C++ IDE هست یا نسخه دیگه ای ؟


و البته منظور از کار با فایل ها چی هست ؟
منظورم همان باز و بسته کردن و جستجوی فایل هاست چون زبانهای سطح بالا کد های نوشته شده را ابتدا به یک زبان میانی تبدیل می کنند (مثلا در VS به IL ) و بعد از ان زبان به زبان ماشین ترجمه میشه و این سرعت را نسبت به زبانهای میانی (مثل C++) کمتر میکنه . مگه همینطور نیست ؟

hadiroosta
یک شنبه 05 آبان 1392, 14:06 عصر
به نظر من اگر قسمتی که فایل ها رو دی اسمبل می کنه و با دیتا بیس مقایسه میکنه را با C++‎‎ نوشته بشه و در قالب یک DLL در یک برنامه سطح بالا استفاده بشه میتونه قابل قبول تر باشه (از لحاظ سرعت به خاطر اینکه که با C++‎‎ نوشته شده و از لحاظ گرافیک که با یک زبان سطح بالا نوشته شده مثل C#‎‎)
به طور مثال در C# کار کردن با رجیستری خیلی راحته . و همچنین با WPF این زبان میشه گرافیک های خیلی بالایی تولید کرد . و در کل کنترل سیستم عامل با کلاسهای اون خیلی راحته .
نظر شما چیه ؟

FastCode
یک شنبه 05 آبان 1392, 19:02 عصر
الان دیتابیس های خیلی بهتری اومدن که سرعت بیشتری در این نوع query ها دارند.
مثل BDB یا voldemort یا cassandra

Abbas Naghdi
چهارشنبه 08 آبان 1392, 05:24 صبح
الان دیتابیس های خیلی بهتری اومدن که سرعت بیشتری در این نوع query ها دارند.
مثل BDB یا voldemort یا cassandra

میشه بیشتر توضیح بدی !
به کار میاد ؟
این پایگاه داده ها یکم ناشناخته هستند .. !!!

Abbas Naghdi
چهارشنبه 08 آبان 1392, 05:45 صبح
چچنتا سوال ...
یه ویروس چه چیزی در سورس خودش داره که برنامه های دیگه ندارن ؟
یه آنتی ویروس چطوری باید صورس یه فایل رو آنالیز کنه ؟
یه فایل چطوری میتونه به ویروس آلوده بشه ؟
یه فایل چطوری میتونه پپاککسازی بشه ؟

بهروز عباسی
چهارشنبه 08 آبان 1392, 18:12 عصر
یه ویروس چه چیزی در سورس خودش داره که برنامه های دیگه ندارن ؟
اهداف خرابکارانه !:چشمک: ؛ بدافزارها هم درحالت کلّی چیزی بیشتر از یک نرم افزار نیستند و چیزی که اون ها رو تبدیل به بدافزار میکنه اعمال -گاهاً- خرابکارانه اون هاست. بدافزار ها هم برای اجرا به به API سیستم عامل ها نیاز دارند (درموارد خاص میتون اینطوری نباشن) و از اونا استفاده می کنن ولی چون برای کارهای غیر معمول در نرم افزار های مورد اعتماد باعث میشن تا ضدویروس ها به اونا مشکوک بشن مثلاً برنامه های کاربردی معمولی به ندرت از Windows API های Document نشده استفاده می کنن:شیطان: یا مواقعی که بدافزار از Shell Code استفاده می کنن؛ مراحلی که برای به دست آوردن هندل توابع مورد نظر (در shell code ها) در هیچ برنامه ی غیر مخربی پیدا نمیشه و مواردی از این قبلی ...


یه آنتی ویروس چطوری باید صورس یه فایل رو آنالیز کنه ؟
اگه قرار باشه سورس مورد آنالیز قراره بگیره پس AV باید از یک موتور Dis Assembly برای این کار استفاده کنه تا کد فایل اجرایی رو دیس-اسمبل کنه و بعد آنالیز کنه البته این درحالت Static رخ میده و حالت دیگری هم هست، Dynamic analysis که در این نوع آنالیز AV از Code Visualizer ها و SandBox و تکنولوژی های مجازی سازی استفاده میکنه تا رفتار و نه کد بدافزار رو مورد آنالیز قرار بده و با استفاده از اطلاعات قبلی اقدام به تصمیم گیری بکنه.



یه فایل چطوری میتونه به ویروس آلوده بشه ؟
به تعداد فایل ها راه برای آلوده شدن هست:خجالت: ، بدافزار با داشتن ابزارهای مناسب برای تغییر ساختار فایل های اجرایی مخصوصاً بخش PE میتونن خودشون یا فایل مورد نظرشون رو به فایل های دیگه الحاق/تزریق کنن.
یا فقط قطعه ای code مخرب رو به فایل ها تزریق کنن و با ایجاد تغییرات در فایل اجرایی روند اجرای اونو به نحوی تغییر بدن تا اون برنامه حین اجرا ناخواسته قطعه کد مخرب رو هم اجرا کنه و .... .


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

شب خوش (wink)

Jarvis
پنج شنبه 09 آبان 1392, 10:04 صبح
دوستان اگه کسی در مورد آنالیزور فایل ها اطلاعات ( ترجیحا اطلاعات پایه ای ) داره ممنون میشم اینجا به اشتراک بزاره ...
کنجکاوم در موردش بخونم

بهروز عباسی
جمعه 10 آبان 1392, 17:08 عصر
دوستان اگه کسی در مورد آنالیزور فایل ها اطلاعات ( ترجیحا اطلاعات پایه ای ) داره ممنون میشم اینجا به اشتراک بزاره ...
کنجکاوم در موردش بخونم

چه نوع آنالیزی مدنظرته؟ آنالیز دستی یا روشهای آنالیز آنتی ویروس ها ؟

Jarvis
جمعه 10 آبان 1392, 19:07 عصر
چه نوع آنالیزی مدنظرته؟ آنالیز دستی یا روشهای آنالیز آنتی ویروس ها ؟
والا من کلا از آنالیزور ها اطلاعاتی ندارم ... در مورد هر دو تا هم که گفتی مایلم مطلب بخونم ... حالا تو از آنالیز دستی شروع کن ... بعد میریم سراغ آنالیزور آنتی ویروس ها...

Felony
جمعه 10 آبان 1392, 19:45 عصر
والا من کلا از آنالیزور ها اطلاعاتی ندارم ... در مورد هر دو تا هم که گفتی مایلم مطلب بخونم ... حالا تو از آنالیز دستی شروع کن ... بعد میریم سراغ آنالیزور آنتی ویروس ها...
آنالیز دستی با disassembler ها ( بهترینشون IDA ) و debugger ها ( پرکاربردترینشون OllyDBG ) صورت میگیره ، برای آنالیز بدافزارها به این شیوه باید به ساختار سیستم عامل و توابع API و دستورات زبان اسمبلی و ثبات ها آشنایی داشته باشید ( + تجربه ، پشتکار ) .

نو دیگر آنالیز نیمه خودکار :D ، این نوع آنالیز خیلی ساده تر از شیوه دستی هست ولی به مراتب دقت کمتری داره و ممکنه خیلی از موارد از چشم آنالیزر پنهان بمونه ، جهت انجام این نوع آنالیز از از ابزارهای شبیه ساز رفتار سیستم استفاده میشه ، به طوری که محیطی مجازی و ایزوله پیاده میشود تا بدافزار در آن شروع به فعالیت کند و رفتار آن مورد بررسی قرار میگیرد ؛ به این ابزارها Sandbox گفته میشه که مرسوم ترین اونها در ویندوز ابزار Sandboxie میباشد .

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

نوع دیگر آنالیز ، آنالیز های خودکار آنتی ویروس ها هست که داستان ها دارد ( Heuristic و ... ) که حال توضیح نوشتن در موردشون رو ندارم .

شب خوش .

بهروز عباسی
جمعه 10 آبان 1392, 20:01 عصر
دیگه به توضیح نیاز نداره !

سورس رو مطالعه کنید

Jarvis
جمعه 10 آبان 1392, 23:33 عصر
بهروز جان من اسمبلی کار نکردم ، از سورس سر در نمیارم متاسفانه ... من اطلاعات پایه ای میخواستم که تا حدودی Mahan-1363 (http://barnamenevis.org/member.php?63881-Mahan-1363) منو در جریان قرار داد ...
حالا اگه چیزه دیگه ای هم هست خوشحال میشم دوستان اینجا بزارن ، ما تازه واردا بخونیم .. :)

brightening-eyes
جمعه 01 آذر 1392, 12:02 عصر
این یه آنتی ویروسه که با اسمبلی نوشته شده
چیز خیلی ضعیفیه!
ولی خوب بازم به درد این میخوره که تو آنتی ویروس ازش استفاده کنیم.
من دارم میخونمش و اگه بتونم ازش استفاده میکنم.

barismaz
شنبه 02 آذر 1392, 21:51 عصر
سلام از نرم افزارهای آنالیز میشه به understandو coco, dotcover اشاره کرد
کلا دل و روده برنامه ها رو میشه با اینا بیرون ریخت مخصوصا dotcover

Abbas Naghdi
جمعه 13 تیر 1393, 00:05 صبح
بسم الله الرحمن الرحیم


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


ادامه دارد