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

(@( مجموعة أسئلة حاب أطرحها في هالقسم << جاوب ع اللي تقدر عليها)@)

مغلق
بدأه n3rd في 2 يناير 2007 · 2 رد · 507 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كما تعودنا منكم ماتقصرون ماشاء الله تبارك الله ...

والله العظيم الواحد يقرأ عن المؤشرات في النت ولكن الدروس اللي على النت تختصر الموضوع في بعض الأحيان

المهم قريت إحدى البرامج مفتوحة المصدر ووجدت بعض علامات اللإستفهام: <_<

س:

unsigned long sp(void)		 // This is just a little function
{ __asm__("movl %esp, %eax");} // used to return the stack pointer

واحد يتكلم عنها رجاءا :wacko: << أنا عارف إنه بالإسمبلي وعارف إنه يستخدم لإعادة المؤشر بتاع المكدس ولكن ممكن شرح عن الطريقة اللي يعملها

أو مكيانيكيتها :blink:

س:

ret = esp - offset;	// We want to overwrite the ret address

اعتقد إن عرف اللي فوق وشرحها لي قادر على هذه بإذن الله. -_-

س:

ptr = buffer;
addr_ptr = (long *) ptr;
for(i=0; i < 600; i+=4)
{ *(addr_ptr++) = ret; }

ماني فاهم ولا شي وممكن واحد يتكلم عن النجمة * اللي إستخداماتها كثيرة ....... مرة ضرب ومرة قيمة ومرة مادري ايش. ! :huh:

س:

execl("./vuln", "vuln", buffer, 0);

ممكن تقولون لي ماهي الوسائط للداله هذه. :)

ملاحظة :

الأكواد على الـLiNuX .

أتمنى الإجابة عن هذه الأسئلة واعذروني ولكن الواحد وش يسوي إذا كان يعشق البرمجة :lol: .

ومشكور مقدما.

أخوكم خالد النويصر من الدمام.

#2

مرحبا اخوي ..

انا عقدتي في البرمجه " المؤشرات " ماادري ليه مأخذه منها موقف !!

ptr = buffer;
addr_ptr = (long *) ptr;
for(i=0; i < 600; i+=4)
{ *(addr_ptr++) = ret; }

لااخفي عليكم انا مبتدئه في عالم البرمجه .. ودراستي متعلقه بـ ++c

لكن راح اكتب اللي اعرفه وان شاء الله تكون معلومتي صحيحه .. وان اخطئت فمنكم نستفيد :)

 (long *) ptr

اعتقد هذا السطر في الـ ++c يسمى الـ Down_cast

ويستعمل للتحويل من الاعلى للاقل مثلاً من Derive Class إلى Base Class

لكن إستخدامه غالباً خطر ..!

لانك ماتعرف المستخدم هل فعلاً راح يدخل قيمه اعلى ومن ثم يـُستخدم Down _ cast لتحويلها للاقل

او انه قد يدخل قيمة اقل ومن ثم تحدث اخطاء في القيم الناتجه لانه يصعب تحويلها لقيمه اعلى ..!

لكن في كلا الحالتين الكومبايلر ماراح يعترض وراح يقوم بتفيذ الـ Down_Cast

والمبرمج يتحمل النتائج المحتمل ظهوره ..

#3

مشكورة أختي على المشاركة

أتمنى من الأعضاء والخبراء والمشرفين التكلمة لإنكم زي ماشفتوا الموضوع معقدني ومعقد الأخت كمان

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

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

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

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

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

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