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

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

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

في البادئة الموضوع ليس بالمعقد اولاً تحتاج ان تكتسب خبرة او خلفية ولو بسيطة عن 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 حيث يعالج هذه التعليمات لتحسين الأداء وضمان إدارة الذاكرة بشكل آمن.
حيث انك سترى هذا المُتَعامل دائماً....

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

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

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

فانوس

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