
تشغيل شيفرة ARM64 المحفوظة في Node أو في متصفح؛ وفحص بكسلات الصورة المفكوكة ترميزها والذاكرة المهيّأة.
شغّل الشيفرة الأصلية المحفوظة. أعد فتح حالتها المُهيّأة. تُغلّف Capsulith دوال ARM64 مختارة وعقود استدعائها والذاكرة المملوكة لها من أجل Node أو المتصفح. احتفظ بالتعليمات الأصلية واستأنف كائنًا مُهيّأ في عامل (worker) جديد، دون التطبيق الأصلي.
يمكن لفاكّ ترميز قديم أو دالة تحقّق من المجموع (checksum) أو روتين ثنائي معزول أن يصبح واجهة برمجية صغيرة قابلة لإعادة الاستخدام. تُظهر Capsulith أي البايتات والاعتماديات تنتقل معه، وأين يقرأ التنفيذ ويكتب، ولماذا لا يمكن استخراج ميزة عندما تتطلب حالة غير مدعومة.
افتح منصة عمل الصورة الأصلية. اختر Load & run example للعمل الفني QOI المُجهّز، أو أحضر صورة PNG أو QOI صغيرة. يكتب مُرمّز QOI الأصلي المستخرج ملفًا، ويعيد فاكّ ترميز أصلي منفصل بكسلاته، ويمكنك فحص بايتات RGBA الفردية. احتفظ بتخصيص البكسلات المُهيّأ هذا، وأغلق العامل، ثم استعده وحرّره في عامل جديد. لا حاجة إلى حساب أو خادم رفع أو ملف ثنائي أصلي أو مُصرّف لتشغيل منصة العمل العامة.
يستخدم PNG بيانات RGBA المفكوكة ترميزًا من المتصفح كخط أساس صريح للمقارنة؛ أما المدخلات QOI فقط فلا تملك مقارنة مستقلة ببكسلات المصدر. الصور محدودة بـ 256 بكسل لكل بُعد و1 MiB. هذا عرض توضيحي لمكوّن أصلي مُجهّز بمصدر معروف، وليس مُرمّزًا جديدًا أو استعادة صيغة شاملة. مصدر QOI الأصلي والعقود وضوابط أصلية/FFmpeg مستقلة وأوامر Node المستقلة.

جرّب عرض الكائن في المتصفح دون مفتاح واضغط Run lifecycle. ينفّذ التعليمات المستخرجة فعليًا محليًا؛ ولا يستدعي خادمًا لتوليد النتائج.
نزّل حزمة Python wheel من الإصدار، ثم:
python3 -m pip install capsulith-0.3.0-py3-none-any.whl
capsulith studio
افتح http://127.0.0.1:6359. تحتفظ وظيفة Studio بفك ترميز LZ4 وعينات xxHash. افتح Object studio، واختر Open original LZ4 example، ثم Run lifecycle لإنشاء وضغط وحفظ قاموس ونقطة تحقق واستعادة ومتابعة وتحرير تدفق مُجمَّع فعلي. لا حاجة إلى مفتاح API أو خدمة مدفوعة. يلزم Python 3.10+ وCapstone للاستخراج؛ ينفّذ المتصفح عبر محاكي WebAssembly المضمّن. يلزم Node 20+ فقط لـ CLI أو لاستدعاءات Node المصدَّرة.
يقبل Studio مكتبة dylib بصيغة ARM64 Mach-O، ويجرد دوالها، ويستخرج جذرًا محددًا، ويتيح لك تحرير المخازن المؤقتة ومعاملات السجلات والمدخلات العددية ونوع الإرجاع. يربط عرض التبعيات المساعدات/الاستيرادات بمواقع الاستدعاء الفعلية والتعليمات الأصلية. ترتبط أحداث التنفيذ بمنطقة الذاكرة المسماة والكود الأصلي. تُظهر عمليات التنفيذ المتوقفة أدلة جزئية دون ادعاء نتيجة ناجحة.
Export portable capsule ينزّل البايتات والعقد والمدخلات الحالية، ومشغّلات Node/المتصفح، والخلفية المثبّتة، وكود مصدر الخلفية الكامل ونصوص البناء والتراخيص. فك الضغط وشغّل node run.cjs، أو قدّم ذلك المجلد عبر HTTP وافتح مشغّل المتصفح المستقل الخاص به. لا حاجة إلى Python أو Capstone أو الملف الثنائي الأصلي لتلك الاستدعاءات. تقبل واجهة API المصدَّرة مدخلات مختلفة، وتدعم الإلغاء، وتفرض الحدود المعلنة.
طرق LZ4 الأصلية، والوصول المستعاد إلى القاموس، والمقارنة الأصلية الدقيقة في object Studio
يستورد object Studio ملف JSON لوحدة مستخرجة أو يقرأ قطعة ARM64 Mach-O التي تملكها مع طرق مسماة معلنة صراحةً. افحص الجذور والقطع والتبعيات الفعلية؛ خصّص مخازن مؤقتة للمستدعي مسماة من hex أو من ملف محلي؛ اختر طريقة وقدّم مراجع مناطق مُنمَّطة أو أعدادًا صحيحة. تُظهر خريطة الذاكرة المناطق الحقيقية المملوكة والتهيئة، ببايتات خام غير شفافة بدلًا من حقول مُخمَّنة. تأتي القيم المُرجعة ونطاقات الوصول والعدادات والأحداث المحدودة من التعليمات الأصلية.
احفظ نقطة تحقق قبل عملية قد تحتاج إلى التراجع عنها. استعادة وحدة مطابقة تحافظ على عناوين الضيف ومعرّفات المناطق لكنها تنشئ هوية نسخة جديدة؛ أعد ربط المراجع بمعرّف المنطقة. تحرير المدخلات يبطل الأدلة القديمة، والخطأ أو الإلغاء يتطلب نقطة تحقق سابقة أو نسخة جديدة. تحرير الذاكرة الأصلية (native free) وإطلاق مخزن المستدعي عمليتان منفصلتان صريحتان في دورة الحياة. لا يخمّن وقت التشغيل أبدًا ما إذا كانت المؤشرات الأصلية لا تزال تشير إلى مخزن مؤقت.
capsulith module examples/lz4/liblz4.dylib \
--methods examples/native-objects/methods.json --out stream.module.json
node runtime/object-cli.cjs examples/native-objects/start.json \
--module stream.module.json --checkpoint-out first.checkpoint.json
# The first Node process has ended. This command opens a fresh worker.
node runtime/object-cli.cjs examples/native-objects/continue.json \
--module stream.module.json --checkpoint first.checkpoint.json
capsulith export-module stream.module.json \
--checkpoint first.checkpoint.json --out stream-object.zip
اختر أسماء مخرجات جديدة؛ ترفض أوامر تصدير الوحدة ونقطة التحقق والكائن الكتابة فوق الملفات الموجودة. برامج العمليات المرفقة خاصة بدورة حياة LZ4 الموثقة. تحتاج الوحدات العامة إلى طرقها وبرامج عملياتها الخاصة المعلنة من قبل المستدعي.
يحتوي تصدير الكائن على وحدة التعليمات الأصلية، وbytes نقطة التحقق المحتفظ بها الاختيارية، ومشغلات Node/المتصفح المستقلة، وStudio الكائن، ووقت التشغيل وملفات المصدر/البناء الخلفية المقابلة، والتراخيص، وبيان ملف يحتوي على bytes وSHA256 والأذونات. قدّم المجلد وافتح index.html لاستعادة نقطة التحقق المجمّعة دون نقاط نهاية API، أو شغّل node run.cjs your-operations.json --checkpoint checkpoint.json. لا حاجة إلى الملفات الثنائية الأصلية وحزم Python والمترجمات للتنفيذ. تتضمن نقطة التحقق bytes المستدعي المحتفظ بها؛ افحصها قبل المشاركة. راجع واجهة برمجة تطبيقات الكائن وتنسيق العملية والمثال الأصلي.
capsulith inspect legacy.dylib
capsulith extract legacy.dylib --root _decode \
--contract decode-contract.json --out decode.capsule.json
capsulith run decode.capsule.json --inputs input.json
capsulith export decode.capsule.json --inputs input.json --out decoder.zip
اختيار الجذر يقبل أيضًا عنوان بداية دالة موثّقًا، مثل --root 0x440. الرمز المُصدَّر ليس نموذجًا أوليًا (prototype). أنت توفّر عقد الاستدعاء الفعلي؛ لا يستنتج Capsulith واجهة ABI (القواعد التي تضع الوسائط والقيم المُعادة في السجلات). يحدّد دليل وقت التشغيل المخازن المؤقتة، والأعداد الصحيحة 32/64 بت، واستيرادات الذاكرة وحدودها. examples/xxhash/contract.json مثال كامل بثلاث وسائط.
LC_FUNCTION_STARTS. قد تُجرَّد أسماء الدوال المساعدة الخاصة؛ يجب أن تبقى حدود الدوال.__const/__cstring للقراءة فقط، واستيرادات صريحة محدودة لـ memmove وmemcpy وmemset.malloc وbzero وfree، وبايتات كومة مملوكة ومهيّأة، ونقاط تفتيش مرتبطة بالكود عند حدود الطرق. لا يُستنتج أي تخطيط للكومة أو إعادة كتابة للمؤشرات.