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

كيفية معرفة مايمثله الكود بقيم الهيكس .

بدأه ghadeer-youseef في 3 سبتمبر 2014 · 3 رد · 2,636 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم 

 

حسب فهم البسيط و المتواضع أن أي برنامج يتحول إلى قيم HEX .. و قيم الهيكس تلك هي تحويل الكود البرمجي المكتوب بلغة الاسمبلي إلى لغة الآلة التي تعتمد على نظام العد الثنائي 01 إلى نظام العد السداسي عشر .

حسناً .....
قمت بصنع برنامج بسيط يظهر رسالة ترحيب "meesagebox" قمت بالحصول على قيم الهيكس لذلك البرنامج التي تتجاوز 25 ألف  أوفست .. و لكن كيف أستطيع تحيد مكان قسم من الكود فرضاً فرضاً

 

 

push 0                                                      style 

push one.40300D                                                  title

push one.403000                                                   text

push 0                                                        h0wner

call <jum.&user32.messageboxA>            MessageboxA

   كيف أستطيع أن أعرف ما يمثل هذا الكود من قيم هيكس مثلا السطر الاخير ..

أي لتوضيح سؤال لأني لست بالخبير .... 
قمت فتحت هذا البرنامج ... بمحرر هيكس ..HEX workshop ... مايزيد عن 25 الف اوفست كيف اعرف اين يتموضع السطر البرمجي الاخير سطر استدعاء الدالة ....
هل يوجد علاقة بين عنوان الذكرة و الهيكس ..!!!
يرجى الشرح لمن يستطيع و لكم مني ألف شكر ... و أن كان طريقة طرحي خاطئة أو غبية استميحكم عذراً لاضاعة وقتكم 

تلك الصورتين توضيح لسؤاليpost-282102-0-58228700-1409756849_thumb.post-282102-0-09990200-1409756882_thumb.

#2

البرنامج لايحول لـhex، فالـhex نظام عد، هذه الأرقام 92 44 55 بايتات يعرضها لك البرنامج بنظام الـhex.

 

الملف التنفيذي الناتج يحوي عدة أقسام من بينها قسم التعليمات code أو text الذي يضم تعليمات برنامجك. انظر في برنامجك في العمود الثاني من اليسار (push 0 تقابل البايتين 6A 00 وهكذا):

 

post-282102-0-58228700-1409756849.png

1
#3

البرنامج تحول إلى كود اسمبلي و منها إلى نظام العد الثنائي 01  لغة الآلة ... و الهيكس لبرنامج هو : تحويل من نظام العد الثنائي إلى السداسي عشر .
 

 

و بنيه الملف التنفيذي protable Executable format  

 

1- ترويسة الدوس 

2- توقيع الدوس 

3-ترويسة الملف التنفيذي 

4- جدول اقسام الملف التنفيذي 

5- أقسام الملف التنفيذي 

 

فمثلاً ... ترويسة الدوس DOs MZ Header 

هي بنية باسم . IMAGE_DOS_HEADER

وهذه البينية تتكون من عناصر . العنصر الأول : E_magic  التي تقابل الرقم (4D5A)  وهي بداية أي ملف تنفيذي أي عندما نفتح أي برنامج باللاحقة EXE  تبدأ بالرقم السداسي عشر 4D4A  ويقابلها بالآلسكي MZ  

 

 

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

#4

(4D 4A)  بالهيكس يقابل 100110101011010 بنظام العد الثنائي الذي يفهمها الحاسب .... 

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

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

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

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

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