قواعد إعادة الكتابة ونقاط التوقف
الالتقاط يتيح لك أن “تنظر”، أما القواعد ونقاط التوقف فتتيح لك أن “تغيّر”. يجعلك Trace Eagle مالكاً لحركة بياناتك: غيّر الطلبات دون كتابة كود، باستخدام قواعد بسيطة ومباشرة بالنقر والاختيار لإعادة كتابة آلاف التدفقات تلقائياً؛ أو استخدم نقاط التوقف لإيقاف التدفقات وتحريرها واحداً تلو الآخر؛ ولا تحتاج إلى اللجوء إلى السكربتات / الإضافات إلا للمنطق المعقّد الذي لا تستطيع القواعد التعبير عنه فعلاً.
1. قواعد إعادة الكتابة (بالنقر والاختيار، تغييرات تلقائية)
Section titled “1. قواعد إعادة الكتابة (بالنقر والاختيار، تغييرات تلقائية)”أسوأ طريقة لبدء تغيير الطلبات هي كتابة سكربت. وهنا لست مضطراً لذلك: اختر إجراءً من قائمة مرجعية وأدخل قيمة، وهذه هي القاعدة: بسيطة وبديهية وتُطبَّق فور إنشائها.
القواعد سطر واحد لكل قاعدة، بصيغة <match> <action>://<value> (مثال: *.example.com resHeaders://X-Debug: 1). تُتجاهل الأسطر الفارغة وتعليقات #، ويُتحقّق من كل سطر بمفرده، وتُطبَّق التغييرات فوراً عند الحفظ؛ ويمكن تنظيم القواعد في مجموعات مسمّاة وتفعيلها أو تعطيلها مجموعة مجموعة. تأتي الواجهة مع قائمة مرجعية قابلة للنقر: انقر مرة واحدة لإدراج المثال المطابق، ثم عدّل القيمة فقط، دون الحاجة لحفظ أي صياغة.

شروط مطابقة مرنة
Section titled “شروط مطابقة مرنة”- نطاق دقيق:
traceeagle.com(يمكن أن يتضمن بادئة مسارtraceeagle.com/path) - نطاق فرعي بحرف بدل:
*.traceeagle.com(يطابق النطاق الأساسي وجميع النطاقات الفرعية) - تعبير نمطي على الرابط بأكمله:
regex://… - رابط كامل دقيق:
$https://host/path - المنفذ:
:8080 - النفي: أضف
!كبادئة لأي مطابقة
إجراءات إعادة الكتابة المدعومة
Section titled “إجراءات إعادة الكتابة المدعومة”اتجاه الطلب
- إعادة توجيه / تحويل: غيّر عنوان IP الهدف المتّصل به (
host)، أو حوّل إلى رابط كامل مختلف (map-remote، يمكن أن يشير إلى خادم تطوير محلي)، أو مرّر عبر بروكسي http/socks5 أعلى، أو أعِد خصائص شبكة الطلب الخاصة بالعميل إلى ما يماثل عميلاً قياسياً (إعادة إنتاج أمينة). - بيانات وهمية:
mock://200أوmock://200|<body>، أعِد استجابة معدّة مسبقاً دون الوصول إلى الخادم، وهذا منقذ حقيقي عندما تكون الواجهة الأمامية بانتظار واجهة برمجة تطبيقات خلفية. - تعديل سطر الطلب / الترويسات: الطريقة، User-Agent، Referer، مصادقة Basic، X-Forwarded-For، Content-Type / الترميز، Cookie، دمج معاملات الاستعلام، البحث والاستبدال في الرابط.
- تعديل جسم الطلب: استبدال كامل / بحث واستبدال / إلحاق / إضافة في البداية / تفريغ إلى ملف محلي.
اتجاه الاستجابة
- تعديل الحالة / الترويسات: غيّر رمز الحالة، أضف أو أزل أي ترويسة استجابة، Set-Cookie، فعّل CORS بنقرة واحدة، أجبر تنزيل الملف كمرفق، التحكم في التخزين المؤقت (تعطيل التخزين المؤقت أو ضبط max-age)، تعطيل Cookie/الضغط/keep-alive، بحث واستبدال في قيمة الترويسة.
- تعديل جسم الاستجابة: استبدال كامل / بحث واستبدال / إلحاق / إضافة في البداية / دمج JSON سطحي.
- الحقن حسب النوع: فقط عند تطابق Content-Type، حقن أو استبدال سكربتات أو أنماط أو مقتطفات داخل HTML / JS / CSS.
الشبكة والبروتوكول
- التفريغ إلى ملف: بالإضافة إلى جسم الطلب / الاستجابة، يمكن أيضاً تفريغ الطلب / الاستجابة الخام الكامل إلى ملف محلي بنقرة واحدة، للأرشفة أو التحليل دون اتصال.
- محاكاة شبكة ضعيفة: تأخير الطلب / الاستجابة (بالميلي ثانية)، تقييد النطاق الترددي (مع إعدادات مسبقة 2G / 3G / 4G).
- إعادة كتابة إطارات WebSocket: استبدال
old=>newحسب الاتجاه (كلا الاتجاهين / من العميل إلى الخادم / من الخادم إلى العميل). - إعادة كتابة TCP / UDP الخام: استبدال حسب الاتجاه على تدفقات البايت غير المرتبطة بـ HTTP / رزم بيانات SOCKS5 UDP.
قيم ديناميكية داخل القواعد
Section titled “قيم ديناميكية داخل القواعد”يمكن أن تستخدم قيم القواعد متغيرات ديناميكية مثل ${url} ${host} ${port} ${method} ${status} ${now} ${random} ${randomUUID} ${req.headers.X} ${res.headers.X}، بالإضافة إلى قيم مسمّاة مخصّصة {name} (عرّف قيمة مشتركة مرة واحدة واستخدمها في كل مكان). تُستخدم القيم المسمّاة {name} أساساً في إعادة كتابة الطلب / الاستجابة؛ أما استبدال قيم إعادة كتابة إطارات WebSocket فيدعم ${...}.
2. نقاط التوقف (التحرير اليدوي)
Section titled “2. نقاط التوقف (التحرير اليدوي)”بالنسبة للتدفقات التي تحتاج إلى تحكّم دقيق حالة بحالة، استخدم نقطة توقف لإيقاف التنفيذ وإظهار محرر قبل إرسال الطلب أو قبل عودة الاستجابة.
طريقتان للتفعيل
Section titled “طريقتان للتفعيل”- مفعّلة بقاعدة: استخدم قاعدة
breakpoint://req|res|bothلتحديد التدفقات المراد اعتراضها بدقة. - مفتاح اعتراض عام: فعّل الاعتراض للجلسة بأكملها، ثم يمكن اختيارياً تضييق النطاق باستخدام قواعد فلترة الاعتراض (تصفية حسب النطاق / الطريقة / المرحلة)؛ وبدون قواعد، يُعترض كل شيء.
ما يمكن تغييره بعد الاعتراض
Section titled “ما يمكن تغييره بعد الاعتراض”- مرحلة الطلب: الطريقة، الرابط (يتبع المضيف الرابط)، الترويسات، الجسم.
- مرحلة الاستجابة: رمز الحالة، ترويسات الاستجابة، جسم الاستجابة.
- تجاهل مباشر: يؤدي Abort إلى إسقاط هذا الطلب / الاستجابة (يستلم العميل خطأ بوابة).
- التدفقات التي تطابق عدة نقاط توقف تصطف بالانتظار لكي تتعامل معها: يمكنك استئناف كل واحدة (Resume) أو تجاهلها (Abort) أو استئناف الكل دفعة واحدة. يُستأنف تلقائياً أي تدفق تُرك دون معالجة لفترة طويلة دون تغيير، حتى لا تتعطل حركة البيانات إلى ما لا نهاية.
3. السكربتات والإضافات (أتمتة متقدمة)
Section titled “3. السكربتات والإضافات (أتمتة متقدمة)”بالنسبة للمنطق الذي لا تستطيع القواعد التعبير عنه، سلّمه إلى سكربت أو إضافة:
- سكربتات JavaScript: عرّف
onRequest(req)/onResponse(resp)وعدّل الحقول مباشرة ليصبح التعديل نافذاً. تشمل الأدوات المساعدة المدمجة التسجيل، واستدعاءات صادرة متزامنة إلى خدمات أخرى، وتخزين بيانات مؤقتة عبر الطلبات (لعدّادات / رموز مخبّأة)، وترميز/فك ترميز Base64، وغير ذلك. - إضافات HTTP الصادرة: استخدم قاعدة
plugin://nameلتسليم الطلب / الاستجابة إلى خدمة الإضافة الخاصة بك للمعالجة (تُستدعى عبر HTTP)، وتُعيد الإضافة المحتوى المعاد كتابته (أو تحاكيه مباشرة). مستقلة عن لغة البرمجة، مناسبة للفرق لتنفيذ معالجة مخصّصة بأي لغة.
4. ترتيب المعالجة
Section titled “4. ترتيب المعالجة”يمر التدفق، بالترتيب، عبر: قواعد الطلب، سكربتات الطلب، إضافات الطلب، نقطة توقف الطلب، التمرير / المحاكاة، قواعد الاستجابة، سكربتات الاستجابة، إضافات الاستجابة، نقطة توقف الاستجابة. النمط بسيط: القواعد التلقائية أولاً، ثم السكربتات، ثم الإضافات، ولا تتدخل نقطة التوقف يدوياً إلا في النهاية، كل واحدة تؤدي عملها الخاص دون التدخل في عمل الأخرى.
العودة إلى التقاط عبر البروكسي · ذو صلة: التركيب وإعادة الإرسال