مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

[ شرح ] الدرس الاول البداية IL / CIL

Xerin

./عضو جديد

السمعة:

في البادئة الموضوع ليس بالمعقد اولاً تحتاج ان تكتسب خبرة او خلفية ولو بسيطة عن IL / CIL او Operand (OpCodes)​

وافضل حل هنا هيكون عبر استخدام Decompiler لتحليل ال methods
وانا افضل https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8 فهو ممتاز وسهل الإستخدام لتحليل الاسيمبلي والتعديل على instructions او operands

الان لنعد لموضوع الدرس لغة IL او Intermediate Language بإختصار هي لغة وسيطة تستخدمها الـ .NET Framework لتحويل كود البرمجة المكتوب بلغات عالية المستوى مثل C# أو VB.NET إلى شكل قابل للتنفيذ بواسطة بيئة التشغيل المشتركة (CLR - Common Language Runtime). تُعرف أيضًا بـ MSIL (Microsoft Intermediate Language) أو CIL (Common Intermediate Language).

الأن لنشرح على مثال بسيط وسهل في البداية اولاً لنضيف اسيمبلي بسيط الى dnSpy لنقوم بتحليله والشرح عليه
اولاً نفتح dnSpy ومن خلال File بالأعلى عاليسار كما موضع بالصورة نختار Open او يمكنك بإختصار الضغط على Ctrl + O لإختيار الأسيمبلي مباشرةً
load.webp

بعد اضافة الاسيمبلي ستجده في assembly explorer على هذه الهيئة
assembly.webp

كما تري const_string هو namespace ويمكن ان يكون بأي اسم اخر المهم بداخله يوجد classes
كما تري يوجد بداخله Program و بداخل Program يوجد void Main وهي ما سنتعلم عليها الان
inside.webp

الان هنا
main.webp

اذا لاحظت الميثود Main يوجد بداخلها
Console.WriteLine("Hello World!"); وهو كود طبيعي مكتوب بإستخدام C#

جميل لكن الأن لنحول اللغة من C# الى IL لنفهم اكثر عن المُتَعاملات ( OpCodes )
يمكنك تحويل اللغة من هنا
convert.webp

الان ركز معي
IL.webp

كما تري في الصورة يوجد مجموعة من OpCodes او Operands كما شرحنا بالأعلى الان لنأخذ الموضوع تدريجياً كما ترى اول Operand وهو ldstr بإختصار هو عبارة عن مُتَعامل يمكنك تخزين النصوص به مثل "Hello World!" كما بالصورة

المُتَعامل الثاني وهو Call هذا المُتَعامل كما موضع من اسمه Call هو مسؤول عن النداء او استخدام void كما موضح امامك void [mscorlib]System.Console::WriteLine(string) هنا تم استدعاء WriteLine من void [mscorlib]System.Console وكما تلاحظ WriteLine تحتاج الى نص بداخل كما هنا WriteLine(string) لذلك يوجد اول مُتَعامل وهو ldstr

بالنهاية يوجد مُتَعامل ret وهو بإختصار
في نهاية معظم الطرق لإعادة التنفيذ إلى call، ويمكن تشبيهه بكلمة "return" في لغات البرمجة مثل C#. حين يصل البرنامج إلى ret، ينهي تنفيذ الطريقة الحالية ويعيد التحكم إلى النقطة التي تم استدعاؤها منها. كما يقوم بإرجاع قيمة إذا كانت الطريقة محددة لتعيد نوعًا معينًا من البيانات. مثلاً return null او return 0 او return false
تعد ret جزءًا أساسيًا من تنفيذ الطرق في IL، وهو مهم في سير تنفيذ البرنامج ضمن بيئة CLR حيث يعالج هذه التعليمات لتحسين الأداء وضمان إدارة الذاكرة بشكل آمن.
حيث انك سترى هذا المُتَعامل دائماً....

وهنا انتهى الدرس الاول! انتظروا الدروس القادمة ان شاء الله

اتمني ان تكون استفدت فا أنا لست بالمعلم الجيد لكنى احاول ان اقدم ولو جزء بسيط مما تعلمته لعله يكون علماً نافعاً
وشكراً لكم ♥
 
بارك الله فيك اخي وجزاك الله كل خير
ننتظر جديد دروسك وابداعاتك دائماً
تحياتي
اخوك ستورم
 
ننتظر الدروس القادمة
و كلنا بدأنا ببدايات بسيطة و لكن الأهم هو الإستمرارية

بالتوفيق أخي ❤️
 
  • Love
التفاعلات: Xerin
بارك الله فيك اخي وجزاك الله كل خير
ننتظر جديد دروسك وابداعاتك دائماً
تحياتي
اخوك ستورم
تسلم يا صديقي ♥
 

في البادئة الموضوع ليس بالمعقد اولاً تحتاج ان تكتسب خبرة او خلفية ولو بسيطة عن IL / CIL او Operand (OpCodes)​

وافضل حل هنا هيكون عبر استخدام Decompiler لتحليل ال methods
وانا افضل https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8 فهو ممتاز وسهل الإستخدام لتحليل الاسيمبلي والتعديل على instructions او operands

الان لنعد لموضوع الدرس لغة IL او Intermediate Language بإختصار هي لغة وسيطة تستخدمها الـ .NET Framework لتحويل كود البرمجة المكتوب بلغات عالية المستوى مثل C# أو VB.NET إلى شكل قابل للتنفيذ بواسطة بيئة التشغيل المشتركة (CLR - Common Language Runtime). تُعرف أيضًا بـ MSIL (Microsoft Intermediate Language) أو CIL (Common Intermediate Language).

الأن لنشرح على مثال بسيط وسهل في البداية اولاً لنضيف اسيمبلي بسيط الى dnSpy لنقوم بتحليله والشرح عليه
اولاً نفتح dnSpy ومن خلال File بالأعلى عاليسار كما موضع بالصورة نختار Open او يمكنك بإختصار الضغط على Ctrl + O لإختيار الأسيمبلي مباشرةً
مشاهدة المرفق 15361
بعد اضافة الاسيمبلي ستجده في assembly explorer على هذه الهيئة
مشاهدة المرفق 15362
كما تري const_string هو namespace ويمكن ان يكون بأي اسم اخر المهم بداخله يوجد classes
كما تري يوجد بداخله Program و بداخل Program يوجد void Main وهي ما سنتعلم عليها الان
مشاهدة المرفق 15363
الان هنا
مشاهدة المرفق 15359
اذا لاحظت الميثود Main يوجد بداخلها
Console.WriteLine("Hello World!"); وهو كود طبيعي مكتوب بإستخدام C#

جميل لكن الأن لنحول اللغة من C# الى IL لنفهم اكثر عن المُتَعاملات ( OpCodes )
يمكنك تحويل اللغة من هنا
مشاهدة المرفق 15364
الان ركز معي
مشاهدة المرفق 15360
كما تري في الصورة يوجد مجموعة من OpCodes او Operands كما شرحنا بالأعلى الان لنأخذ الموضوع تدريجياً كما ترى اول Operand وهو ldstr بإختصار هو عبارة عن مُتَعامل يمكنك تخزين النصوص به مثل "Hello World!" كما بالصورة

المُتَعامل الثاني وهو Call هذا المُتَعامل كما موضع من اسمه Call هو مسؤول عن النداء او استخدام void كما موضح امامك void [mscorlib]System.Console::WriteLine(string) هنا تم استدعاء WriteLine من void [mscorlib]System.Console وكما تلاحظ WriteLine تحتاج الى نص بداخل كما هنا WriteLine(string) لذلك يوجد اول مُتَعامل وهو ldstr

بالنهاية يوجد مُتَعامل ret وهو بإختصار
في نهاية معظم الطرق لإعادة التنفيذ إلى call، ويمكن تشبيهه بكلمة "return" في لغات البرمجة مثل C#. حين يصل البرنامج إلى ret، ينهي تنفيذ الطريقة الحالية ويعيد التحكم إلى النقطة التي تم استدعاؤها منها. كما يقوم بإرجاع قيمة إذا كانت الطريقة محددة لتعيد نوعًا معينًا من البيانات. مثلاً return null او return 0 او return false
تعد ret جزءًا أساسيًا من تنفيذ الطرق في IL، وهو مهم في سير تنفيذ البرنامج ضمن بيئة CLR حيث يعالج هذه التعليمات لتحسين الأداء وضمان إدارة الذاكرة بشكل آمن.
حيث انك سترى هذا المُتَعامل دائماً....

وهنا انتهى الدرس الاول! انتظروا الدروس القادمة ان شاء الله

اتمني ان تكون استفدت فا أنا لست بالمعلم الجيد لكنى احاول ان اقدم ولو جزء بسيط مما تعلمته لعله يكون علماً نافعاً
وشكراً لكم ♥
بوركت جهودك أخي الغالي ونفع الله بك
تقبل مروري
 
  • Love
التفاعلات: Xerin

في البادئة الموضوع ليس بالمعقد اولاً تحتاج ان تكتسب خبرة او خلفية ولو بسيطة عن IL / CIL او Operand (OpCodes)​

وافضل حل هنا هيكون عبر استخدام Decompiler لتحليل ال methods
وانا افضل https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8 فهو ممتاز وسهل الإستخدام لتحليل الاسيمبلي والتعديل على instructions او operands

الان لنعد لموضوع الدرس لغة IL او Intermediate Language بإختصار هي لغة وسيطة تستخدمها الـ .NET Framework لتحويل كود البرمجة المكتوب بلغات عالية المستوى مثل C# أو VB.NET إلى شكل قابل للتنفيذ بواسطة بيئة التشغيل المشتركة (CLR - Common Language Runtime). تُعرف أيضًا بـ MSIL (Microsoft Intermediate Language) أو CIL (Common Intermediate Language).

الأن لنشرح على مثال بسيط وسهل في البداية اولاً لنضيف اسيمبلي بسيط الى dnSpy لنقوم بتحليله والشرح عليه
اولاً نفتح dnSpy ومن خلال File بالأعلى عاليسار كما موضع بالصورة نختار Open او يمكنك بإختصار الضغط على Ctrl + O لإختيار الأسيمبلي مباشرةً
مشاهدة المرفق 15361
بعد اضافة الاسيمبلي ستجده في assembly explorer على هذه الهيئة
مشاهدة المرفق 15362
كما تري const_string هو namespace ويمكن ان يكون بأي اسم اخر المهم بداخله يوجد classes
كما تري يوجد بداخله Program و بداخل Program يوجد void Main وهي ما سنتعلم عليها الان
مشاهدة المرفق 15363
الان هنا
مشاهدة المرفق 15359
اذا لاحظت الميثود Main يوجد بداخلها
Console.WriteLine("Hello World!"); وهو كود طبيعي مكتوب بإستخدام C#

جميل لكن الأن لنحول اللغة من C# الى IL لنفهم اكثر عن المُتَعاملات ( OpCodes )
يمكنك تحويل اللغة من هنا
مشاهدة المرفق 15364
الان ركز معي
مشاهدة المرفق 15360
كما تري في الصورة يوجد مجموعة من OpCodes او Operands كما شرحنا بالأعلى الان لنأخذ الموضوع تدريجياً كما ترى اول Operand وهو ldstr بإختصار هو عبارة عن مُتَعامل يمكنك تخزين النصوص به مثل "Hello World!" كما بالصورة

المُتَعامل الثاني وهو Call هذا المُتَعامل كما موضع من اسمه Call هو مسؤول عن النداء او استخدام void كما موضح امامك void [mscorlib]System.Console::WriteLine(string) هنا تم استدعاء WriteLine من void [mscorlib]System.Console وكما تلاحظ WriteLine تحتاج الى نص بداخل كما هنا WriteLine(string) لذلك يوجد اول مُتَعامل وهو ldstr

بالنهاية يوجد مُتَعامل ret وهو بإختصار
في نهاية معظم الطرق لإعادة التنفيذ إلى call، ويمكن تشبيهه بكلمة "return" في لغات البرمجة مثل C#. حين يصل البرنامج إلى ret، ينهي تنفيذ الطريقة الحالية ويعيد التحكم إلى النقطة التي تم استدعاؤها منها. كما يقوم بإرجاع قيمة إذا كانت الطريقة محددة لتعيد نوعًا معينًا من البيانات. مثلاً return null او return 0 او return false
تعد ret جزءًا أساسيًا من تنفيذ الطرق في IL، وهو مهم في سير تنفيذ البرنامج ضمن بيئة CLR حيث يعالج هذه التعليمات لتحسين الأداء وضمان إدارة الذاكرة بشكل آمن.
حيث انك سترى هذا المُتَعامل دائماً....

وهنا انتهى الدرس الاول! انتظروا الدروس القادمة ان شاء الله

اتمني ان تكون استفدت فا أنا لست بالمعلم الجيد لكنى احاول ان اقدم ولو جزء بسيط مما تعلمته لعله يكون علماً نافعاً
وشكراً لكم ♥
كل مرة بتثبتلي c# أنها من احلى لغات البرمجة
يعطيك العافيه يا رب
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى