الرئيسية / غير مصنف / فهم كيفية عمل البيلدر داخل برامج RAT التي تعتمد على مكتبة Mono.Cecil "للمبتدئين"

فهم كيفية عمل البيلدر داخل برامج RAT التي تعتمد على مكتبة Mono.Cecil "للمبتدئين"

السلام عليكم ورحمة الله احبتي في Dev-Point
اليوم لدينا شرح عن كيفية عمل البيلدر الموجود داخل برامج الRat الذي يقوم بانشاء الملف server.exe الذي هو نفسه السيرفر
“وفهم ماذا يحصل وراء الكواليس”
نذكر بعض هذه البرامج (تعتمد على مكتبة Mono.Cecil) مثل:
RevengeRatv0.2
RevengeRatv0.1
QuasarRAT v1.3.0.0 By MaxX0r
OrcusRat
والكثير………………………………………
في المقابل هناك برامج لا تعتمد على هذه المكتبة ايضا مثل:
Revengeratv0.3
Njrat0.7D
تعتمد على التجميع ب Ildasm-Ilasm

————————————————————————————-
الان ندخل في صلب الموضوع عليك اولا تحميل المكتبة من موقعها الرسمي:
Mono.Cecil | Mono
————————————————————————————–
سأتطرق الان الى مثال بسيط جدا وسهل الفهم لبرنامج “Builder” يقوم بانشاء ملف بامتداد exe
يظهر فيه مسج بوكس يحوي القيمة التي تم ادراجها في textbox الموجود في ال”Builder”

——————————————————————————–
الان نبدأ الشرح التطبيقي:
الان نقوم بفتح مشروعين C# من نوع windows forms
نسمي الاول على سبيل المثال Builder
والثاني Stub
نتجه اولا الى المشروع stub ونحذف form1 وندرج الكود التالي “شرح الكود معه”:

كود C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace stub
{
    static class Program
    {
        public static string def = "no Age loaded";//////// يجب ان يكون المتغير يحمل القيمة نفسها الموجودة في البيلدر
     
        [STAThread]
        static void Main()
        {
                 

            MessageBox.Show(def);////////////// def ميساج بوكس يحوي المتغير 
         
        }
    }
}

فيصبح المشروع على الشكل التالي:
[​IMG]
الان نأتي الى مشروع Builder ثم كما فعلنا في مشروع Stub نحذف Form1
الان نقوم باضافة المكتبة التي حملناها سابقا “Mono.cecil.dll” الى Refernce ونقوم باستعائها في فضاء الاسماء

كود C#

using Mono.Cecil;//////////////استدعاء المكتبة
using Mono.Cecil.Cil;//////////استدعاء المكتبة

فيصبح المشروع على الشكل التالي:
[​IMG]
نتجه الى ال Designer ونقوم باضافة Button و Textbox
نضغط مرتين على Button ونقوم باضافة الكود الاتي
وهو الكود الاهم:

كود C#

 OpenFileDialog dialog44 = new OpenFileDialog(); ////////File dialog (لتحديد ال Stub)
            dialog44.Filter = "STUB (.exe)|*.exe";/////////////فلتر لقبول الملفات التنفيذية فقط
            try/////////////// مصيدة اخطاء في حال ظهور اي خطأ
            {
                SaveFileDialog NewDir = new SaveFileDialog(); ////// Savefiledialog لحفظ الستب بعد الانتهاء من التعديل
                NewDir.Filter = "stub (*.exe)|*.exe";///////////فلتر عمله تحديد ملف امتداد الملف فقط
                if (NewDir.ShowDialog() == System.Windows.Forms.DialogResult.OK)////////دالة شرطية لقبول الملف بعد اختيار
                {
                   AssemblyDefinition Stub = AssemblyDefinition.ReadAssembly("Stub.exe");////////قراءة معلومات الاسمبلي الخاصة بملف الستب
                    ///  بجانب البيلدر مع مراعاة الاحرف الكبيرة والصغيرة stub.exe ملاحظة : يجب ان يكون ملف
                    foreach (var G in Stub.MainModule.GetTypes())//دالة تكرارية لجلب المودل الرئيسي من الستب
                    {
                        foreach (var MEE in G.Methods)//دالة تكرارية ايضا لجلب الميثود من داخل المودل الرئيس
                        {
                            if (MEE.Name == ".cctor")//////////      ".cctor"   : دالة شرطية لجلب الميثود 
                            /////////////ملاحظة الميثود .cctor :    "Static"   :  هو الميثود الذي تخزن فيه المتغيرات من نوع
                            {
                                IEnumerator<Instruction> EMU = null;////////////////////   " List"     عمله يشبه عمل ال  "IEnumerator "  فرض متغير من نوع 
                                EMU = MEE.Body.Instructions.GetEnumerator();////////////////////////       IEnumerator     نفسه   EMU     عملية جلب جميع القيم التي يأخذه 
                                while (EMU.MoveNext())//////////////   While    جملة تكرارية من نوع       
                                {
                                    Instruction ISS = EMU.Current;/////////////////            Instruction    جلب جميع القيم من   
                                    if (ISS.OpCode.Code == Code.Ldstr)///////////              IL   تطابقت مع الكود طبعا الكود اصبح هنا بصيغة      Instruction    دالة تكرارية في حالة ان القيمة الاتية من 
                                    {
                                        string ST = ISS.Operand.ToString();                  ////     فرض متغير من نوع سترينج نصي واعطاءه قيمة المعامل وتحويلها الى نص لانها بالاساس لاتأخذ قيمة سترينج
                                        if (ST == "no Age loaded")/////////                " في حال اصبح المعامل بعد تحويله الى سترينج يساوي القيمة داخل الكود      "دالةتكرارية
                                        {
                                            ISS.Operand = textBox1.Text;                   ///////// اجعل قيمة هذا السترينج تساوي القيمة المكتوبة في تيكست بوكس 1
                                            goto continueDo;////////       continueDo للخروج من الكود والتوجه الى الدالة العملية
                                        }
                                    }
                                }

                            continueDo:
                                1.GetHashCode();//////     Instance    ارجاع قيمة الهاش لل 
                            }
                        }
                    }
                    Stub.Write(NewDir.FileName);///////      الذي اعلنا عنه في الاعلى    savefiledialog                   كتابة الستب الجديد في ال
                    MessageBox.Show(NewDir.FileName);//////          ميساج بوكس لاظهار مكان حفظ الستب الجديد
                }
            }
            catch (Exception ex)/////////////// مصيدة اخطاء في حال ظهور اي خطأ
            {
                MessageBox.Show(ex.Message); /////////////// مصيدة اخطاء في حال ظهور اي خطأ
            }

~الكود تم شرحه بالكامل من الالف الى الياء~
والان نصل الى المرحلة الاخيرة وهي التأكد من عمل كل شيء بطريقة صحيحة
نقوم بعمل Build للمشروع Stub ونأخذ الملف Stub.exe الى سطح المكتب
نقوم بنفس العمل مع المشروع Builder
ولاتنسى اخي العزيز مكتبة Monocecil.dll يجب ان تكون بجانب Builder
طبعا الان يجب ان يظهر معك كما يظهر في الفيديو :

طبعا هذه الطريقة نفسها الذي يقوم فيها البرنامج بادخال الهوست الخاص بك مع الاعدادات
الى داخل السيرفر الناتج عن البيلدر
رابط تحميل المشروعين للتعلم:

Learn Mono.Cecil | تحميل
الى هنا ينتهي الموضوع في امان الله وحفظه ورعايته
الاهداء الى اخوتي في طاقم حماية الاجهزة

@SyRiAn KaSp3r
@Bashar Bachir
@كيرا
والى كل من شاهد الموضوع ايضا

 


Source by [author_name]

شاهد أيضاً

?? ?? ???? ??? ?????? ??? ???????

?? ?? ???? ??? ?????? ??? ??????? ????? ?? ??????? ???? ????? ??????? ? ???????? ...

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *