الفريق العربي للهندسة العكسية
مشروع Anti-Virus للمبتدئي الأسمبلي - نسخة قابلة للطباعة

+- الفريق العربي للهندسة العكسية (https://www.at4re.net/f)
+-- قسم : منتديات البرمجة - Programming Forums (https://www.at4re.net/f/forum-5.html)
+--- قسم : البرمجة بالأسمبلي - Assembly Section (https://www.at4re.net/f/forum-16.html)
+--- الموضوع : مشروع Anti-Virus للمبتدئي الأسمبلي (/thread-459.html)



مشروع Anti-Virus للمبتدئي الأسمبلي - Gu-sung18 - 21-12-2018

كاتب الموضوع الاصلي MouradPr في 21-08-2008, 07:57 :

السلام عليكم ورحمة الله تعالى وبركاته
أردت القليل من النشاط فهذه الأيام الملل قد عم الكل Big Grin
حسن هناك برنامج Anti-Virus برمجته قبل بضع ساعات وأريد أن أشارككم إياه هو بسيط جدا...

شروط المشاركة :
- ممنوع الردود من نوع الشكر
- أن ينظم المشروع وفق المراحل التي سأذكر
- ممنوع وضع رابط لأي شيء آخر
- ممنوع المشاركة من إجل الإحراج
خطوات المشروع :
- فهم الكود البرمجي وإصلاح الثغرات الموجودة الآن ( مناقشة )
- برمجة قاعدة بايانات للفايروسات
- التعامل مع Proccess
- الستايل
- ثم الإصدرا والنشر

لايسمح بأي مشاركة تلوث الموضوع

الهدف من الموضوع : تعود المبتدئين على المشاريع الجماعية [صورة مرفقة: smile.png]
البرنامج مع السورس كود والدرس في المرفقات



----------------------------
التعليقات:
 STRELiTZIA   في  21-08-2008, 08:43 PM

و عليكم السلام و رحمة الله
إقتباس :  - ممنوع الردود من نوع الشكر
جزاك الله خير على المبادرة اخي مراد...
إقتباس :  فهم الكود البرمجي وإصلاح الثغرات الموجودة الآن ( مناقشة )الملاحظات الأولى على السريع :
البرنامج لا يستطيع عمل MD5 Hash لــ :
- الملفات الظارة بخاصية Read Only
- الملفات النشطة في الـ Process
---
لا يستطيع رؤية الملفات الظارة المخفية في حالة Scan Virus
---
لا يستطيع حذف الملفات الضارة بخاصية Read Only
لا يستطيع حذف الملفات النشطة في الـ Process

تمت التجربة على ملفات ضارة حقيقية Big Grin
هل يكمن اضافة عدد الملفات المفحوصة ؟

---------------------------------------------------------------------
 MouradPr في 21-08-2008, 08:52
إقتباس :الملاحظات الأولى على السريع :
البرنامج لا يستطيع عمل MD5 Hash لــ :
- الملفات الظارة بخاصية Read Only
- الملفات النشطة في الـ Process
---
لا يستطيع رؤية الملفات الظارة المخفية في حالة Scan Virus
---
لا يستطيع حذف الملفات الضارة بخاصية Read Only
لا يستطيع حذف الملفات النشطة في الـ Process
تمت التجربة على ملفات ضارة حقيقية
سيتم إصلاح كل ماذكرت في إطار الخطوة الأولى
موضوع ال Process ليس بعد
شكرا على المشاركة لقد حفظت الصفحة وسأرها في البيت وأحاول أن أصلح مايجب إصلاحه
--------------------------------------------
 MouradPr في 21-08-2008, 09:25 PM
إقتباس :البرنامج لا يستطيع عمل MD5 Hash لــ :
- الملفات الظارة بخاصية Read Only
تم إصلاحها بتغيير هذا الكود الى
 
invoke CreateFile,addr CompletTrget,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
cmp eax,-1
jz nextFile
mov hFile,eax
invoke CreateFileMapping,hFile,0,PAGE_READONLY,0,0,0
mov mFile,eax
invoke MapViewOfFile,mFile,FILE_MAP_READ,0,0,0

الملف البرمجي .asm في المرفقات 
(المرفق محذوف من المنتدى القديم Sad )
----------------------------------------------
MouradPr  في 21-08-2008, 10:05 PM
قبل أن أذهب ... أريد أن أضيف خاصية
Force Delet
لكن لا أجيد دوال Native بعد أنا بصدد دراستها لكن من لديه خبرة ممكن أن يضع لنا شرحه وليس رابط Big Grin لدوال إنهاء المهام والحصول على Proccess
مثلا
NtTerminateProccess
أنا ذاهب الآن للمنزل لأرى ماذا سأضيف بعد ربما سأحسن طريفة البحث
-----------------------------------------------
GamingMasteR في 21-08-2008, 10:39 PM
استخدام دوال الـnative من user-mode لن يفيد اذا كان الـhook من kernel-mode .
مراد ما البيئة المخصصة لعمل البرنامج ؟؟

----------------------------------------------
 Hitman في 22-08-2008, 09:02 PM

أقترح أن تجعل البرنامج يعدل ال Attributes الخاصة بملف الفيروس قبل مسحه عن طريق اضافة الدالة SetFileAttributes الى كود زر المسح (قبل دالة DeleteFile) أى أن تجعل كود زر المسح كالاتى:
 
invoke GetDlgItem,hWin,1002
mov hList,eax
xor edi,edi
nextdelet:
invoke SendMessage,hList,LB_GETTEXT,edi,addr BufferTodelet
cmp eax,-1
jz exitDelet
invoke SetFileAttributes,addr BufferTodelet,FILE_ATTRIBUTE_NORMAL
invoke DeleteFile,addr BufferTodelet
invoke SendMessage,hList,LB_DELETESTRING,edi,0
inc edi
jmp nextdelet
exitDelet:
invoke MessageBox,hWin,addr FileDeleted,addr suc,MB_OK
mov CountVirus,0