في خطوة تقنية مذهلة، تم الكشف عن طريقة جديدة لاستعادة كود المصدر (Source Code) من функций ثنائية محجوبة، من خلال الجمع بين تقنيات الهندسة العكسية (Reverse Engineering) واسترجاع الكود المبني على أساس النقاط المرجعية (Anchor-Based Retrieval)، وأيضاً الاستفادة من نماذج اللغات الضخمة (Large Language Models). في هذه العملية، يسعى الباحثون إلى تحديد وظيفة المصدر من قاعدة بيانات كود المصدر بدلاً من توليد كود مزيف تقريبي.

تعتمد الطريقة المبتكرة على استخراج النقاط المرجعية مثل السلاسل النصية (Strings) والثوابت (Constants) والمكالمات الخارجية (External Calls) وأسماء الوظائف المتاحة باستخدام أداة Ghidra، ثم يتم استرجاع الملفات المرشحة عبر قاعدة بيانات بحثية مرتبطة بفهرس عكسي. بعد ذلك، يتم تضييق المرشحات إلى مقاطع وظائف محتملة وإعادة ترتيبها باستخدام نموذج لغوي ضخم (LLM) بناءً على تحليل التعليمات البرمجية وفك تشفيرها والبيانات الوصفية للمصدر.

تُظهر التقييمات المدعومة من قاعدة بيانات الكود المصدر عالية الدقة على ملف ثنائي حُذف وتم تحسينه مثل tcpdump أن طريقة استرجاع الكود من الثنائي إلى المصدر تحقق نسبة تغطية تعليمات برمجية تصل إلى 95.2%. ومع ذلك، أظهرت التجارب باستخدام قاعدة بيانات استرجاع قائمة على GitHub أداءً أقل، حيث حققت 35.5% كمتوسط تغطية تعليمات، وكانت تلك النسبة نتيجة لافتقارات في الاسترجاع.

تظهر هذه النتائج أن استرجاع كود المصدر من الثنائي يتفوق في بيئات تحتوي على قواعد بيانات عالية الجودة، ويبقى أداة مفيدة في البيئات المليئة بالضوضاء. هل أنتم مستعدون لاستكشاف عالم هندسة البرمجيات الحديث؟ شاركونا آرائكم!