Invoke in Memory Without EntryPoint Or RunPE

تم تحميل الصفحة في 0,9871937 ثانية
Invoke in Memory Without EntryPoint Or RunPE
إنضم
18 يوليو 2015
المشاركات
4,805
الإعجابات
8,591
النقاط
133
الإقامة
Republic Of Bahrain
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

..

اولا عيدكم مبارك جميعا وعساكم من عوادة
حبيت اطرح فكرة بسيطة استخدمتها من مدة كـ عيدية
الفكرة بكل بساطة هي الاستغناء عن مايسمى بنقطة الادخال
اولا قبل الدخول في الموضوع دعنا نبين ماهي نقطة الادخال بالاساس ؟ ..
نقطة الادخال هي تتكون من دالة Load , خاصية EntryPoint , دالة Invoke
طبعا دالة Load تأتي من كلاسين اما AppDomain أو Assembly وهي لـ عمل تشغيل لملف الـ .net في الميموري
الـ Property أو خاصية الـ EntryPoint هي تجلب نقطة بداية تشغيل الملف الي عملنا حقه Load وهي ترجع الميثود اينفو
^
معلومات عن الميثود المسؤوله عن بداية تشغيل الملف
ودالة Invoke هي طبعا دالة تعمل استدعاء لـ الميثود اينفو أو المعلومات عن الدالة المسؤولة
الي تم جلبها من خاصية EntryPoint وتاخد بارتميترين الاول اوبجكت والثاني بارتميترات الدالة
وفي حالتنا نحن نريد تشغيل ملف يعمل من Sub main و sub main لاترجع قيمة عبارة عن اجراء

فـ الفكرة الي عندي هي استغناء عن خاصية EntyPoint وجلبها يدويا بـ استعمال الريفلكشين
الكل يعرف كيف يستدعي ملف dll بـ الرفليكشن وتنفيذ منه دالة اما تمرير بارتميترات لها او بدون
احنا راح نعمل لود اولا لـ السيرفر حقنا بـ دالة Load بعد ذلك راح نجلب الـ Type الا هو النيم سبيس لمشروع السيرفر
واسم الكلاس الي فيه الدالة المستهدفه وهو j.A حيث j هو النيم سبيس , A اسم الكلاس الي فيه الدالة المستهدفه الي راح نعمل انفوك لها
بعد ذلك نستخدم كلاس MethodInfo ونستخدم منه دالة GetMethod لجلب اسم الميثود المستهدف الا هو Main الي فيه اكواد بداية عمل السيرفر
وبعد ذلك نستخدم دالة CreateInstance لمعرفة نوع الـ Type الي جلبناه ونضعه في متغير Object بعد ذلك الدالة الشهيره Invoke ونمرر لها
اولا كما قلنا تاخد الاوبجكت وبارتميترات الدالة المراد استدعائها الاوبجكت هو الي عرفناه سابقا لمعرفة نوع الـ Type والبارتميترات كما قلت دالة main
لاترجع قيمة يعني يكون null وبهكذا سيتم عمل السيرفر في الـ Memory بكل بساطة وطبعا تقدر تستعمل GetMethods أو GetTypes لكن ستحتاج حلقه تكرار لان راح يجلب لك كل الميثود وكل التايب في الملف الي عملت له Load على شكل مصفوفه وبعد ذلك تقدر تحدد الاندكس وتعمل For Each وهذا لتخطي الافيرا لان يمسك GetMethod


الكود :
كود C#
  System.Reflection.Assembly H0 = System.Reflection.Assembly.Load("Your Bytes");
  Type H1 = H0.GetType("j.A");
  System.Reflection.MethodInfo H2 = H1.GetMethod("main");
  Object H3 = Activator.CreateInstance(H1);
  H2.Invoke(H3, null);



واخيرا الاهداء الى اصدقائي عباقرة التشفير
الملازم حازم
R A J A W I
Tsunamii
Амеея Аммая
+
اهداء خاص لصديقي : Dook Net
 

Mr.LOAI

~أستغفر الله العظيم~
rankrankrankrankrank
إنضم
28 يونيو 2016
المشاركات
2,044
الإعجابات
2,115
النقاط
163
الإقامة
GER/SYR-Aleppo
وعليكم السلام ورحمه الله وبركاته
موضوع جميل جدا
ومن الممكن تطويره بأكثر من طريقة بسهولة
يعطيك العافية على طرحه

تحياتي
 
إنضم
14 مارس 2011
المشاركات
3,396
الإعجابات
4,924
النقاط
113
الإقامة
Palestine
مواضيعك اخي حلاج كنز لمن يريد التطوير الى الافضل
توضيح مفصل واسلوب سلس
لتحفيز الاعضاء
بوركت اخي الكريم
على العطاء المثمر
 
إنضم
31 أكتوبر 2012
المشاركات
1,543
الإعجابات
1,697
النقاط
153
الرفليكشن عالم روعه ههههه
يمكن عمل برنامج يقوم بجلب مسار الانتر بوينت كامل
Assembly.Load("").Entrypoint.FullName هذا الاسم تاخذه وتستدعيه
بس بسيطه يصير اسهل واسرع ^^
 
إنضم
11 يناير 2012
المشاركات
8,390
الإعجابات
8,524
النقاط
113

موضوع جميل ')

H2.Invoke(H3, null);

مكتبة dll فيها القيم وملف اخر يشغل المكتبة كانها بلوقن
 
إنضم
23 سبتمبر 2015
المشاركات
838
الإعجابات
1,199
النقاط
93
الإقامة
Algeria
نعم الفكرة هذه ذكية وتم استعمالها من طرف راكان من قبل لكن لم يتم عرضها في المنتدى
ونقطة الادخال يوجد طرق كثيرة وبسيطة جدا تستطيع تخطي بها النود وبعض الحمايات بسهولة
احسنت الطرح ليتم تطويرها
 
إنضم
18 يوليو 2015
المشاركات
4,805
الإعجابات
8,591
النقاط
133
الإقامة
Republic Of Bahrain
main مو ثابت الاسم في كل الملفات
مثل ماذا الي اعرفه
انه main هو الـ sub الرئيسي الي يتنفذ منه اي برنامج
الا اذا كان Form له قصة اخرى لان حتى مع نقطة الادخال العادية لا يعمل
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

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

إرجاع خيارات الإستايل