اليوم: إضافة توقيع الفيروس رقم 4مليون للـ AIO SystemCare. ولكن أصبح البرنامج بطيء.!
الحمد لله بعد عمل شاق لسنوات.
اليوم أصبح برنامجي يتعامل مع أكثر من 4مليون تهديد منهم 523331 حصان طرواده.
طبعاً هذا رقم صغير نوعاً ما بالنسبة لبرنامج Avast أو ESET أو AVG.
ولكن هذا إنجاز بالنسببة لي.
وأيضاً انتهيت من كتابة Privacy policy و Terms of use سأعرضها عليكم قريباً
ولكن ظهرت بعض المشاكل لا أعرف ماحلها.
محرك الفحص Antivirus Engine أصبح بطيء جدا واحيانات لا يستجيب. (حيث يقوم بمقارنة الملف الواحد بعدد كبير من الفيروسات).
لا أستطيع عمل تحديث للبرنامج بسبب عدم توفري علي خادم Server. (ان شاء الله يتم حلها لاحقاً).
الطريقة التي استعملها في تخزين البيانات (تسجيل بيانات مشفره) غالباً تعطي انذار كاذب (يتم التغيير في التوقيعات في مرحلة فك التشفير) ما رأيكم بأفضل طريقة لتسجيل مثل هذه البيانات؟
بالنسبة للملفات المضغوطة كيف أتصرف معها! (هل أفك الضغط في temp أم أحاول فحصها وهي مضغوطة أو اتجاوزها)
شكراً مقدماً.
لا أفهم ما تقصد كيف تكون التوقيعات مرتبة؟
استعملت 9خوارزميات مختلفة وكلهم نفس النتيجة.
احاول استعمال الذاكرة الوهميه في النظام VRAM كما يفعل eset
أضن الاخ يقصد منهجية لتخزين و البحث حاليا أعمل على مشروع يحوي ملاين المدخلات يجب البحث فيها كل مرة (نوع من الذكاء الصناعي) إذا قمت بالبحث في كل مرة في هاته المعلومات سيكون الأمر بطيء لهذا قمت بعمل دالة تقوم ببتقسيم البيانات إلى جداول حسب حجم المدخلات و في حالة البحث أستعمل نفس المنهجية إذا كانت البيانا بحجم كذا إبحث في الجدول كذا(إسم الجدول يحوي الإسم رمزي إضافة للحجم المسموح للتسهيل في الكود) و هاكذا أرجو أكون أفدتك
تقريباً كما قال @daka
من المهم جداً ان لا تقارن كل ملف ب 4 ملايين توقيع, كل ملف يجب ان يقارن ب 10 الاف توقيع مثلاً او اقل,
على سبيل المثال لو قلنا انك تقوم بأخذ Hash الملف ثم مقارنته ب التواقيع الموجودة, فلو كانت التواقيع مرتبة ابجدياً, و هاش الملف يبدأ بحرف ال Z فلا داعي لمقارنته ب جميع التواقيع الاخرى والتي لا تبدأ بحرف ال Z, بذلك تكون قد حصرت المقارنات بلتواقيع التي تبدأ ب Z, ولانها مرتبة فأنت تعرف انها تبدأ من ال ID 3777777 مثلاً .. وهكذا
طبعاً انا لا اعرف كيف تخزن وكيف تقارن في برنامجك, لكن هذا مجرد مثال بسيط.
للأسف لم يصل للنتيجه المطلوبة...
المشكله أني أستعمل طريقة مثل هذه..
مثلا لدينا قاعده لتوقيعت الفيروس من نوع PE:Win32.Expiro.m!1610239 علي هذا الشكل:
6111570a55c590d985e401d0dd875483
fe9d2f53622f4a1b6ddfefd93a37cb93
f302da63208467182fba50673e195e73
وهكذا حتي 131078 توقيع.
ولدينا قاعدة أخري من نوع مثلاً Gen:Trojan.Heur.PT.bmGeaCaVTegG علي هذا الشكل:
de960b8f99230e94858204b711fb8a38
61ffee2fc6680f45effdaf0dbe4e865e
0c6d02bb059238704aa5feb4f73a80d6
وهكذا حتي 21848توقيع.
وبنفس الكيفيه مع باقي الفيروسات..
لينا الملف Example.exe أقوم بمقارنته أكثر من مره مع كل نوع من الفيروسات..
يعني الملف يمر علي أكث من 40عملية مقارنة منفرده (وهذا سبب المشكل).
وأنا مضطر لنقارنته بهذه الطريقة لأرجع القيمة الصحيحه(نوع الفيروس) إن تم التحقق أنه ملف ضار..
السلام عليكم
معذرة أخي أنا لم أدخل للنت من مدة
إن شاء الله تكون وجدت الحل
انا لست مختص لاكن لو أردت أن أنشئ قاعدة بيانات من هذا الشكل سأعتمد على الشكل التالي
دالة تشفير (أو معادلة )حسب خبرتك مثلا تقوم ببناء دالة تحول من النظام الست عشري إلى العشري تضع منهاجية للتخزين مثلا تأخذ أول أربع أرقام إذا كانوا أصغر من كذا خزن في جدول كذا أو تجمع كل الرقام و تصنع جداول مثل السابق ثم
تخزن التواقيع بهذا النظام تأخذ توقيع الملف تحوله لنظام العشري تطبق نفس منهاجية للتحقق
المهم ستجد نفسك إما ستبحث في جدول صغير أو لا تبحث نهائيا و ترتاح لو محتاج شرح أكثر أنا في خدمة لو كنت متصل
التعليقات