
أداة تحليل JVM في وقت التشغيل لفحص الفئات والطرق والحقول ومجمع الثوابت والبايت كود
splinter هي مجموعة أدوات لتحليل JVM، تتيح للمستخدم عرض الفئات والطرق والحقول والتجمعات الثابتة والبايت كود في وقت التشغيل. تم إنشاؤها واختبارها على OpenJDK build 22.0.2+9-70
عادةً، عندما تفكر في مجموعة أدوات تحليل لـ JVM، قد تظن أنها تستخدم JNI أو JVMTI، ولكن ليس splinter!
splinter هو في الواقع خارجي ولديه هذه الإمكانيات حالياً:
Method و ConstMethodالهدف طويل المدى هو أن يكون أداة تحليل JVM وقت التشغيل من أجل:

قاعدة الكود الحالية هي حالياً أساس، ولكنها لا تزال تعمل
حتى وقت كتابة هذا (11/3/2026)، يمكن لـ splinter:
javaw.exe قابلة للقراءةjvm.dll في العملية المستهدفةjvm.dllClassLoaderDataGraphKlass و InstanceKlassInstanceKlass::_fieldinfo_streamMethod / ConstMethodأحد الأجزاء الأكثر روعة في splinter هو أنه لا يستخدم بايت كود بصيغة ملف الفئة، بل يستخدم في الواقع تعليمات البايت كود وقت التشغيل من مفسر HotSpot والتي تُقرأ لك لاحقاً كمراجع رمزية للفئة/الطريقة/الحقل.
هذا مهم لأن HotSpot يميل في الواقع إلى إعادة كتابة بعض التعليمات في وقت التشغيل. نحن حالياً نتعامل مع:
invokedynamicfast_iaccess_0fast_igetfieldfast_aldcinvokehandle