عرض مشاركة واحدة
قديم 27/9/2009, 12:32 PM   رقم المشاركة : ( 11 )
hmada fisal
مـهـند س مـمـيـز

الصورة الرمزية hmada fisal

الملف الشخصي
رقم العضوية : 107036
تاريخ التسجيل : Jul 2008
العمـر : 33
الجنـس :
الدولـة :
المشاركات : 758 [+]
آخر تواجـد : ()
عدد النقاط : 40
قوة الترشيـح : hmada fisal يستاهل التميز

 الأوسمة و جوائز
 بينات الاتصال بالعضو
 اخر مواضيع العضو

hmada fisal غير متصل

افتراضي رد: قسم خاص لبرنامج الهيكس ورك شوب




ناتي الان الى بعض الاسئلة الشائعة الانتشار فيما يخص الاسمبلي,
حيث يسأل الكثيرون انا محتار ماذا استخدم, masm او nasm فبم تنصحوني, نقول للسائل, اخي الكريم, كلا المجمعين يتعامل مع الاسمبلي دون اي اختلاف لكن الفرق في النهاية يكون في شكل الاستخدام حيث هناك فرق طفيف احيانا في التصريحات وبعض الامور الثانوية, بينما تجد مسالة استخدام التعليمات نفسها.. لذا انت عزيزي قادر على قراءة كلا الشفرتين بدون اي مشكلة والانتقال بينهما بدون اي معوقات.

اذن الامر في النهاية يتعلق باي نظام تريد الكتابة له, ان لم تكن تريد الكتابة للينوكس على الاطلاق فعليك بـ Masm حيث يتم تطويره كل فترة لا باس بها ولديه بعض الميزات التي تزيد عن سواه (الاراء متضاربة في النهاية والامر يعود لك)
اما لو اردت ان تكتب تطبيقات ايضا للنوكس فربما يكون من الافضل لك ان تبدا بـ Nasm كي لا يكون هناك اي فرق لديك في الاستخدام سواء على ******s او Linux وفي النهاية الفرق بين النظامين يتبع الـ syntax الخاصة باستخدام التعليمات فقط.

ايضا يسال البعض هل ابدا 16بت ام 32بت ام ماذا..
نقول له, لو سالتنا لكانت اجابتنا ابدأ بـ 16 لتتقن التعليمات على الاقل ولتشكل فكرة واضحة عن كيفية عمل تطبيقات 16بت فقط لا غير, ثم يكون بامكانك الانتقال فورا الى 32بت دون اي جهد يذكر حيث سيغدو من المتوجب عليك دراسة دوال ******s API المشتركة بين اللغات البرمجية جميعا فلا تعتقد انه لو تركت الاسمبلي فلن تحتاجها في C او فيجوال مثلا! (اللهم الا في .NET التي لم تعد تضع API في الواجهة وانما تترك لبيئتها الداخلية الاهتمام بمسالة تشكيل الملف وتنفيذه لاحقا).

البعض ايضا يقول بانه يريد تعلم الاسمبلي كي يغدو قادرا على تنقيح البرامج و/او كتابة ***** codes للثغرات وما الى هذا, حسنا الاسمبلي هي الاساس في هذا وبدونها فلن تستطيع ان تفعل ايا مما ذكر, لكن يعود الامر في النهاية الى من يريد ان يتعلم, فلو كان غرضك فقط تنقيح وقرصنة التطبيقات او اكتشاف وكتابة ثغرات فهذا ليس باسمبلي صرف وانما سوف تحتاج الى فهم تعليمات الاسمبلي فقط ولن تضطر الى التعمق في بنيتها وكيفية كتابة التطبيقات بها.

البعض يريد ان يعرف كيف بامكانه استخدام المنقح, تم وضع رابط لمقالات تم تجميعها تشرح استخدام برنامج Olly debugger (باللغة الانكليزية) في الارشيف يمكن الوصول اليه بسهولة..
ايضا رابط لـ olly debugger موجود سلفا في الارشيف لكن للازادة: [ معذرة ... يمكن للأعضاء فقط أن يشاهدوا الروابط ]

فيما يتعلق بانواع البيانات في الاسمبلي فقد تم التكلم عنها لاحقا, وذكرنا بانه هناك عدة طرق للتصريح عن انواع مختلفة من البيانات من انواع مثل int, long, double, float, string, ... تذكر فقط ما درسته كاساسيات في لغات اخرى, بان long مثلا مجاله من كذا الى كذا (-9,223,372,036,854,775,808 الى 9,223,372,036,854,775,807) لذا تلاحظ انها تحتاج الى تصريح عن متحول بحجم 4 كلمات (اي 2 dword) وهذا يمكن انجازه بالشكل:


كود:
data dd 2 dup (0)

هنا تم التصريح عن متحول باسم data بحجم 2 dwords وتم اعتبار محتواه صفر (بالتالي سيدخل في مقطع البيانات الثابتة المصرح عنها سلفا data)
  رد مع اقتباس