DEV Community

كيفية إجراء الهندسة العكسية لأي شيء باستخدام Opus 5.5؟

لهندسة أي شيء عكسيًا باستخدام Opus 5.5، اربط النموذج بمحرك تفكيك عبر REA، ثم اعمل على مراحل: وجّه الهدف، وارسم خريطته، وفكّ تجميع أكثر الدوال انشغالًا، ودع Opus يسمّيها ويشرحها، واكتب مواصفة سلوكية فقط، ثم أعد البناء من تلك المواصفة في سياق منفصل.

طابق مستوى الجهد مع كل مرحلة، وأثبت صحة إعادة البناء باختبارات التكافؤ. جرّب Apidog اليوم.

هذه هي النسخة المختصرة من دليل انتشر على X. في 12 أكتوبر 2026، نشر المطوّر Movez دورة من 11 خطوة حول الهندسة العكسية باستخدام Claude Opus 5.5. تجاوزت المليون مشاهدة و2,800 إشارة مرجعية.

تتحقق هذه المقالة من مزاعمها مقابل المصادر، وتصحّح تفصيلين في اختبارات الأداء، وتضيف الخطوة التي تتجاهلها معظم الأدلة: اختبار واجهة الـ API التي يتحدث إليها الهدف.

استخدم هذا فقط على البرمجيات التي تملكها أو المصرّح لك بفحصها. يحدّ ملف README الخاص بـ REA نطاق الأداة بـ«البحث القانوني، والتعليم، وقابلية التشغيل البيني، والحفاظ على البرمجيات، وتحليل البرمجيات التي تملكها أو المصرّح لك بفحصها».

لماذا يحتاج Opus 5.5 إلى أداة لقراءة ملف ثنائي

يقرأ Opus 5.5 النصوص ويكتبها؛ لكنه لا يستطيع تحميل ملف Mach-O أو ELF بنفسه. REA هو خادم MCP يقع بين وكيلك ومحرك التحليل (Hopper أو Ghidra أو IDA للشيفرة الأصلية)، ويشغّل التحليل محليًا ويعيد النتائج مع أدلتها: العناوين، والشيفرة الزائفة، والسلاسل النصية، ومواضع الاستدعاء. يقرأ النموذج تلك النتائج ويطرح السؤال التالي.

تجاوز REA 393,000 نجمة على GitHub بحلول 27 أكتوبر 2026، ارتفاعًا من نحو 115,000 في 12 أكتوبر.

غطّينا ما هو REA وكيف يعمل وحلقة من ست خطوات لإعادة بناء ميزة واحدة في تطبيق عندما انتشر لأول مرة. يركّز هذا الدليل على جانب النموذج: المطالبات، وإعدادات الجهد، والحدود.

الخطوة 1: ثبّت REA واكتب القواعد الداخلية

يحتاج REA إلى Node.js 22.23.4 أو أحدث على خط الإصدار 22 (الإصدارات 24.22.1+ أو 26.12.1+ تعمل أيضًا) بالإضافة إلى npm. الإصدار الحالي على npm هو 6.8.0. سجّله مع وكيلك:

npx rea-agents setup
npm install --global rea-agents
rea --help

يعرض أمر الإعداد معاينة لتغييرات التكوين، ويأخذ نسخة احتياطية مما يلمسه، ويدعم Claude Code وCodex وCursor وGemini CLI وGrok Build.

يحتاج التحليل الأصلي إلى Hopper أو Ghidra أو IDA؛ أما فحص JavaScript وElectron و.NET فلا يحتاج إلى أي محرك.

ثم أعطِ الوكيل قواعد داخلية. كتلة CLAUDE.md في الدورة هي أفضل جزء في السلسلة:

# Reverse-engineering house rules
- Only analyze targets I own or am authorized to examine. State the basis once.
- Tag every claim: observation, inference, or unknown.
- Cite the evidence: address, bytes, pseudocode or call site.
- Start with the smallest overview. Expand only on a concrete gap.
- Separate static facts from runtime facts.
- Build from behavior and public specs, never from copied code or assets.
- Every recovered behavior needs a passing test before "done".

الخطوة 2: اختر مستوى جهد لكل مرحلة

يدعم Opus 5.5 خمسة مستويات للجهد: low و medium و high و xhigh و max. وفقًا لوثائق الجهد من Anthropic، يعمل Opus 5.5 افتراضيًا بمستوى medium، بينما يستهدف xhigh الجولات الوكيلية الطويلة، ويزيل max جميع الحدود على استهلاك الرموز. تضبطه عبر output_config.effort في الـ API، أو عبر إعداد الجهد في وكيلك.

توزيع الدورة نقطة بداية معقولة، وليس قاعدة مقيسة:

  • التوجيه والاستطلاع والتنقل: medium - معظمه استدعاءات أدوات وسرد
  • تسمية الدوال العادية: high - التسمية تتطلب استدلالًا حول تدفق البيانات
  • الجلسات الطويلة متعددة الدوال: xhigh - مصمّمة لجولات تتجاوز 30 دقيقة
  • الشيفرة المبهمة أو كثيفة المؤشرات: max - أعمق استدلال، وأعلى تكلفة

ارفَع الجهد لكل دالة، لا لكل جلسة.

الخطوة 3: وجّه الهدف قبل أن تفتح أي شيء

أكثر خطأ شائع لدى المبتدئين هو فتح مفكك تجميع على تطبيق Electron تظهر شيفرة JavaScript فيه بوضوح. يغطي REA تثبيتات سطح المكتب، والملفات الثنائية الأصلية، وتطبيقات JavaScript وElectron، وتجميعات .NET، وملفات APK لأندرويد، وWASM، والمواقع، ولقطات الشبكة المحفوظة، ولكل منها أداة دخول خاصة.

يجب أن تقتصر مطالبتك الأولى على تحديد الهدف:

I want to understand how [FEATURE] works in [APP] at [ABSOLUTE PATH]. First tell me what kind of target this is (native, Electron/JS, .NET, APK, WASM) and which REA tool opens it. Don't start deep analysis yet. Then give me a one-paragraph map and where you'd look first for [FEATURE]. Keep observations, inferences and unknowns separate.

الهدف من نوع Electron يذهب إلى analyze-javascript-application (الوحدات، والاستيرادات، وحدود IPC، بدون محرك). أما الهدف الأصلي فيذهب إلى open_binary.

الخطوة 4: ارسم السلاسل النصية ورتّب الدوال حسب الإحالات المرجعية

لا تقرأ الشيفرة بعد. بالنسبة لهدف أصلي، ابدأ بجرد:

rea inspect /absolute/path/to/program --provider ghidra --json
rea search /absolute/path/to/program entry --kind procedures --provider ghidra --json

السلاسل النصية هي أسرع دليل لديك: عناوين URL، ورسائل الأخطاء، وأسماء الميزات. كما يخبرك عنوان URL أساسي أو سلسلة [REDACTED CREDENTIAL] بأن الملف الثنائي يتحدث إلى واجهة API، وهذا مهم في الخطوة 9.

بعد ذلك، رتّب الدوال حسب الإحالات المرجعية (كم مكانًا يستدعيها). من المرجح أن تكون دالة لها 147 مستدعيًا بنية أساسية، مثل مُحمِّل إعدادات؛ أما دالة لها مستدعيان فيمكن تأجيلها. اقرأ من الأعلى إلى الأسفل.

الخطوة 5: فكّ تجميع دالة واحدة، ثم دع Opus يسمّيها

فكّ تجميع دالة ساخنة واحدة:

rea function /absolute/path/to/program parseConfig --provider ghidra --json
rea decompile /absolute/path/to/program --procedure=parseConfig --provider ghidra --json

المخرجات خشنة (var_28، وتحويلات النوع في كل مكان). سلّمها إلى Opus 5.5 عند جهد high مع قائمة تحقق ثابتة:

Here is decompiled pseudocode for a function with 147 cross-references. Rename every variable based on how it is used. State the function's purpose in one sentence. List the data structures it reads and writes. Name the pattern (singleton, factory, state machine, observer). Flag missing error handling, validation or security checks. Mark anything you're unsure of instead of guessing.

تخطئ مفككات التجميع في التفاصيل. في عرض DX-Ball من REA، أظهرت الشيفرة الزائفة الأولى دالة تحكم في الصوت لا تستقبل أي مدخل. ولم يكشف عرض التعليمات إلا عن المعامل.

تمرّ إعادة بناء C النهائية بـ 3,205 حالة اختبار x86 أصلية وتعيد إنتاج جميع بايتات الدوال الـ 63 المترجمة، لأن الوكيل قارن الشيفرة الزائفة باللغة التجميعية والمستدعين. اطلب rea instructions عندما تبدو التواقيع غريبة.

الخطوة 6: ضع ميزانية للشيفرة المبهمة، لا تطحنها

هنا تحتاج الدورة المنتشرة إلى تصحيح. فهي تستشهد بمعيار الإبهام من Elastic Security Labs كاختبار لـ«Claude Opus». دراسة Elastic، المنشورة في 21 أبريل 2026، اختبرت Claude Opus 4.6، وليس Opus 5.5.

الأرقام:

  • مرحلة Tigress المحلولة بدون تحويلات: 1 من 1
  • تحويلات مفردة: 4 من 6
  • تحويلات مزدوجة: 3 من 6
  • ثقيلة متعددة الطبقات: 0 من 6

في الإجمال، حلّ Opus 4.6 عدد 8 من 20 هدفًا قابلًا للتقييم (40%). بلغ متوسط النجاحات 2.39 دولار والفشل 4.83 دولار، أي أن الفشل يكلّف نحو ضعف النجاح.

اعتبر هذه الأرقام حدًا أدنى، لا قياسًا لـ Opus 5.5؛ فلم نجد مكافئًا منشورًا للإصدار 5.5.

ثانيًا، تقول الدورة إن أداة تُسمى Caveman «تزيل نحو 75%» من شوائب الشيفرة المفككة. تصف Elastic أداة Caveman بأنها إضافة تقلّل إسهاب النموذج نفسه بنسبة تصل إلى 75%، لا مُرشّحًا للشيفرة المفككة.

الدرس يبقى صالحًا: ضع سقفًا للإنفاق على كل دالة مبهمة، واطلب درجة ثقة من 1 إلى 10، وعلّق أي شيء دون 6 حتى تُحلّ الدوال المجاورة له.

الخطوة 7: قسّم الأهداف الكبيرة إلى متحكم وعاملين

لا تستطيع محادثة واحدة استيعاب 500 دالة؛ فهي تنسى الأسماء وتناقض نفسها. الحل في الدورة هو متحكم لا يحلّل الشيفرة أبدًا، وعاملون يأخذ كل منهم دالة واحدة:

Controller: The function map is in functions.json (address, name, size, xrefs). Cluster functions by call-graph proximity, order clusters by xref count, send each cluster to a worker, inject already-resolved struct names into every brief, and queue a second pass for any result with confidence below 6. Report token spend after each cluster.

يعيد كل عامل العنوان، والغرض، ودرجة ثقة من 1 إلى 10، والبنى (structs) التي استخدمها أو وجدها، وشيفرة نظيفة، مع إعادة استخدام أسماء البنى من المتحكم. شغّل معيار Elastic الشكل نفسه من المتحكم والعاملين.

الخطوة 8: اكتب مواصفة سلوكية فقط في سياق نظيف

إعادة البناء بنهج الغرفة النظيفة تنسخ ما يفعله البرنامج، لا شيفرته أبدًا. اطلب من Opus مواصفة سلوكية فقط: الواجهات العامة، ونموذج البيانات، وكل ميزة كمتطلب قابل للاختبار، وصيغ الملفات من المعايير العامة، ومعالجة الأخطاء.

امنع العناوين، والأسماء المفككة، وأي شيء منسوخ. ثم نفّذ من تلك المواصفة في سياق مختلف لا يرى التحليل إطلاقًا. هذا الفصل هو حدود الغرفة النظيفة. هذه ممارسة هندسية، وليست نصيحة قانونية.

الخطوة 9: استعد عقد الـ API واختبره باستخدام Apidog CLI

غالبًا ما تكشف سلاسل الخطوة 4 عن عنوان URL أساسي وترويسة مصادقة، لذا يعيش جزء من السلوك خلف واجهة API. ولن تتطابق إعادة بنائك إلا إذا التزمت بذلك العقد أيضًا، وتكشف حركة المرور عنه أسرع من لغة التجميع.

سجّل ملف HAR على حساب اختباري تملكه، ودع REA يلخّصه:

rea inspect-web-network-capture /absolute/session.har har --json

ثم دع وكيلك يحوّل تلك اللقطة إلى عقد مختبَر باستخدام Apidog CLI. جهّزه مرة واحدة:

npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install

أعطِ الوكيل مطالبة واحدة:

Import session.har into Apidog project <id>. List the endpoints it created, remove anything that isn't part of [FEATURE], and write one test case per endpoint that asserts status code, required fields and response schema. Run them against the original-service environment, then against my rebuild's environment, and report every endpoint where the two disagree.

يشغّل الوكيل الاستيراد، ويتحقق من أشكال الحمولات قبل الكتابة، ويشغّل البيئتين:

apidog import --project <id> --format har --file ./session.har
apidog endpoint list --project <id>
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog test-case run --project <id> --endpoint <endpointId> -e <originalEnvId> -r cli,json
apidog test-case run --project <id> --endpoint <endpointId> -e <rebuildEnvId> -r cli,json

الحالات نفسها، وبيئتان، وفرق واحد، قابل لإعادة التشغيل عند كل التزام (commit) باستخدام -r junit (انظر دليل Apidog CLI لـ CI/CD). وإذا كنت تفضّل تشغيله من Claude Code، انظر Apidog CLI في Claude Code.

تغطي الخطة المجانية من Apidog ما يصل إلى 4 مستخدمين. وللنهج اليدوي، انظر الهندسة العكسية لواجهات API.

الخطوة 10: أثبت التكافؤ قبل الإطلاق

«أعتقد أنه متطابق» ليست دليلًا. بالنسبة للسلوك المحلي، اطلب من Opus بناء أداة اختبار تغذّي المدخلات نفسها إلى البرنامج الأصلي وإعادة البناء:

Generate 50 inputs: 30 normal, 10 edge (empty, max size, unicode), 10 error (malformed, missing fields, corrupt). Run each through both programs. Compare byte-for-byte where possible, semantically otherwise. Report the match rate and every divergence as cosmetic, behavioral or critical.

مع تشغيل الـ API من الخطوة 9، تحصل على رقمين تعرضهما على أي شخص: معدل تطابق محلي ومعدل تطابق في الـ API. اختبر أثناء البناء، لا في النهاية.

الأسئلة الشائعة

هل الهندسة العكسية باستخدام Opus 5.5 قانونية؟

يعتمد ذلك على نطاقك القضائي، والترخيص، وغرضك. يدعم REA البحث القانوني، والتعليم، وقابلية التشغيل البيني، والحفاظ على البرمجيات، وتحليل البرمجيات التي تملكها أو المصرّح لك بفحصها. احصل على مشورة قانونية قبل إطلاق إعادة بناء تجاريًا.

أي مستوى جهد ينبغي أن أستخدم للهندسة العكسية؟

ابدأ بـ medium للتوجيه والاستطلاع، و high لتسمية الدوال، واحتفظ بـ max للشيفرة المبهمة مع ميزانية لكل دالة. يعمل Opus 5.5 افتراضيًا بمستوى medium.

ما مدى جودة تعامل Claude مع الملفات الثنائية المبهمة؟

المعيار العام الوحيد، من Elastic Security Labs، اختبر Opus 4.6: حلّ 40% من 20 هدف Tigress و0% من الأهداف الثقيلة متعددة الطبقات. ولم يُنشر أي اختبار مكافئ لـ Opus 5.5.

كيف أختبر الـ API التي يستخدمها تطبيق تمت هندسته عكسيًا؟

التقط ملف HAR على حساب اختباري، واستورده باستخدام apidog import --format har، وأنشئ حالات اختبار باستخدام Apidog CLI وشغّلها على كل من الخدمة الأصلية وإعادة بنائك.

هل يرفع REA ملفي الثنائي؟

يشغّل REA التحليل محليًا. فقط النتائج التي يمرّرها وكيلك إلى النموذج (السلاسل النصية، والشيفرة الزائفة) تصل إلى مزوّد النموذج.

Read on DEV Community ↗ ← Back to News

Comments

No comments yet. Start the discussion.