المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
السلام عليكم ورحمة الله وبركاتة
سؤال متعلق بالمؤشرات

عندقراءة عنوان اكتب هذا السطر :
PHP كود :
Form1.Caption := IntToHex(PDWORD($00401000)^,8);
يتم قراءة محتوى العنوان $00401000 ... بدون مشاكل ...
وعندما احاول ان اكتب على العنوان بنفس الطريقة لا استطيع يظهر لي خطأ :
EAccessViolation
هذا الكود الذي استعملته :
ما المشكلة التي وقعت بها ؟
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
بالطبع لن تستطيع التعديل عليها .. لأن الجزء من الذاكرة التي يقع فيها هذا العنوان محمي (ذاكرة محمية)
يجب تغيير صلاحيات الذاكرة :
اطلع على :
كود :
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366786(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366785(v=vs.85).aspx
+ الدوال :
كود :
VirtualAlloc
VirtualAllocEx
WriteProcessMemory
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
ههههه ... كنت اتوقع ذلك , لكن ما جعلني اسئل لاني عندما استعمل اوامر الاسبملي
PHP كود :
MOV DWORD PTR DS:[$00401000],0x5
لا تظهر هذه الرسالة ... لذلك ضننت ان الاوامر التي تنفذ من الكود لها صلاحيات التعديل ...
طيب ... اخي المبرمجي SMP3 لما لا تظهر هذه الحالة مع اوامر الاسمبلي ؟
------
الرد الثاني
على ما يبدو ان نفس الرسالة تظهر مع اوامر الاسمبلي ... @@
لكن الغريب انها لم تظهر هذه الرسالة عندما استعملت اكواد الاسبملي على احد الآلعاب
ربما كانت الصلاحيات معدلة من الأسااس
شكراً لك اخي المبرمج SMP3
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
الصلاحيات للذاكرة تختلف من برنامج لاخر (يمكن القول ان الكومبايلر هو الذي يحدد صلاحيات الولوج للذاكرة)