Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PowerShellArsenal — وحدة باورشيل مخصصة لهندسة عكسية | Kitploit
أدوات/GitHubGitHub/mattifestation/powershellarsenal
التحليل الثابتالتحليل الديناميكي (عزل)أدوات التشفير/فك التشفيرتحليل الذاكرة الجنائيالهندسة العكسيةمصممي الأخطاءالتحقيق الجنائي الرقميتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubmattifestation/powershellarsenal

PowerShellArsenal

وحدة باورشيل مخصصة لهندسة عكسية

900205منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع

PowerShellArsenal هي وحدة PowerShell تُستخدم لمساعدة مهندس الهندسة العكسية. يمكن استخدام الوحدة لتفكيك الكود المُدار وغير المُدار، وإجراء تحليل للبرامج الضارة .NET، وتحليل/كشط الذاكرة، وتحليل تنسيقات الملفات وهياكل الذاكرة، والحصول على معلومات النظام الداخلية، إلخ. تتكون PowerShellArsenal من الأدوات التالية:

التفكيك

تفكيك الكود الأصلي والمُدار.

Get-CSDisassembly

يفكك مصفوفة بايت باستخدام إطار تفكيك Capstone Engine.

Get-ILDisassembly

يفكك مصفوفة بايت MSIL الخام الممررة من كائن MethodInfo بطريقة مشابهة لـ Ildasm.

تحليل البرامج الضارة

أدوات مفيدة عند إجراء تحليل البرامج الضارة.

New-FunctionDelegate

يوفر غلافًا قابلًا للتنفيذ لدالة X86 أو X86_64.

Invoke-LoadLibrary

يقوم بتحميل DLL في عملية PowerShell الحالية.

New-DllExportFunction

ينشئ مفوض غلاف قابل للتنفيذ حول دالة غير مُدارة ومُصدّرة.

Get-HostsFile

يحلل ملف HOSTS.

New-HostsFileEntry

استبدال أو إضافة إدخال إلى ملف HOSTS.

Remove-HostsFileEntry

إزالة إدخال أو سلسلة من الإدخالات من ملف HOSTS.

Get-AssemblyStrings

إخراج جميع السلاسل من ملف تنفيذي .NET.

Get-AssemblyResources

استخراج الموارد المُدارة من تجميع .NET

Remove-AssemblySuppressIldasmAttribute

يزيل سمة SuppressIldasmAttribute من تجميع .NET.

Get-AssemblyImplementedMethods

يُرجع جميع الطرق في تجميع تم تنفيذها في MSIL.

أدوات الذاكرة

فحص وتحليل ذاكرة العملية

Get-ProcessStrings

يُخرج جميع السلاسل القابلة للطباعة من ذاكرة وضع المستخدم لعملية.

Get-VirtualMemoryInfo

غلاف لـ kernel32!VirtualQueryEx

Get-ProcessMemoryInfo

استرداد معلومات الذاكرة الظاهرية لكل مجموعة فريدة من الصفحات في ذاكرة المستخدم. تشبه هذه الدالة أمر !vadump في WinDbg.

Get-StructFromMemory

ينقل البيانات من كتلة ذاكرة غير مُدارة في عملية عشوائية إلى كائن مُدار مُخصص حديثًا من النوع المحدد.

محللات

تحليل تنسيقات الملفات والهياكل في الذاكرة.

Get-PE

محلل PE على القرص وفي الذاكرة ومُفرغ عملية.

Find-ProcessPEs

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

Get-LibSymbols

يعرض معلومات الرموز من ملفات LIB في Windows.

Get-ObjDump

يعرض معلومات حول ملفات الكائنات (OBJ) في Windows.

مكونات Windows الداخلية

الحصول على وتحليل معلومات نظام Windows منخفضة المستوى.

Get-NtSystemInformation

أداة تستدعي وتحلل مخرجات دالة ntdll!NtQuerySystemInformation. يمكن استخدام هذه الأداة للاستعلام عن معلومات نظام التشغيل الداخلية التي لا تكون مرئية للمستخدم عادةً.

Get-PEB

يُرجع كتلة بيئة العملية (PEB) لعملية.

Register-ProcessModuleTrace

يبدأ تتبعًا لوحدات العملية المحملة

Get-ProcessModuleTrace

يعرض وحدات العملية التي تم تحميلها منذ استدعاء Register-ProcessModuleTrace

Unregister-ProcessModuleTrace

يوقف تتبع وحدة العملية الجاري

Get-SystemInfo

غلاف لـ kernel32!GetSystemInfo

متنوعات

دوال مساعدة متنوعة

Get-Member

دالة وكيل تُستخدم لتوسيع الأمر cmdlet المدمج Get-Member. تضيف المعلمة '-Private' مما يسمح لك بعرض أعضاء .NET غير العامة

Get-Strings

يُفرغ السلاسل من الملفات في كل من Unicode و Ascii. يكرر هذا الأمر cmdlet وظيفة strings.exe من Sysinternals.

ConvertTo-String

يحول بايتات الملف إلى سلسلة لها تطابق واحد لواحد مع البايتات الأصلية للملف. ConvertTo-String مفيد لإجراء التعبيرات العادية الثنائية.

Get-Entropy

يحسب الإنتروبيا لملف أو مصفوفة بايت.

مكتبات

المكتبات المطلوبة من قبل بعض دوال الهندسة العكسية.

Capstone

ربط C# لمحرك التفكيك Capstone.

De4dot

مكتبة قوية لإزالة التشويش .NET وتحليل PE .NET.

PSReflect

وحدة تُستخدم لتعريف التعدادات والهياكل ودوال Win32 في الذاكرة بسهولة.

Formatters

ملفات ps1xml المستخدمة لتنسيق مخرجات دوال PowerShellArsenal المختلفة.

الترخيص

وحدة PowerShellArsenal وجميع البرامج النصية الفردية تخضع لترخيص BSD 3-Clause ما لم يُذكر خلاف ذلك صراحةً.

الاستخدام

ارجع إلى المساعدة القائمة على التعليقات في كل برنامج نصي للحصول على معلومات استخدام مفصلة.

لتثبيت هذه الوحدة، ضع مجلد PowerShellArsenal بأكمله في أحد أدلة الوحدات الخاصة بك. مسارات وحدات PowerShell الافتراضية مدرجة في متغير البيئة $Env:PSModulePath.

مسار الوحدة الافتراضي لكل مستخدم هو: "$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules" مسار الوحدة الافتراضي على مستوى الكمبيوتر هو: "$Env:windir\System32\WindowsPowerShell\v1.0\Modules"

لاستخدام الوحدة، اكتب Import-Module PowerShellArsenal

لرؤية الأوامر المستوردة، اكتب Get-Command -Module PowerShellArsenal

إذا كنت تستخدم PowerShell v3 وتريد إزالة التحذير المزعج 'هل تريد حقًا تشغيل البرامج النصية التي تم تنزيلها من الإنترنت'، بمجرد وضع PowerShellArsenal في مسار الوحدة، قم بتشغيل السطر التالي: $Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerShellArsenal) ) {Get-ChildItem $_ -Recurse | Unblock-File} }

للحصول على مساعدة حول كل أمر فردي، Get-Help هو صديقك.

ملاحظة: تم تصميم جميع الأدوات الموجودة في هذه الوحدة بحيث يمكن تشغيلها بشكل فردي. إن تضمينها في وحدة يساعد ببساطة على زيادة قابلية النقل.

دليل أسلوب البرنامج النصي

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

  • تجنب Write-Host بأي ثمن. دوال/أوامر cmdlet في PowerShell ليست أدوات سطر أوامر! لن يتم النظر في طلبات السحب التي تحتوي على كود يستخدم Write-Host. بدلاً من ذلك، يجب إخراج كائنات مخصصة. لمزيد من المعلومات حول إنشاء كائنات مخصصة، اقرأ هذه المقالات:

    • http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/19/create-custom-objects-in-your-powershell-script.aspx
    • http://technet.microsoft.com/en-us/library/ff730946.aspx
  • إذا كنت تريد عرض معلومات تصحيح الأخطاء ذات الصلة على الشاشة، استخدم Write-Verbose. يمكن للمستخدم دائمًا إضافة '-Verbose'.

  • قدم دائمًا مساعدة وصفية قائمة على التعليقات لكل برنامج نصي. أيضًا، تأكد من تضمين اسمك وترخيص BSD 3-Clause (ما لم تكن هناك ظروف مخففة تمنع تطبيق ترخيص BSD).

  • تأكد من أن جميع الدوال تتبع اتفاقية الفعل-الاسم الصحيحة في PowerShell. استخدم Get-Verb لسرد الأفعال الافتراضية المستخدمة في PowerShell. سيتم النظر في الاستثناءات للأفعال المدعومة على أساس كل حالة على حدة.

  • أفضل أن تكون أسماء المتغيرات مكتوبة بأحرف كبيرة وأن تكون وصفية قدر الإمكان.

  • قدم مسافات منطقية بين الكود الخاص بك. قم بمسافة بادئة للكود لجعله أكثر قابلية للقراءة.

  • إذا وجدت نفسك تكرر الكود، اكتب دالة.

  • تعامل مع جميع الأخطاء المتوقعة وقدم مخرجات ذات معنى. إذا كان لديك خطأ يجب أن يوقف تنفيذ البرنامج النصي، استخدم 'Throw'. إذا كان لديك خطأ لا يحتاج إلى إيقاف التنفيذ، استخدم Write-Error.

  • إذا كنت تكتب برنامجًا نصيًا يتفاعل مع Win32 API، حاول تجنب تجميع C# بشكل مضمن باستخدام Add-Type. حاول استخدام وحدة PSReflect إذا أمكن.

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

  • التوافق مع PowerShell v2 مرغوب فيه بشدة.

  • استخدم المعلمات الموضعية واجعل المعلمات إلزامية عندما يكون ذلك منطقيًا. على سبيل المثال، أبحث عن شيء مثل ما يلي:

    • [Parameter(Position = 0, Mandatory = $True)]
  • لا تستخدم أي أسماء مستعارة إلا إذا كان ذلك منطقيًا لتلقي إدخال الأنابيب. فهي تجعل الكود أكثر صعوبة في القراءة للأشخاص غير المألوفين باسم مستعار معين.

  • حاول ألا تدع الأوامر تستمر لفترة طويلة جدًا. على سبيل المثال، الأنبوب هو مكان طبيعي لفاصل الأسطر.

تنزيل الأداة
  • لا تفرط في استخدام التعليقات المضمنة. استخدمها فقط عندما تكون جوانب معينة من الكود قد تكون مربكة للقارئ.

  • بدلاً من استخدام Out-Null لقمع المخرجات غير المرغوب فيها/غير ذات الصلة، احفظ المخرجات غير المرغوب فيها في $null. يوفر ذلك تحسينًا طفيفًا في الأداء.

  • استخدم القيم الافتراضية للمعلمات الخاصة بك عندما يكون ذلك منطقيًا. من الناحية المثالية، تريد برنامجًا نصيًا يعمل دون الحاجة إلى أي معلمات.

  • اذكر صراحةً جميع التبعيات المطلوبة والاختيارية في المساعدة القائمة على التعليقات لدالتك. يجب أن توجد جميع تبعيات المكتبة في مجلد 'Lib'.

  • إذا قام برنامج نصي بإنشاء كائنات مخصصة معقدة، قم بتضمين ملف ps1xml يقوم بتنسيق مخرجات الكائن بشكل صحيح. يتم تخزين ملفات ps1xml في Lib\Formatters.