فحص حركة HTTPS على iPhone من Mac
يأخذك هذا الدليل من هاتف مثبَّت عليه Chute إلى نافذة على الـ Mac تعرض طلبات ذلك الهاتف مفكوكة التشفير، بأجسام الطلب والاستجابة، جاهزة للتصفية والتصدير. يربط أشياء لكلٍّ منها صفحة مرجعية — CA، وقائمة المضيفين، والتسجيل، وقناة التحكم، و Dashboard — بالترتيب الذي تنفّذها به فعلاً، ويقول في كل خطوة ما الذي ينبغي أن تراه قبل المتابعة.
تحتاج إلى:
- Chute iOS على الهاتف، بترخيص. فك تشفير HTTPS والتقاط الأجسام مرخّصان على iPhone؛ وبلا ترخيص يتصل كل ما يلي، لكن صفوف HTTPS تبقى معتمة وتبويبات البيانات فارغة. انظر الترخيص والتفعيل.
- Chute Dashboard على الـ Mac — مجاني، بلا ترخيص.
- كابل USB (موصى به: لا شيء يُفتح على الشبكة، ويعمل على الشبكة الخلوية)، أو الهاتف والـ Mac على شبكة Wi-Fi نفسها.
إن كنت تفضّل ألا تثبّت شيئاً على الـ Mac، فإن وحدة تحكم الويب تعرض الاتصالات والأجسام وإعادات الكتابة نفسها في متصفّح، ولا تحتاج على الهاتف إلا إلى
external-http-controller. الخطوات 1–3 أدناه تنطبق كما هي؛ ومن الخطوة 4 اتبع فتح وحدة تحكم الويب بدلاً من ذلك.
1. ثبّت CA ووثّقه
على الهاتف، في محرر الإعدادات: MITM ← Configure CA ← Generate A New CA Certificate، ثم Install CA Certificate to System، ثم وثّقه في الإعدادات ← عام ← حول ← إعدادات الثقة بالشهادات. الشرح الكامل، بما فيه الخطوة التي يفوّتها الجميع، في صفحة فك تشفير HTTPS.
ينبغي أن ترى: صفحة الشهادة تعرض Trusted CA Certificate. إن عرضت Not Trusted، فمفتاح الثقة في إعدادات الثقة بالشهادات ما زال مطفأً — لن يعمل شيء مما يلي حتى يُشغَّل.
2. حدّد المضيفين المراد فك تشفيرهم
لا يفكّ Chute التشفير إلا للمضيفين الذين تدرجهم. في قسم MitM من المحرر (القسم الذي فيه Configure CA) أضف المضيفين الذين تريد رؤيتهم. ابدأ ضيّقاً — مضيف API للتطبيق الذي تصحّحه — لا بـ *: كل مضيف مفكوك التشفير يكلّف معالج الهاتف، وبعض التطبيقات تثبّت شهاداتها وتتعطّل عند فكّ تشفيرها. ويُستحسن استثناء *.apple.com منذ البداية.
[MITM]
enable = true
hostname = api.example.com, *.example.net, -*.apple.com
القواعد النحوية — المنافذ، والاستثناءات بـ -، والحصر بـ /path — في صفحة فك تشفير HTTPS. ويمكنك لاحقاً إضافة مضيفين وإزالتهم من لوحة MitM Rules في Dashboard وأنت تراقب الأثر، ثم نقل ما يعمل منها إلى الإعداد.
3. شغّل فك التشفير والتسجيل
في لوحة التحكم على الهاتف مفتاحان:
- MitM — فك التشفير مفعّل، لمضيفي الخطوة 2.
- Dump Data — تسجيل أجسام الطلبات والاستجابات (الإعداد
replica). بدونه يعرض Dashboard كل اتصال بقاعدته وسياسته، لكن بلا بيانات.
يمكن تبديل كليهما لاحقاً من شريط أدوات Dashboard أيضاً، فلا بأس إن نسيتهما الآن. ولا يبقى أيٌّ منهما بعد إعادة التشغيل ما لم يكن في الإعداد (replica = true في [General]، و enable = true في [MITM]).
4. اسمح لـ Dashboard بالاتصال
في محرر الإعدادات: External Controller ← External Controller Access.
- فعّل Allow Chute Dashboard/Chute CLI to Connect.
- أدخل Port (أي منفذ حر؛
6170إن لم يكن لك تفضيل) و Password من اختيارك. - Allow Access From Wi-Fi: اتركه مطفأً لـ USB. شغّله فقط إن كنت ستتصل عبر Wi-Fi — فهو يفتح المستمع لكل من يملك كلمة المرور على تلك الشبكة.
- احفظ، وابدأ النفق (أو أعد تشغيله).
ينبغي أن ترى: لوحة التحكم تعرض External Access Port: 6170 (منفذك). إن غاب السطر فالنفق لا يشغّل الإعداد المحفوظ — أعد تشغيله.
5. صِل Dashboard
صِل الهاتف بالـ Mac بالكابل، وإن سُئلت على الهاتف فاضغط الثقة بهذا الكمبيوتر. افتح Chute Dashboard؛ وفي نافذة Chute New Dashboard استخدم قسم USB: Port من الخطوة 4 و Password، ثم اتصل.
عبر Wi-Fi بدلاً من ذلك: قسم Remote، حيث Host = عنوان الهاتف (الإعدادات ← Wi-Fi ← ⓘ، عنوان IP)، والمنفذ وكلمة المرور نفسهما.
ينبغي أن ترى: نافذة Dashboard بعنوان الاتصال، تمتلئ قائمتها Active كلما أنشأ الهاتف اتصالات. استخدم الهاتف بضع ثوانٍ إن كانت فارغة. يمكن أن يخطئ أمران هنا، ولكليهما رسالة واضحة: Password does not match، وعدم فتح النافذة أصلاً — الهاتف غير قابل للوصول (عنوان خاطئ، أو وصول Wi-Fi مطفأ، أو نفق لا يعمل). التفاصيل في صفحة Dashboard.
6. تحقّق من مفتاحي شريط الأدوات
في أعلى قائمة Active مفتاحا الخطوة 3 كما يراهما Dashboard:
- ينبغي أن يقرأ Record Traffic كـ Disable Traffic Recorder — التسجيل مفعّل. إن كان ما زال يقرأ Record Traffic فانقره.
- ينبغي أن يقرأ Enable MitM (N rules) كـ Disable MitM (N rules) — فك التشفير مفعّل، و
Nعدد مضيفي الخطوة 2. إن كانNهو0فقائمة المضيفين لم تصل إلى الهاتف: راجع الخطوة 2 وأعد تشغيل النفق.
7. أعد الإنتاج واعثر على الطلب
نفّذ في التطبيق ما تريد رؤية حركته. ثم ضيّق القائمة: Filter في شريط الأدوات يفتح شريط التصفية؛ اكتب المضيف في Filter Host/URL…، أو علّم MitM Only لإبقاء الصفوف مفكوكة التشفير فقط.
ينبغي أن ترى: صفوفاً لمضيفك فيها M في عمود Flags، و Method حقيقية (GET، POST) و Status بدلاً من CONNECT. افتح أحدها: في تبويب Req Hdr الترويسات ومعاملات الاستعلام والكوكيز؛ و Resp Data يعرض الجسم — شجرة JSON إن كان JSON، وصورة إن كان صورة.
إن كانت صفوف مضيفك تعرض CONNECT بلا M، فالاتصال لم يُفكّ تشفيره. بترتيب الاحتمال: المضيف ليس في القائمة (أو النمط لا يطابق — api.example.com لا يغطي www.example.com)؛ أو MitM مطفأ؛ أو CA مثبَّت لكنه غير موثوق (التطبيق نفسه سيُظهر أخطاء شهادة)؛ أو التطبيق يثبّت شهادته (استثنِ المضيف واقبل أنك لن ترى داخله)؛ أو التطبيق يتكلم HTTP/3 فوق QUIC الذي لا يُفكّ تشفيره — اضبط block-quic لإعادته إلى TCP.
إن كان في الصف M لكن تبويبات البيانات تقول No Data: كان التسجيل مطفأً حين جرى ذلك الاتصال (شغّله وأعد الإنتاج)؛ أو المضيف مستبعَد بـ[Replica] على الهاتف؛ أو الجسم أكبر من 2 MiB فيرفض الهاتف تسليمه.
8. احتفظ بما وجدت
الزر الأيمن على الصفوف: Export Selected as HAR… لملف يُفتح في أدوات مطوّري المتصفّح أو Charles أو Proxyman؛ و Copy curl Command لتكرار طلب من طرفية الـ Mac؛ و Export Selected as CSV… لجدول بيانات. و Export as bin داخل تبويب بيانات يحفظ جسماً واحداً كما التُقط.
9. غيّر شيئاً (اختياري)
لوحات طريقة العرض MitM تحرّر النواة العاملة. تجربتان سريعتان:
- Header Rewrite ← أضف قاعدة لمضيفك: Request، Add،
X-Debug=1. أعد الإنتاج؛ تحمل الصفوف الجديدةHوR، ويقتبس Rules Fired في نافذة التفاصيل قاعدتك. - Map Local ← أجِب نقطة نهاية من ملف. للهاتف يجب أن يكون مسار الملف مما يستطيع الهاتف قراءته، فلا ينطبق File Path في هذه اللوحة (مسار على الـ Mac)؛ استخدم بدلاً منه صيغة
base64=للقاعدة من محرر الهاتف أو وحدة تحكم الويب — انظر الملاحظة تحت أدوات MitM. الصفوف المحاكاة تحملK.
القواعد المضافة هنا تختفي عند إعادة تشغيل النفق. ومتى عملت إحداها فاكتبها في الإعداد — الصفحات المرجعية: إعادة كتابة الرابط، إعادة كتابة الترويسات، إعادة كتابة المحتوى، استجابة وهمية.
عند الانتهاء
- أطفئ Dump Data، أو اضبط
replica = false: تتراكم الأجسام على الهاتف ما دام التسجيل مفعّلاً. - أطفئ Allow Access From Wi-Fi مجدداً إن كنت شغّلته.
- اترك CA مثبَّتاً إن كنت ستكرر هذا؛ وإلا فأزله من الإعدادات ← عام ← VPN وإدارة الجهاز.
هذه الصفحة ترجمة للنسخة الإنجليزية. في حال وجود اختلاف، يُعتمد على النسخة الإنجليزية.
ملاحظة: التطبيق لا يدعم اللغة العربية حاليًا.