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

كيف يمكن تعديل محتوى عنوان بالذاكرة بالتفصيل الممل لو سمحتم

بدأه Zius في 9 يوليو 2008 · 4 رد · 666 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكن تعديل محتوى عنوان بالذاكرة بالتفصيل الممل لو سمحتم

مثلا عنوان فى برنامح معين اسمة (A)

العنوان هو 0047360 محتواة هو 123456789

كيف يمكن بالفجوال تغير المحتوى لهذا العنوان اعزرونى الموضوع غامض بالنسبة لى و امل ان تفهمونى

ارجو بالتفصيل

Do you have dreams?

Do you think you can do anything and nothing impossibale?

Well think again , Dream less , and Never wish (Advice)!!

#2

توجد دالة اسمها FillMemory , وهي تأخذ ثلاثة بارامترات :

- Destination : مكان بداية الموقع المراد تغييره

- Length : الطول المراد تغييره , يعني إذا تريد تغيير محتوى أول 5 أحرف من بداية العنوان المدخل , يبقى تضع في هذا المتغير 5

- Fill : القيمة الجديدة

وهذا مثال بسيط :

  1.  
  2. Private Declare Sub FillMemory Lib "kernel32.dll" Alias "RtlFillMemory" (Destination As Any, By
    Val Length As Long, ByVal Fill As Byte)
  3. Private Declare Sub ZeroMemory Lib "kernel32.dll" Alias "RtlZeroMemory" (Destination As Any, By
    Val Length As Long)
  4. Private Sub Form_Load()
  5. 'KPD-Team 2000
  6. 'URL: <a href="http://www.allapi.net/" target="_blank">http://www.allapi.net/</a>
  7. 'E-Mail: KPDTeam@Allapi.net
  8. Dim TestString As String
  9. 'Mak sure Visual Basic repaint the form automatically
  10. Me.AutoRedraw = True
  11. 'Create a buffer string
  12. TestString = String(25, "X")
  13. Me.Print "This is our initial string: " + TestString
  14. 'Fill the buffer-string with A's
  15. FillMemory ByVal TestString, Len(TestString), Asc("A")
  16. Me.Print "This is our string after FillMemory: " + TestString
  17. 'Empty the string
  18. ZeroMemory ByVal TestString, Len(TestString)
  19. Me.Print "This is our string after ZeroMemory: " + TestString
  20. End Sub
  21.  

اقتباس
If A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut

Albert Einstein

مدخل إلى برمجة وتصميم الألعاب : كيف أبدأ ؟

#3

المثال سيحدث Exception اذا تم الكتابة على Page محمية من الكتابة ,, يجب اولا ضمان ازالة الحماية على الـPage عن طريق الدالة VirtualProtect .

ابحث في MSDN عن تعريف الدالة .

يوجد ايضا الدالة RtlCopyMemory لنسخ بفر من مكان الى اخر بدلا من ملؤه بقيمة واحدة .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#4

شكرا اخى Ala2 VB ولكن هذا مثال من موقع وهو بقوم بتعديل نص فى الذاكرة دون تحديد العنوانaddress وفى نفس البرنامح ليس فى برنامج اخر بيدو انك لم تلاحظ "بالتفصيل الممل" :wacko:

تم تعديل هذه المشاركة بواسطة Zius في 11 يوليو 2008 في 01:38

Do you have dreams?

Do you think you can do anything and nothing impossibale?

Well think again , Dream less , and Never wish (Advice)!!

#5

افتح مقبض للعملية عن طريق OpenProcess

ثم استخدمه في الدالة WriteProcessMemory

ولا تنسى اغلاق المفبض عن طريق CloseHandle بعد ذلك ;)

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…