
منصة تحليل تجميع قابلة للتوسع لفهرسة، بحث عن المستنسخات، وتصنيف الملفات القابلة للتنفيذ باستخدام تقنيات ثابتة وديناميكية والتعلم الآلي عبر معماريات متعددة.
Kam1n0 v2.x هي منصة قابلة للتوسع لإدارة وتحليل التجميع. تتيح للمستخدم فهرسة مجموعة (كبيرة) من الملفات الثنائية في مستودعات مختلفة وتوفر خدمات تحليلية متنوعة مثل البحث عن الاستنساخ والتصنيف. تدعم الوصول متعدد المستأجرين وإدارة مستودعات التجميع باستخدام مفهوم التطبيق. تحتوي مثيلات التطبيق على مستودع حصري خاص بها وتوفر خدمة تحليلية متخصصة. بالنظر إلى تنوع مهام الهندسة العكسية، يوفر خادم Kam1n0 v2.x حالياً ثلاثة أنواع مختلفة من تطبيقات البحث عن الاستنساخ: Asm-Clone و Sym1n0 و Asm2Vec، بالإضافة إلى تصنيف الملفات القابلة للتنفيذ استنادًا إلى Asm2Vec. يمكن إضافة نوع تطبيق جديد إلى المنصة.
يمكن للمستخدم إنشاء مثيلات تطبيق متعددة. يمكن مشاركة مثيل تطبيق بين مجموعة محددة من المستخدمين. يمكن لمالك التطبيق التحكم في صلاحيات القراءة والكتابة لمستودع التطبيق وحالة التشغيل والإيقاف. يمكن لخادم Kam1n0 v2.x خدمة التطبيقات بشكل متزامن باستخدام عدة تجمعات موارد مشتركة.
تم تطوير Kam1n0 بواسطة Steven H. H. Ding و Miles Q. Li تحت إشراف Benjamin C. M. Fung من مختبر تنقيب البيانات والأمان في جامعة McGill بكندا. حصل على الجائزة الثانية في مسابقة إضافات Hex-Rays 2015. إذا وجدت Kam1n0 مفيدًا، يرجى الاستشهاد بورقة البحث الخاصة بنا:
S. H. H. Ding, B. C. M. Fung, and P. Charland. Kam1n0: MapReduce-based Assembly Clone Search for Reverse Engineering. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (SIGKDD), pages 461-470, San Francisco, CA: ACM Press, August 2016.
S. H. H. Ding, B. C. M. Fung, and P. Charland. Asm2Vec: boosting static representation robustness for binary clone search against code obfuscation and compiler optimization. In Proceedings of the 40th IEEE Symposium on Security and Privacy (S&P), 18 pages, San Francisco, CA: IEEE Computer Society, May 2019.
تحاول تطبيقات Asm-Clone حل مشكلة البحث الفعال عن الرسوم البيانية الفرعية (أي مشكلة تماثل الرسم البياني) لوظائف التجميع (متوسط وقت الاستعلام <1.3 ثانية ومتوسط وقت الفهرسة <30 مللي ثانية مع 2.3 مليون دالة). بالنظر إلى دالة مستهدفة (تلك الموجودة على اليسار كما هو موضح أدناه)، يمكنها تحديد الرسوم البيانية الفرعية المستنسخة بين الدوال الأخرى في المستودع (تلك الموجودة على اليمين كما هو موضح أدناه).
بحث عن الاستنساخ الدلالي من خلال اختبار التشويب المتباين وحل القيود. نهج هجين ديناميكي-ثابت فعال وقابل للتوسع (متوسط وقت الاستعلام <1 ثانية ومتوسط وقت الفهرسة <100 مللي ثانية مع 1.5 مليون دالة). بالنظر إلى دالة مستهدفة (تلك الموجودة على اليسار كما هو موضح أدناه)، يمكنها تحديد الرسوم البيانية الفرعية المستنسخة بين الدوال الأخرى في المستودع (تلك الموجودة على اليمين كما هو موضح أدناه). تدعم تصور الرسم البياني النحوي المجرد.
يستفيد Asm2Vec من تعلم التمثيل. يفهم العلاقة الدلالية المعجمية لكود التجميع. على سبيل المثال، ترتبط سجلات xmm* دلاليًا بعمليات المتجهات مثل addps. memcpy مشابه لـ strcpy. يوضح الرسم البياني أدناه دوال تجميع مختلفة تم تجميعها من نفس الكود المصدري لـ gmpz_tdiv_r_2exp في مكتبة libgmp. من اليسار إلى اليمين، تم تجميع دوال التجميع باستخدام خيار GCC O0 وخيار GCC O3 وخيار O-LLVM للمُشوّش Control Flow Graph Flattening وخيار LLVM للمُشوّش Bogus Control Flow Graph. يمكن لـ Asm2Vec تحديدها بشكل ثابت على أنها مستنسخات.
في هذا التطبيق، يحدد المستخدم مجموعة من فئات البرامج التي تستند إلى العلاقة الوظيفية ويوفر ملفات ثنائية تنتمي إلى كل فئة. ثم يقوم النظام تلقائيًا بتجميع الدوال في مجموعات حيث تكون الدوال متصلة بشكل مباشر أو غير مباشر بواسطة علاقة الاستنساخ. يتم الاحتفاظ بالمجموعات المميزة للتصنيف وتعمل كتوقيعات لفئاتها. بالنظر إلى ملف ثنائي مستهدف، يوضح النظام درجة انتمائه إلى كل فئة برنامج.