09-05-2024, 05:56 PM
رحلة في عالم الهندسة العكسية
https://www.youtube.com/playlist?list=PL...Moshvgu35x
# الفصل 0 : تمهيد
فهم "return 0" يعتمد على السياق الذي يُستخدم فيه هذا التعبير. في العديد من لغات البرمجة، مثل C و C++، يُستخدم "return 0" كقيمة تُرجعها دالة من نوع int للدلالة على أن البرنامج قد انتهى بنجاح. وفي هذه الحالة، يعني "0" عادة أن البرنامج تم تنفيذه بنجاح ولم يحدث أي خطأ.
على سبيل المثال، في البرنامج البسيط التالي المكتوب بلغة C++:
"return 0" يُرجع القيمة 0 من دالة main، مما يُشير إلى أن البرنامج انتهى بنجاح.
في السياقات الأخرى، مثل بعض لغات البرمجة الأخرى أو السياقات غير البرمجية، قد يكون لـ "return 0" معنى مختلفًا. لذا، يجب دائمًا أن تُفهم من خلال السياق الذي يُستخدم فيه.
ثم ساعمل كومباي له يمكنك ان ترى هنا انه عمليه الكومبايل تمت بنجاح لان اخر قيمه مرجعه من البرنامج الذي في هذه الحاله الكومبايل هي صفر اي ان الكومباي ليشن تمت بنجاح الان سانفذ البرنامج وكما ترى يمكنك ان ترى القيمه التي ارجعناها وهي ثمانيه فهذه الحاله نرى قمنا بارجاع من البرنامج
ساغير الان return الى one hundred and twenty-three ثم ساقوم compile ثم ساقوم بكتابه command غير موجوده .
كما ترى انه اخرج command not found ماذا لو اخرجت اخر exit status سنرى ان الرقم 127 اي ان الكوماند غير موجوده.
والان ساقوم بعمل الكوماند echo dollar? ثم تنفيذ البرنامج ثم ساقوم بعمل اخراج لي اخر قيمه exit status سنرى انها one hundred and twenty-three.
سنرجع الى القيمه ثمانيه ونعمل compile وننتقل الى المرحله الثانيه
نفحص البرنامج ونرى انه 32 bits x 86 processors family architecture
نلاحظ في x64dbg اننا في البرنامج الرئيسي ولسنا في مشغل البرنامج التابع الى النظام
يمكنك ان تضع الخيارات كما التالي في برنامج x64dbg كي يدخل الى نقطه الدخول "Entry breakpoint" الى البرنامج دون استمرار اظهار نقاط التوقف الاخرى
حسنا هذه العباره في لغه السي بلس بلس:
return 8;
تعادل هذه العباره في لغه الاس امبلي
تعادل هذه العباره في لغه الassembly
MOV EAX,8
الان يمكننا ان نبحث في القائمه اليمنى لبرنامج x64dbg ثم نذهب الى جميع "User modules" ثم نبحث عن command
مع العلم انه يمكنك ان تبحث في module واحد ساريك طريقه لاحقا
الان لاحظ معي انه هناك كثير من العناوين متقاربه في الرقم 7 بي وهناك رقم واحد فقط ليس كبيرا في الحاجم فاشك انه هذا هو الexit status الخاص ببرنامجنا.
وكما ترى في هذه الحاله اذا اخترت المديول الحالي فقط هذا الروتور لانه في الكود الحالي لدينا return واحده فقط
ضغطتين بالفاره او الضغط على الكيبورد space لنغير الرقم الى رقم خمسه
وهذا التغيير يسمى assemble
قم بتفعيل المحافظة على الحجم وإلا سيتعطل البرنامج "Keep size"
ثم نقوم بعمل Patch
Learn to interpret the exit code returned by the 'return' statement, and understand how to locate it in x64dbg. Gain proficiency in using x64dbg, starting with the initial steps of debugging by examining assembly command instructions. Differentiate between user and system modules, and grasp the concept of setting entry breakpoints. Also, acquire the skills to troubleshoot and resolve issues within our program.
تعلم كيفية تفسير رمز الخروج exit code المُرجع من تعليمة 'return'، وفهم كيفية تحديد موقعها في x64dbg. اكتسب الخبرة في استخدام x64dbg، بدءًا من الخطوات الأولى لتصحيح الأخطاء من خلال فحص تعليمات الأوامر التجميعية assembly command instructions.
قم بالتمييز بين الوحدات النمطية للمستخدم والنظام user and system modules، وفهم مفهوم تعيين نقاط التوقف عند الدخول entry breakpoints. كما اكتسب المهارات اللازمة لتحليل المشاكل وحلها troubleshoot داخل برنامجنا.
https://www.youtube.com/playlist?list=PL...Moshvgu35x
# الفصل 0 : تمهيد
- 0.1 تحميل و تثبيت : x64dbg و Detect it easy
- 0.2 Program Analysis رحلة استكشافية لتحليل البرامج
- 0.3 علّم نفسك كيفية فهم رموز الخروج exit code وتحليل الأخطاء في x64dbg
فهم "return 0" يعتمد على السياق الذي يُستخدم فيه هذا التعبير. في العديد من لغات البرمجة، مثل C و C++، يُستخدم "return 0" كقيمة تُرجعها دالة من نوع int للدلالة على أن البرنامج قد انتهى بنجاح. وفي هذه الحالة، يعني "0" عادة أن البرنامج تم تنفيذه بنجاح ولم يحدث أي خطأ.
على سبيل المثال، في البرنامج البسيط التالي المكتوب بلغة C++:
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
"return 0" يُرجع القيمة 0 من دالة main، مما يُشير إلى أن البرنامج انتهى بنجاح.
في السياقات الأخرى، مثل بعض لغات البرمجة الأخرى أو السياقات غير البرمجية، قد يكون لـ "return 0" معنى مختلفًا. لذا، يجب دائمًا أن تُفهم من خلال السياق الذي يُستخدم فيه.
ثم ساعمل كومباي له يمكنك ان ترى هنا انه عمليه الكومبايل تمت بنجاح لان اخر قيمه مرجعه من البرنامج الذي في هذه الحاله الكومبايل هي صفر اي ان الكومباي ليشن تمت بنجاح الان سانفذ البرنامج وكما ترى يمكنك ان ترى القيمه التي ارجعناها وهي ثمانيه فهذه الحاله نرى قمنا بارجاع من البرنامج
ساغير الان return الى one hundred and twenty-three ثم ساقوم compile ثم ساقوم بكتابه command غير موجوده .
كما ترى انه اخرج command not found ماذا لو اخرجت اخر exit status سنرى ان الرقم 127 اي ان الكوماند غير موجوده.
والان ساقوم بعمل الكوماند echo dollar? ثم تنفيذ البرنامج ثم ساقوم بعمل اخراج لي اخر قيمه exit status سنرى انها one hundred and twenty-three.
سنرجع الى القيمه ثمانيه ونعمل compile وننتقل الى المرحله الثانيه
نفحص البرنامج ونرى انه 32 bits x 86 processors family architecture
نلاحظ في x64dbg اننا في البرنامج الرئيسي ولسنا في مشغل البرنامج التابع الى النظام
يمكنك ان تضع الخيارات كما التالي في برنامج x64dbg كي يدخل الى نقطه الدخول "Entry breakpoint" الى البرنامج دون استمرار اظهار نقاط التوقف الاخرى
حسنا هذه العباره في لغه السي بلس بلس:
return 8;
تعادل هذه العباره في لغه الاس امبلي
تعادل هذه العباره في لغه الassembly
MOV EAX,8
الان يمكننا ان نبحث في القائمه اليمنى لبرنامج x64dbg ثم نذهب الى جميع "User modules" ثم نبحث عن command
مع العلم انه يمكنك ان تبحث في module واحد ساريك طريقه لاحقا
الان لاحظ معي انه هناك كثير من العناوين متقاربه في الرقم 7 بي وهناك رقم واحد فقط ليس كبيرا في الحاجم فاشك انه هذا هو الexit status الخاص ببرنامجنا.
وكما ترى في هذه الحاله اذا اخترت المديول الحالي فقط هذا الروتور لانه في الكود الحالي لدينا return واحده فقط
ضغطتين بالفاره او الضغط على الكيبورد space لنغير الرقم الى رقم خمسه
وهذا التغيير يسمى assemble
قم بتفعيل المحافظة على الحجم وإلا سيتعطل البرنامج "Keep size"
ثم نقوم بعمل Patch
Learn to interpret the exit code returned by the 'return' statement, and understand how to locate it in x64dbg. Gain proficiency in using x64dbg, starting with the initial steps of debugging by examining assembly command instructions. Differentiate between user and system modules, and grasp the concept of setting entry breakpoints. Also, acquire the skills to troubleshoot and resolve issues within our program.
تعلم كيفية تفسير رمز الخروج exit code المُرجع من تعليمة 'return'، وفهم كيفية تحديد موقعها في x64dbg. اكتسب الخبرة في استخدام x64dbg، بدءًا من الخطوات الأولى لتصحيح الأخطاء من خلال فحص تعليمات الأوامر التجميعية assembly command instructions.
قم بالتمييز بين الوحدات النمطية للمستخدم والنظام user and system modules، وفهم مفهوم تعيين نقاط التوقف عند الدخول entry breakpoints. كما اكتسب المهارات اللازمة لتحليل المشاكل وحلها troubleshoot داخل برنامجنا.