
PICO خاص بـ Crystal Palace يطبّق استضافة CLR لتنفيذ تجميع .NET في الذاكرة.
PICO خاص بـ Crystal Palace يطبّق استضافة CLR أصلية لتنفيذ تجميعة .NET مرفقة في الذاكرة، باستخدام التقنية نفسها المستخدمة في مولّد شيل كود donut. يتيح لك هذا تحميل أدوات .NET مثل Rubeus أو Seatbelt من كود مستقل عن العنوان دون حفظها على القرص.

ستحتاج إلى MinGW GCC، وأداة zip، وملفات CPL القابلة للتنفيذ اللازمة لربط المشروع. عدّل config.spec لتحديد تجميعة .NET التي تريد ربطها بالمشروع ووسائط سطر الأوامر التي تريد تمريرها. عدّل Makefile لتحديد موقع crystalpalace.jar.
لبناء الـ PICO بمفرده (كملف COFF)، شغّل make pico. لبناء المُشغّل النموذجي وربطه مع الـ PICO، شغّل make runner.
يُكتب المُشغّل النموذجي إلى out/runner.bin. يستدعي التكوين الافتراضي تجميعة Rubeus مرفقة لتنفيذ «asktgt» مع بعض بيانات الاعتماد الوهمية العامة عند تشغيله:

التوقيع الخاص بنقطة دخول الـ PICO هو:
HRESULT (*EXECUTE_ASSEMBLY_PICO)(char *assembly, size_t assembly_len, WCHAR *argv[], int argc);
يجب أن تحتوي الوسيطتان الأوليان على مؤشر إلى تجميعة .NET خام وحجمها. أما الوسيطتان الأخريان فتُستخدمان لتمرير معاملات نصية إلى التجميعة عند استدعائها.
يعمل هذا الـ PICO فقط على استدعاء التجميعة مع الوسائط التي قدمتها، ولا يحاول التقاط المخرجات.
إذا كنت بحاجة إلى توفير مدخلات عبر STDIN أو التقاط المخرجات من STDOUT، فيجب عليك تعديل المُحمِّل لديك لاستخدام استدعاءات WIN32 API مثل CreatePipe() وSetStdHandle() وربط أجهزة الإدخال/الإخراج القياسية في عمليتك بأنبوب مجهول (anonymous pipe). بعدها يمكنك القراءة منه والكتابة إليه كالمعتاد.
clr.h مباشرةً في الـ PICO.