• 0
Nokia_2006

الملفات التنفيذية ؟

سؤال

السلام عليكم اصدقائى

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

لكن اصدقائى انا تعبت جدا من شىء اسمه بنية الملفات التنفيذية

ياريت لو احد منكم يتكرم ويشرح لى هذا الموضع بطريقة اوضح من الطرق الذى قدمتموها يعنى بذكر امثلة

ما الافكار الذى لابد ان اضعها فى الاعتبار عند بناء ملف تنفيذى

ارجوكم ساعدونى فى هذا الموضوع ولا تقولو لى انه مكرر لانى بجد مش عارف اوصل لحل

سوال منفصل :

وكيفية كتابة التعليمات بلغة الالة هل يتم كتابتها بدون فواصل ام كل تعليمة بلغة الالة داخل سطر

هكذا

01010111110000100010010011011110011010111101110111110011001001111

ام هكذا

0011 0110 1111 1101 111001 11100 11 1001 111 0 11 00 1 1 1 1 1

وهل بطريقة كل 4 بت منفصلة عن الاخرى

ام كل 8 بت منفصلة ام كلها وراء بعضها والمعالج يقسمها بطريقته

هاتين هما المشكلة الذى تواجهنى الان

تم تعديل بواسطه Nokia_2006
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

88 إجابة على هذا السؤال .

  • 0

يا حبيبي ياحمادة هناك موضوع للأخ أحمد غريب جزاه الله خيرا يشرح فيه بنية الملف النفيذي PE إبحث عنه

-

8 بت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ياباشا انا عاوز مثال عملى

اقدر افهمه

وافهم طريقة كتابة الملف التنفيذى سواء exe

وطريقة التعامل مع ملفات الصور ايضا

اريد معلومات كبيرة عن نظام الملفات فى نظام ويندوز

تم تعديل بواسطه Nokia_2006
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ياشباب

اريد ان اعرف فقط كيف اقوم بكتابتها

امامى مجموعة من الاكواد هكذا

image nt structer

sizeofcode dw ?

:

:

:

end structre

امامى كود بهذا الشكل وهو من احدى بيانات مقدمة الملف التنفيذى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

باختصار, بنية الملف التنفيذي ثابتة تقريبا, تختلف في اختلاف الـ headers والمقاطع حسب الحاجة الى بعضها, عليك ان تدرس هذا الجزء

اما الباقي فهو ان تشكل الملف بتمثيل هكس (ست عشري) للبايتات المؤلفة للملف وان تلتزم بصيغه القياسية.

جرب اكتب ملف اسمبلي يظهر MessageBox فقط واخر بدونها وادرس الفرق من خلال التنقيح وانظر ما تم التعديل في الترويسات headers وفي الكتلة التنفيذية للبرنامج.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

مشكلتك يا حمادة انك تفتقر للاساسيات, انا دلوقت فهمت إنتا عايز تعمل إيه بالظبط..

إنتا عايز تفتح notepad وتكتب 010101010 كدا اهه وبعد كدا تحفظ الملف بإسم test.exe وتشغله.. صح ؟

الكلام دا ما ينفعش لان notepad حتحفط الكتابة على شكل ascii يعنى كل صفر حتحفظة على اساس إنه الرقم 30 بالباينرى والرقم 1 حتحفظة على اساس إنه 31 وحيبقى شكلة كدا اهه 3031303130313031 فهمت يا حمادة..

ياريت بقى تقولي هل إنتا عارف الفرق بين الascii والbinary ..

طيب إيه الحل؟؟

الحل بسيط اعمل برنامج صغير مجرد إنه يشتغل ويقفل..

وبعد كدا إفتحة بالNotepad ,وشوف حيطلع لك إيه؟؟ انا اقول لك..

حيطلع لك اشكال غريبة ورسومات وشه بيضح ووش مكشر الخ..

يعنى مش حيطلع 010010010 زى ما إنتا فاهم..

إفتح نفس البرنامج بمحرر برامج Hex Editor حتشوف الارقام 010101010 إلى إنتا بتدور عليها ...

والسلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

أخي allko أرجو الا ترفق برامج غير مجانية

Sen يبذل مجهود يقدر...

-

أخ حمادة، ما تريده يحتاج وقت لفهمه

أفترح عليك أن بيدء بالملفات التنفيذية .com التي ليس بها Header

ثم تنتقل لملفات DOS القديمة EXE

ثم أخيرها وفقط بعد فهم السابقة تنتقل لملفات PE

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عموما البرنامج ليس غالي الثمن...فقط 99$ :D

(هل يحاول المبرمج خداع نفسه ام ماذا؟ -_- هو يبيع برنامج يستخدم من قبل الكراكرز بالدرجة الاولى فهل يتوقع ان يدفعوا له $100 :lol:

عموما فبرنامجه قد افاد الكثيرين...ربما اقترح عليهم عمل حملة تبرعات لدعم المبرمج :lol: كل شخص يدفع سنت واحد :lol: )

تم تعديل بواسطه allko
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخ احمد غريب

انا مقدر انك تعبت معايا لكن

انا الان استخدم لغة السى واقوم ببناء ملف وحفظه بامتداد exe

ماذا افعل لكى اكتب ملف تنفيذى به 0010101

هل تقصد اننى اقوم بكتابة الكود بطريقة النظام السادس عشر hex مثلا

ام ماذا استخدم

تم تعديل بواسطه Nokia_2006
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
(هل يحاول المبرمج خداع نفسه ام ماذا؟ هو يبيع برنامج يستخدم من قبل الكراكرز بالدرجة الاولى فهل يتوقع ان يدفعوا له $100

لا، لن تجد في المستقبل نسخة مقرصنة له

الا اذا قا بذلك مراهق... مثل الذي قام بذلك مع النسخة التي ارفقها الأخ allko

في النسخة دليل غباء ذلك الشخص من AHTeam :lol:

و اسف للخرون عن موضوع حمــــــــــــــــــــــادة

أخ حمادة،العنوان الصحيح لهذا الموضوع: كتابة الملف النفيذس يدويا، دون استخدام compiler

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ماذا افعل لكى اكتب ملف تنفيذى به 0010101

انا الان كتبت برنامج بلغة السى وقمت باستخدام الامر FILE *p وقمت بفتح ملف والخ

الان سيقوم البرنامج بعملية كتابة التعليمات 01010 الى هذا الملف

ماذا افعل بعد ذالك لكى يكون ملف تنفيذى ارجوكم افيدونى

انا الان فهمت انه لنوت باد ما ينفع اعمل ايه الان

هل السى تتعامل مع الملفات على انها بيتات فى الذاكرة اما هى تقوم بانشاء ملف من داخل النظام

اريد حلا

تم تعديل بواسطه Nokia_2006
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بص يا حمادة

لو إنت تعرف الأساسيات كويس كان ممكن حتى تحمل الملف إللي في ميكروسوفت عن ال PE File Format و بإستخدام برامج التنقيح زي Olly تشوف كل حاجة بنفسك و تستنتج

لكن المشكلة إنك زي ما قال الأخ أحمد غريب متعرفش الأساسيات و ده بسبب إيه ؟؟؟

بسبب إنك دايما مستعجل و دايما عايز تعمل كل حاجة على طول بالإضافة إنك معرفتش تبدأ صح

لو عايز تبدأ صح يا حمادة ذاكر كويس جدا الرياضيات (و بخاصة المتقطعة) و الفيزياء و بخاصة الكهربية

و بعدين إقرا عن الإلكترونيات و بعدين الهاردوير و ال Computer Architecture و الميكروبروسيسور إلخ ....

و تبدأ تقرا عن Operating System Concepts و تعرف نظام التشغيل بيتكون من إيه و إذا بيتعمل ال Multi Tasking و الحاجات دي كلها

طبعا الفروع كتيرة جدا صعب الواحد يذكرها كلها و لكن قصدي إنك المفروض تبدأ صح و تصبر على العلم لإن إنت عامل بالظبط زي الولد إللي لسه في الإبتدائي و بيسأل إذاي يصنع جهاز تليفيزيون أو كمبيوتر ؟!!

و سبب إنك مش قادر تستوعب المواضيع إللي بتشرح الحاجات دي زي ما قولت قبل كده إنك مش فاهم المصطلحات إللي بتتكتب كويس و بالتالي كل ما تلاقي كلمة مش فاهما تحاول تدور عليها تلاقيها عايزة كتاب بحالة تقراه و تييجي تروح تقراه تلاقي الكتاب ده عايز حاجة تانية تقراها قبله و هلم جرا ...

و ده كله لإنك معرفتش تبدأ صح و مكانش عندك صبر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حنرجع ونقول اساسيات تانى

ياسيدى انا فاهم اسلوب وطريقة المعالج فى التنفيذ البرامج

مشكلة ان النوت باد بجللت ادره بيحول الحروف الى هكس

طبعا الفروع كتيرة جدا صعب الواحد يذكرها كلها و لكن قصدي إنك المفروض تبدأ صح و تصبر على العلم لإن إنت عامل بالظبط زي الولد إللي لسه في الإبتدائي و بيسأل إذاي يصنع جهاز تليفيزيون أو كمبيوتر ؟!!

انا مازلت فى الابتدائى متشكر جدا

انا عاوز اعرف ازى لما اكتب 1010110 يتم اخذ هذا البت بهذا الشكل داخل الرام بنفس الطريقة وعلما بانى لم اعمل مع برامج التنقيح ولكن اعرف طريقة عملها

ويمكننى عمل برامج مثلها لو اردت

لكن مشكلتى هى الملفات الثنائية 0100 ازى اكتبها او اقرأءها

انا عارف ان كل ملف له PE headr طيب انا فاهم تقسيمة الهيدر فيل

Dos mz heade

Dos stu

PE headr

section table

section 1

section 2

.....

.....

section n

صح

كيف انفذهم فى ملف ثنائى كيف

تم تعديل بواسطه Nokia_2006
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يا حمادة مش قصدي و الله

يا سيدي أنا كانت بتحصلي نفس المشكلة برضه عايز أعرف كل حاجة و لما أجي أعملها أكتشف إنها عايزاني أتعلم حاجات كتييييييير و لسه بدري عليها :D

لغاية معرفت البداية الصح و لقيتها في الكلية

بالنسبة لبرامج الهكس فهي بتتعامل مع كل بايت على أساس إنها خلية Hex

طبعا بتتكون من خانتين لإن كل رقم هكس عبارة عن 4 بيت بس و البايت بتتكون من 8 بيت يبقى بنحتاج خانتين هكس لتمثيل خلية هكس بتمثل البايت

المهم نزل أي برنامج هكس

لو عايز تكتب بواحدات و أصفار إفتح الألة الحاسبة إللي في ويندوز

حولها ل Scientific يعني علمية

إختار نظام الأعداد Bin

إكتب واحدات و أصفار زي منتا عايز

و كل مرة دوس على Hex علشان يحولهالك لHex

في برنامج ال Hex Editor إللي إنت فاتحة إنقل فيه البييانات بالهكس

و بعدين هاتله Save

بس و إنتهى الموضوع يا سيدي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هل تقصد انى اسل البيانات فى النوت باد بطريقة هكس ام داخل محرر هكس اخر

اعتقد انك مخطاء فى هذا الجزء

بالنسبة لبرامج الهكس فهي بتتعامل مع كل بايت على أساس إنها خلية Hex

طبعا بتتكون من خانتين لإن كل رقم هكس عبارة عن 4 بيت بس و البايت بتتكون من 8 بيت يبقى بنحتاج خانتين هكس لتمثيل خلية هكس بتمثل البايت

لماذا ؟

اولا تخيل انك تصمم نظام تشغيل الان

ماذا سيحدث سيتم نقلك من خلال البيوس الى العنوان 0000:07c0

وتخيل فى هذا الجزء انك تقول

mov ax,0x07c0h

ماذا سيحدث

اول 0000 وهى تمثل الجزء الاول وهو القطاع اما 07c0 وهى القسم

كيف يتم ازحة العنوان 07c0 الى AX كرقم

سيتم اخذ 07 وايجاد قيمته بالطريقة الثنائية 00000111 ويتم وضعها فى الجزء الادنى من AX وهو AL وهو يمثل byte كامل

ثم

يتم اخذ القيمة C0 وايجاد قيمته بالطريقة الثنائية ويتم وضعها فى الجزء الاعلى من AX وهو AL وهو يمثل byte كامل

اذا قمت بضم محتويات AL الى AH سيكون قيمة AX هى العنوان 07c0 وهو القسم فقط

اى كل خانتين 07 يساوى بايت

لان اذا كان كل رقم هكس يحتاج بايت فلا اعتقد ان المسجل AX سيكفى بل ستحتاج لكتابة قيمته فى مسجل يمكنه التعامل مع اربع بايت EAX سيصلح فى هذه الحالة

هذه من اساسيات الحاسب اذا كنت تعلم

تم تعديل بواسطه Nokia_2006
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يا حمادة لما ذا لا تتبع النصيحة

ابدء بالملفات .com

ثم DOS EXE

لتصل ل PE

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخوى محمد عبد العزيز

انا لا اريد بناء مترجم موجه لويندوز الان

انا اريد فقط ان اعمل مترجم موجه للدوس يعنى لن احتاج الا توقيع الدوس

انا حسب ما فهمت من كلامكم

انى اقوم بكتابة الاكواد والحروف على اساس انها هكس يعنى 0 = 30 اما 1 = 31 هذا صحيح اما هل تقصد شىء اخر

كل كلامكم انه لابد انه يكون هكس

طيب لو فتحت النوت باد وكتبت ما يقابل 0 بالهكس وما يقابل 1 بالهكس هل هذا ينفع

اريد ردا واضحا

هل استخدم النوت باد ولا انشاء file من داخل لغة السى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انسى كل شيئ تعرفع عن DOS او Wind0ws أو EXE header الأن

لا تستخدم NotePAD، لا يمكنك كتابة بعض bytes به، ايضا هة يضيف 2 bytes لنهاية السطر والرجوع

سواء تستخدم برنامج تحرير في النظام 16 مثل WinHex او تكتب بريمج بأي لغة C او DELPHI أو Assmbly او تستخدم Debug

ما ذا تختار ؟

ثم نكمل الحديث

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حسنا اكتب بريمج بنشئ ملف ويكتب به حرف D فقط

ارفق البرنامج هنا، السورس و الملف التنفيذي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اتفضل بس عندما تقوم بفتح الملفمن النوت باد يكون القيمة الموجودة بداخلة هى قيمة الحرف بطريقة dec النظام العشرى

تم تعديل بواسطه Nokia_2006
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا ياحمادة

هذا يطبع Hello world على الشاشة

اريد يطبع فقط حرف واجد D و في ملف , ليس في الشاشة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

البرنامج يقوم باستلام القيمة من المستخدم ويضعها فى الملف على درايفر C:\text

استخدم البرنامج وانظر الى الكود سترى انه لم يقوم بطباعة كلمة HELLO WORLD

بل يطبع كلمة enter code ثم يستقبل الحرف من الدالة getchar ويضع القيمة داخل متغير CH ثم يقوم بفتح ملف اسمه text على c:\ ويقوم بطباعة الحرف داخلة

ويمكنك ان تعدل به كما تريد من الدالة fprintf وتغير وضع الطباعة داخل الملف

نظام hex او dec او oct

x% او c% او d% او o%

تم تعديل بواسطه Nokia_2006
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يا حبيبي ياحمادة

لا اطلب منك شرح و لا شيئ

و عرف كيف، لكن اريدك انت ان تقوم بذلك

فقط اتبعني حتى الأخر وسترى بنفسك

و لا تقل لي Hex و Dec و غيره

اكتب بريمج ينشئ ملف و بح حرف واحد فقط D

ثم نتابع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .