REA: دع وكلاء الذكاء الاصطناعي يساعدونك في إجراء الهندسة العكسية للبرامج التي لا يتوفر شيفرتها المصدرية
يربط مشروع REA مفتوح المصدر (Reverse Engineer Anything) أدوات تحليل الهندسة العكسية بوكلاء البرمجة بالذكاء الاصطناعي، مثل Claude Code وCodex وCursor. إذا أعجبتك ميزة في تطبيق شخص آخر، يمكنك أن تطلب من الوكيل تحليل البرنامج وشرح كيفية تنفيذ الميزة، مع تقديم الأدلة، ثم كتابة ميزة مشابهة في مشروعك. وتعني الهندسة العكسية استنتاج كيفية كتابة برنامج مُجمّع انطلاقًا منه، عندما لا يتوفر شيفرته المصدرية.
REA بحد ذاته خدمة MCP. وMCP واجهة عامة تتيح لوكلاء الذكاء الاصطناعي استدعاء أدوات خارجية؛ وبعد ربطها، يستطيع الوكيل استدعاء وظائف التحليل في REA مباشرةً ضمن المحادثة. يكفي للتثبيت تنفيذ الأمر npx rea-agents setup، إذ سيُسجَّل لدى وكلاء مثل Claude Code وCodex وCursor وGemini CLI وGrok Build. وقبل تعديل الإعدادات، ينشئ نسخة احتياطية ويطلب تأكيدك. وإذا كنت لا تستخدم وكيلاً، يمكنك أيضًا تنفيذ الأوامر مباشرةً في الطرفية.
يمكنه تحليل أنواع كثيرة من البرامج. فالبرامج الأصلية، أي تلك التي تُجمّع مباشرةً إلى شيفرة آلة، تحتاج إلى أدوات تفكيك مثل Hopper أو Ghidra أو IDA لتحويل شيفرة الآلة إلى لغة التجميع وشيفرة زائفة تشبه لغة C. أما تطبيقات Electron، وهي برامج سطح مكتب مصنوعة بتقنيات الويب مثل Notion، فيمكن تحليلها مباشرةً عبر فك أرشيف ASAR الموجود في حزمة التثبيت، وفهم بنية الوحدات والاتصال بين العمليات، من دون الحاجة إلى أدوات إضافية. كما يدعم برامج .NET وتطبيقات أندرويد APK والبرامج الثابتة ومواقع الويب وملفات التقاط حركة الشبكة وشيفرة البايت لعقود إيثيريوم، فضلًا عن تسجيل سلوك البرامج أثناء تشغيلها على Linux وmacOS.
يُجرى التحليل على جهازك، ولا يرفع REA البرنامج المستهدف. لكن نتائج التحليل تُرسل إلى مزوّد خدمة النموذج الذي يستخدمه الوكيل، وتعتمد طريقة التعامل مع البيانات على سياسات كل مزوّد.
يقدّم المشروع ثلاثة أمثلة. الأول لعبة كسر الطوب الكلاسيكية DX-Ball: بدءًا من استدعاء لتشغيل مؤثر صوتي، يتتبّع التحليل الدالة التي تحسب توزيع الصوت بين القناتين اليمنى واليسرى وفقًا لموقع الكرة، ثم يعيد بناء الشيفرة الزائفة غير المكتملة على هيئة شيفرة C. وقد تطابقت نتائج 3205 مجموعات اختبار مع اللعبة الأصلية، كما تطابقت البايتات الـ63 التي جُمّعت تمامًا مع الأصل. والثاني إصدار سطح المكتب من Notion: تتبّع المسار الكامل لعملية النسخ واللصق من الواجهة، مرورًا بالنص البرمجي للتحميل المسبق والاتصال بين العمليات، وصولًا إلى العملية الرئيسية. والثالث لعبة «توهـو غينسوكيو» (TH04) للحاسوب الياباني القديم PC-98: استُعيدت خوارزمية زوايا حلقات رصاصات وابل الطلقات من تعليمات 16 بت.
بالنسبة إلى باحثي الأمن ومطوري نسخ الألعاب القديمة والعاملين على حفظ البرمجيات، كان عليهم سابقًا قراءة أدوات التفكيك سطرًا سطرًا وتتبع الاستدعاءات طبقة تلو الأخرى. أما الآن، فيمكنهم ترك الوكيل يتولى التتبع أولًا، ثم التحقق بأنفسهم من الأدلة التي يقدمها. كما أصبح أمام المطورين العاديين مسار إضافي لدراسة كيفية تنفيذ ميزة لدى أحد المنافسين.
يُظهر ملف README أن المشروع حصد بالفعل 50 ألف نجمة على GitHub. ونُشرت حزمة npm للمرة الأولى في يوليو من هذا العام، وصدر أحدث إصدار، 6.3.0، اليوم.
ينبغي الانتباه إلى نقطتين قبل الاستخدام. يصرّح المشروع بأنه مخصص لأبحاث الهندسة العكسية القانونية فقط، وأن المستخدم مسؤول عن الحصول على التصاريح والالتزام بالقوانين. وقد تنتهك الهندسة العكسية لبرامج الآخرين اتفاقيات المستخدم أو قوانين حقوق النشر. كما يوضح المشروع أنه لم يُصدر أي عملة مشفرة ولم يؤيد أيًا منها، وأن أي رموز تستعير اسم REA لا علاقة لها به.
https://github.com/morluto/rea
يربط مشروع REA مفتوح المصدر (Reverse Engineer Anything) أدوات تحليل الهندسة العكسية بوكلاء البرمجة بالذكاء الاصطناعي، مثل Claude Code وCodex وCursor. إذا أعجبتك ميزة في تطبيق شخص آخر، يمكنك أن تطلب من الوكيل تحليل البرنامج وشرح كيفية تنفيذ الميزة، مع تقديم الأدلة، ثم كتابة ميزة مشابهة في مشروعك. وتعني الهندسة العكسية استنتاج كيفية كتابة برنامج مُجمّع انطلاقًا منه، عندما لا يتوفر شيفرته المصدرية.
REA بحد ذاته خدمة MCP. وMCP واجهة عامة تتيح لوكلاء الذكاء الاصطناعي استدعاء أدوات خارجية؛ وبعد ربطها، يستطيع الوكيل استدعاء وظائف التحليل في REA مباشرةً ضمن المحادثة. يكفي للتثبيت تنفيذ الأمر npx rea-agents setup، إذ سيُسجَّل لدى وكلاء مثل Claude Code وCodex وCursor وGemini CLI وGrok Build. وقبل تعديل الإعدادات، ينشئ نسخة احتياطية ويطلب تأكيدك. وإذا كنت لا تستخدم وكيلاً، يمكنك أيضًا تنفيذ الأوامر مباشرةً في الطرفية.
يمكنه تحليل أنواع كثيرة من البرامج. فالبرامج الأصلية، أي تلك التي تُجمّع مباشرةً إلى شيفرة آلة، تحتاج إلى أدوات تفكيك مثل Hopper أو Ghidra أو IDA لتحويل شيفرة الآلة إلى لغة التجميع وشيفرة زائفة تشبه لغة C. أما تطبيقات Electron، وهي برامج سطح مكتب مصنوعة بتقنيات الويب مثل Notion، فيمكن تحليلها مباشرةً عبر فك أرشيف ASAR الموجود في حزمة التثبيت، وفهم بنية الوحدات والاتصال بين العمليات، من دون الحاجة إلى أدوات إضافية. كما يدعم برامج .NET وتطبيقات أندرويد APK والبرامج الثابتة ومواقع الويب وملفات التقاط حركة الشبكة وشيفرة البايت لعقود إيثيريوم، فضلًا عن تسجيل سلوك البرامج أثناء تشغيلها على Linux وmacOS.
يُجرى التحليل على جهازك، ولا يرفع REA البرنامج المستهدف. لكن نتائج التحليل تُرسل إلى مزوّد خدمة النموذج الذي يستخدمه الوكيل، وتعتمد طريقة التعامل مع البيانات على سياسات كل مزوّد.
يقدّم المشروع ثلاثة أمثلة. الأول لعبة كسر الطوب الكلاسيكية DX-Ball: بدءًا من استدعاء لتشغيل مؤثر صوتي، يتتبّع التحليل الدالة التي تحسب توزيع الصوت بين القناتين اليمنى واليسرى وفقًا لموقع الكرة، ثم يعيد بناء الشيفرة الزائفة غير المكتملة على هيئة شيفرة C. وقد تطابقت نتائج 3205 مجموعات اختبار مع اللعبة الأصلية، كما تطابقت البايتات الـ63 التي جُمّعت تمامًا مع الأصل. والثاني إصدار سطح المكتب من Notion: تتبّع المسار الكامل لعملية النسخ واللصق من الواجهة، مرورًا بالنص البرمجي للتحميل المسبق والاتصال بين العمليات، وصولًا إلى العملية الرئيسية. والثالث لعبة «توهـو غينسوكيو» (TH04) للحاسوب الياباني القديم PC-98: استُعيدت خوارزمية زوايا حلقات رصاصات وابل الطلقات من تعليمات 16 بت.
بالنسبة إلى باحثي الأمن ومطوري نسخ الألعاب القديمة والعاملين على حفظ البرمجيات، كان عليهم سابقًا قراءة أدوات التفكيك سطرًا سطرًا وتتبع الاستدعاءات طبقة تلو الأخرى. أما الآن، فيمكنهم ترك الوكيل يتولى التتبع أولًا، ثم التحقق بأنفسهم من الأدلة التي يقدمها. كما أصبح أمام المطورين العاديين مسار إضافي لدراسة كيفية تنفيذ ميزة لدى أحد المنافسين.
يُظهر ملف README أن المشروع حصد بالفعل 50 ألف نجمة على GitHub. ونُشرت حزمة npm للمرة الأولى في يوليو من هذا العام، وصدر أحدث إصدار، 6.3.0، اليوم.
ينبغي الانتباه إلى نقطتين قبل الاستخدام. يصرّح المشروع بأنه مخصص لأبحاث الهندسة العكسية القانونية فقط، وأن المستخدم مسؤول عن الحصول على التصاريح والالتزام بالقوانين. وقد تنتهك الهندسة العكسية لبرامج الآخرين اتفاقيات المستخدم أو قوانين حقوق النشر. كما يوضح المشروع أنه لم يُصدر أي عملة مشفرة ولم يؤيد أيًا منها، وأن أي رموز تستعير اسم REA لا علاقة لها به.
https://github.com/morluto/rea