الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في برنامج يحذف نفسه

مغلق
بدأه mouradpr في 30 يونيو 2007 · 2 رد · 702 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

أرجو المساعدة في هذا المشروع الصغير والذي سيليه مشروع دمج ملفين

أريد وضع برنامج يحذف نفسه عن طريق الفكرة التالية...

برمجة برنامجين واحد بإسم delet

وواحد بإسم Virus

نسخة data للdelet

ودمجتها في virus

واستعملت دالة CreateFile و WriteFile

و buffer يحمل data ملف delet

وبعذ ذلك يفتحه

المشكل لايحفظ الdata في الملف

يحفظ فارغا

.386
.model flat,stdcall
OPTION CASEMAP:None

include windows.inc
include kernel32.inc
include user32.inc
include Comctl32.inc
include shell32.inc
includelib kernel32.lib
includelib user32.lib
includelib Comctl32.lib
includelib shell32.lib

.data
File		db	"delet.exe",0
datafile	db	"MZ......................@...",0h
			db"............................................!..L.!",0h
			db "This program cannot be run in DOS mode....$............n...n..",0h
			db ".n..wq...n...N...n..Rich.n..........PE..L....^.F................",0h
			db "..................... ....@..........................@.......6.",0h
			db"...................................... ..(.............................",0h
			db "....................................................... .....................",0h
			db "..........text............................... ..`.rdata..T.... ..............",0h
			db "........@..@.data........0......................@...............................",0h
db "..............................................................................",0h
db "...........................................................................................",0h
db "...........................................................................................",0h
db ".............................................................................................",0h
db "........................................................................................",0h
db "...........h.0@.........%. @............................................................",0h
db ".........................................................................................",0h
db "...........................................................................................",0h
db ".............................................................................................",0h
db "..........................................................................................",0h
db "........................................................................8 ......0 .........",0h
db ".F ... ......................8 ......S.DeleteFileA.kernel32.dll...........................",0h
db "............................................................................................",0h
db ".........................................................................................",0h
db "..........................................................................................",0h
db ".........................................................................................",0h
db "...........................................Virus.exe.....................................",0h
db ".........................................................................................",0h
db ".........................................................................................",0h
db ".........................................................................................",0h
db ".........................................................................................",0h
db "..............................................................................................................",0h


.data?
buffer1		dword				?
buffer2		dword				?
.code
Start:
invoke CreateFile,addr File,GENERIC_READ,FILE_SHARE_WRITE,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL
invoke WriteFile,eax,addr datafile,addr buffer1,addr buffer2,NULL
invoke MessageBox,NULL,addr text,addr titre,MB_OK
invoke ShellExecute,NULL,NULL,addr File,NULL,NULL,SW_SHOW
ret
end Start

المشكل أنه لايحفظ المعلومات في الملف

ملاحظة الملف على هيئة Console

:D

في انتظار الرد

#2

مبرمج الأسمبلي يجب أن يكون أكثر دقة ....

invoke CreateFile,addr File,GENERIC_READ,FILE_SHARE_WRITE,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL

أنت مستخدم GENERIC_READ فقط

راجع WriteFile

hFile

Identifies the file to be written to. The file handle must have been created with GENERIC_WRITE access to the file.

هنا :

invoke WriteFile,eax,addr datafile,addr buffer1,addr buffer2,NULL

لماذا تمرر addr buffer1؟ المفروض وضع قيمة تدل على عدد الـ bytes التي ستكتب للملف ...

invoke MessageBox,NULL,addr text,addr titre,MB_OK

أين هي text و titre ؟

---

ملحوظة : ليس لدي أسمبلر للتأكد من البرنامج ...

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#3

شكرا جزيلا لك

لم ألحظ ذلك :)

شكرا لك سأجرب

هذا الموضوع مغلق.

مواضيع مشابهة