
أداة حقن تستند إلى Frida ومجموعة أدوات ربط الأساليب المُدارة لـ .NET Framework لتتبع وقت التشغيل، وحل نقاط الدخول الأصلية، والتحليل الديناميكي لعمليات Windows.
يحتوي هذا المستودع على مشروعين مصممين للاستخدام معًا:
Frida.dll)تستهدف هذه المشاريع Windows وتفترض أنك تقوم باختبار عمليات تملكها أو لديك إذن لاختبارها.
يقوم Frida بربط عناوين التعليمات البرمجية الأصلية. في .NET Framework، يتم تجميع الطرق المُدارة في وقت التشغيل (JIT) إلى تعليمات برمجية أصلية، ولكن:
لذا فإن النمط العام هو:
InjectorCli لربط/إطلاق هدف وتحميل وكيل Frida JavaScript.ManagedHookHostProj.dll لـ:
RuntimeHelpers.PrepareMethod)GetFunctionPointer)Interceptor.attach(entrypoint, ...) لتتبع الاستدعاءات/ تسجيل الوسائط/ (اختياريًا) تغيير السلوك.InjectorCli (C#)
Frida.DeviceManager ويختار جهازًاFrida.Script من ملف JavaScript الخاص بك ويحملهscript.Messageالوكيل (JavaScript)
CreateFileW، MessageBoxW)Module.load()ResolveMethod) عبر NativeFunctionDescribeObjectUtf16 + FreeUtf16) بدلاً من تحليل تخطيط سلسلة CLRGetLastErrorUtf16 عند فشل الحلManagedHookHostProj (مكتبة فئات C# مع تصديرات)
ReadInt32 / WriteInt32 / WriteBool)GetLastErrorUtf16, ClearLastError)لتوضيح كيفية عمل كل هذا، سنفترض أن العملية الهدف مُجمَّعة لاستهداف بنية وحدة المعالجة المركزية 32 بت (WoW64).
frida-clr x86Frida.dll x86 لحقنها في عملية هدف x86.cd C:\path\to\frida-clr
configure.bat --prefix="%CD%\dist-x86" --build=windows-x86-md
cd build
make.bat
make.bat install
تأكد من أن لديك:
dist-x86\bin\Frida.dll (PE32)InjectorCli (x86)تحتاج إلى فتح InjectorCli.sln في Visual Studio، وتعيين هدف البناء إلى Release | x86.
أو من موجه أوامر مطور:
msbuild \InjectorCli\InjectorCli.sln /p:Configuration=Release /p:Platform=x86
Frida.dll الخاص بك موجودًا في dist-x86\bin\Frida.dll، فقم بتحديث المرجع في InjectorCli.csproj وفقًا لذلك.ManagedHookHostProj (x86)تحتاج إلى فتح ManagedHookHostProj.sln في Visual Studio، وتعيين هدف البناء إلى Release | x86.
أو من موجه أوامر مطور:
msbuild \ManagedHookHostProj\ManagedHookHostProj.sln /p:Configuration=Release /p:Platform=x86
dumpbin /exports examples\ManagedHookHostProj\bin\Release\ManagedHookHostProj.dll
ملاحظة: على x86 + StdCall قد ترى أسماء تصدير مزخرفة (مثل _ResolveMethod@16). يتضمن نص الوكيل المقدم احتياطيًا يحدد الأسماء المزخرفة.
FridaClrInjector.exe --pid 1234 --script hooks\hook_createfilew.js
FridaClrInjector.exe --spawn "C:\Windows\SysWOW64\notepad.exe" --script hooks\hook_messagebox.js
يجب عليك أولاً تحرير hook_managed.js، عن طريق تعيين:
helperDllPath إلى ManagedHookHostProj.dll المبنيtargetAssemblyPath, targetTypeName, targetMethodName, paramSigثم قم بتشغيل:
FridaClrInjector.exe --pid 1234 --script "C:\path\to\hook_managed.js"
paramSig لاختيار التحميل الزائد الصحيح، وإلا فقد تقوم بربط الخطأ.Frida.dll x86 + DLL مساعد x86.MakeString/Box*/DescribeObject) على أنها للتوافق فقط.توثيق Injector:
توثيق DLL المساعد:
توثيق مثال هدف الاختبار: