لدي الكثيرمن الاسئلة عن كيفية عمل ا لبرامج
فمثلا ما الذي يقوم بتحميل البرنامج الى الذاكرة
في الذاكرة هل يتم تحميل المكتبات عند تحميل البرنامج
ماذا يتم عند استدعاء دالة
لتكوين نافذة هل لابد من API
ارجو شرح ذلك ليستفيد كافة الاعضاء
تحياتي
لدي الكثيرمن الاسئلة عن كيفية عمل ا لبرامج
فمثلا ما الذي يقوم بتحميل البرنامج الى الذاكرة
في الذاكرة هل يتم تحميل المكتبات عند تحميل البرنامج
ماذا يتم عند استدعاء دالة
لتكوين نافذة هل لابد من API
ارجو شرح ذلك ليستفيد كافة الاعضاء
تحياتي
رد سريع:
---------
1- الـ Loader الخاص بالنظام هو المسؤول عن تحميل البرنامج الى الذاكرة وملئ الخانات الخاصة بعناوين الـ RVAs التي يستخدمها البرنامج في الوصول الى الوظائف في مكاتب الربط المستوردة اليه والموجودة في الـ Imports.
2- لا يتم تحميل المكتبات الى الذاكرة الا عند حاجة البرنامج اليها حيث يتم طلب الوظيفة من المكتبة وبعد الانتهاء يتم تفريغ الذاكرة من المكتبة, وبشكل طبيعي هناك مكتبات لا يستطيع البرنامج الاستغناء عنها فتحمل مع بدء الـ loader بعمله مثل kernel32.dll و user32.dll
3- نعم لا بد من API فالـ API هي اختصار لـ Application Programming Interface
للمزيد من المعلومات العناوين واضحة, يمكن البحث عبر Google.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
طيب لماذا kernel32.dll و user32.dll
هل لهم دور فى عملية ال load ؟
أى مثلا برنامج console يطبع كلمة يتم تحميل تلك المكتبتين أيضا
لا تراجع و لا إستسلام
اقرا هذا المقال
تم تعديل هذه المشاركة بواسطة Xacker في 6 أبريل 2006 في 00:47
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
ما هو rvas ?
باقي الاشياء سابحث عنها في جوجل إن شاء الله ......
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
لا ادري كيف اشكرك
الف الف الف شكر
ما ادري هل يوجد رابط يقوم بشرح الموضوع بالتفصيل من عند الضغط على ايقونة البرنامج وحتى النهاية؟
السلام عليكم
أخي gofail حمل المرفق، به رابط بداية الطريق
Portable_Executable_File_Format_Compendium_V11_By_Goppit.txt
اخي DeltaAziz يبدو ان الرابط لايعمل
ارجو التاكد
مع تحياتي
يعمل, جرب مرة اخرى.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
الاخ xacker والاخ deltaAziz شكرا لكما
قرات الملفات المرفقة بتمعن ولدي بعض التساؤلات:
اولا اشتبه علي معنى imported function ومعنى exported function
ما الفرق؟
ثانيا هل الimport table و export table جزء من ال pe header
ثالثا: معنى ال export forward
تحياتي للجميع
الـ Imports هي الدوال التي يريد البرنامج استخدامها ويطلبها من مكتبات الربط الديناميكية.
الـ Exports هي عبارة عن دوال يقوم البرنامج او اي مكتبة ربط بالتزويد بها لمن اراد ذلك, مثلا اي مكتبة ربط قمت بكتابتها لاظهار نص على الشاشة بواسطة DrawText على سبيل المثال, تقوم بطلب بعض الدوال من النظام, تقوم باستخدام هذه الدوال مع شفرتك الخاصة لاضفاء تاثيرات او ما شابه, جميع هذه الامور تتم ضمن كتلة هي الاجرائية او الدالة التي ستقوم بالتزويد بها في النهاية. ياتي برنامج اخر الان ليقوم بطلب هذه الدالة بنفس الطريقة التي يطلب بها اي دالة من مكتبات النظام ليقوم باستخدامها.
الـ ImportTable والـ ExportTable ليست ضمن الـ PE Header لكن المعلومات عنها موجودة في الـ PE Header ضمن الـ Data Directories الموجود في الـ Optional Header
ماذا تعني ب export forward ؟
تم تعديل هذه المشاركة بواسطة Xacker في 17 أبريل 2006 في 14:35
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
1
imported function الدوال المستوردة من مكتبات DLL أو غيرها، بإختصار code موجود في مكان أخر غير الملف التنفيذي
exported function الدوال المصدرة، يمكن لبرامج أخرى إستخدامها
يمكن للملف التنفيذى أن يستورد دوال قام هو نفسه ب إصدارها
2
لا
3
الدالة المصدرة ليس موجودة في الملف المصدر بل في ملف أخر
شيئ مثل إسم موقع يحولك لموقع أخر
خواني الاعزاء
اشكركم على التفاعل مع الموضوع
الاخ xacker بالنسبة ل export forwarding فهي كالتالي:
Sometimes functions which appear to exported
from a particular DLL
actually reside in a completely different DLL.
This is called export forwarding
For example, in WinNT, Win2k and XP, the kernel32.dll function HeapAlloc
is forwarded to the RtlAllocHeap function exported by ntdll.dll
. NTDLL.DLL also contains the native API set which is
the direct interface with the windows kernel.
Forwarding is performed at link time by a special instruction in the .DEF file.
Forwarding is one technique Microsoft employs to expose a common Win32 API
set and to hide the significant low-level differences between the Windows NT and
Windows 9x internal API sets. Applications are not supposed to call functions in
the native API set since this would break compatibility between win9x and 2k/XP.
وقد فهمت معناها لكن لم افهم الهدف منها او سببها بشكل واضح
كذلك في موضوع الاضافة الى المقطع الاخير من البرنامج(اضافة بايتات)لم اتمكن من نسخ ولصق بايتات الاصفار الى اخر المقطع لا ب olly ولا ب hexeditor
ارجو ان تشرحوا لي طريقة ذلك
تحياتي
اضافة الى المقطع الاخير من البرنامج؟
الاضافة يمكن ان تتم الى اي مقطع تريد.. نسخ ولصق البايتات يتعلق بالبرنامج نفسه, لا تستطيع النسخ من olly واللصق في lordpe طبعا!
ما الذي تقوم بنسخه بالاصل والذي تريد تطبيقه في النهاية؟
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
ما اريده هو ان اضيف 100 بايت الى احد المقاطع (طبعا عبارة عن اصفار)فاذا اخترت ان اضيفها الى المقطع الاخير
وقمت بالتغيرات اللازمة في الpe header ثم حسب الملف المرفق سابقا يجب نسخ ولصق اصفار الى نهاية المقطع الاخير
الخطوة الاخيرة(النسخ واللصق)لم اتمكن من انجازها 0000فما هي الطريقة؟
تحياتي
لماذا لا يوجد رد حتى الان
ارجو الرد
ولكم الشكر الكثير
هناك برامج تقوم بما تريد.. ام انك تريد القيام بهذا بشكل يدوي؟
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
نعم اريد عمل ذلك بشكل يدوي ان امكن
كل ما تحتاج اليه هو التعديل في الـ VirtualSize والـ RawSize بشكل يتناسب مع المقدار المضاف, لا تنسى ايضا التعديل ضمن الـ Optional Header ان كان المقطع الذي تعدل فيه خاص بـ resource او ما شابه.
اخيرا اضف البيانات التي تريد بواسطة Hex workshop مثلا من خلال خيار Insert
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
شكرا جزيلا لك لكن يبدو ان خاصية ال insert لاتعمل لدي
تحياتي اليك وشكرا على تفاعلك اخ xacker
Ctrl+Ins او من خلال الـ context menu
تاكد بان الملف ليس للقراءة فقط
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
سؤال مهم
كيف يقوم المعالج بالتكلم مع نظام التشغيل
ما هو البرنامج بلغة الاسمبلي ارجو الرد بسرعة
البرشاوي كتب:سؤال مهمكيف يقوم المعالج بالتكلم مع نظام التشغيل
ما هو البرنامج بلغة الاسمبلي ارجو الرد بسرعة
هل فكرت في مراجعة المواضيع المثبتة؟ انصحك بان تبدا التفكير الان.
ثم بعدها يجب ان تعمل على قراءة الكثير, مثل:
http://en.wikipedia.org/wiki/CPU
http://en.wikipedia.org/wiki/Operating_System
وجميع الروابط بداخل هذه الصفحات.
اخيرا: Google: Operating System communicates with the CPU
تم تعديل هذه المشاركة بواسطة Xacker في 16 مايو 2006 في 02:25
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
هذا الموضوع مغلق.