
دليل خطوة بخطوة لاعتراض حركة مرور HTTP/HTTPS على Android وiOS باستخدام Charles Proxy، يغطي وكيل SSL وتثبيت شهادة CA وإعدادات الثقة.
دليل قراصنة الأجهزة المحمولة إلى Charles Proxy 👍
Charles هو وكيل HTTP / مراقب HTTP / وكيل عكسي (Reverse Proxy) يمكّن المطوّر من عرض جميع حركة مرور HTTP و SSL / HTTPS بين جهازه والإنترنت. يشمل ذلك الطلبات والاستجابات وترويسات HTTP (التي تحتوي على ملفات تعريف الارتباط ومعلومات التخزين المؤقت).
Charles -> Proxy -> SSL Proxying Settings... -> SSL Proxying
Charles -> Help -> SSL Proxying -> Install Charles Root Certificate
احصل على عنوان IP الذي يستمع إليه Charles
ifconfig | tr "\n" "→" | tr "\r" "→" | grep -Eo "→en0.*?→en[[:digit:]]" | grep -Eo "inet[[:blank:]+]([0-9]{1,3}\.){3}[0-9]{1,3}" | cut -d' ' -f2 | tr -d "\n" | pbcopy && pbpaste
ifconfig | tr "\n" "→" | tr "\r" "→" | grep -Eo "→en[[:digit:]].*?active→" | grep -v "en0" | grep -Eo "inet[[:blank:]+]([0-9]{1,3}\.){3}[0-9]{1,3}" | cut -d' ' -f2 | tr -d "\n" | pbcopy && pbpaste
شغّل Charles واتركه يعمل
احصل على عنوان IP
تأكد من أن جهاز Android يستخدم نفس الشبكة التي يستخدمها Charles
على جهاز Android
انتقل إلى Settings -> Wi-Fi -> انقر مطوّلًا على الشبكة قيد الاستخدام -> Modify network -> Advanced options -> Proxy -> Manual
شغّل المتصفح، وزر https://chls.pro/ssl، واحفظ الشهادة
تظهر نافذة حوار على الكمبيوتر تسأل "A connection attempt to Charles has been made from the host ..."، ما عليك سوى النقر على زر Allow
<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:android="http://schemas.android.com/apk/res/android">
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
networkSecurityConfig تحت application.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
الآن يجب أن يعمل اعتراض SSL لنوع بناء debug الخاص بتطبيقك، ولكن ليس لنوع بناء release.
شغِّل Charles واتركه يعمل
احصل على عنوان IP
تأكد من أن جهاز iOS يستخدم نفس الشبكة التي يستخدمها Charles
على جهاز iOS
انتقل إلى Settings -> Wi-Fi -> انقر على الشبكة قيد الاستخدام -> اضبط HTTP PROXY على Manual
شغِّل Safari، وقم بزيارة https://chls.pro/ssl (إذا لم يعمل، جرِّب http://www.charlesproxy.com/getssl)، وثبِّت الشهادة
ستظهر نافذة حوار على الكمبيوتر تسأل "A connection attempt to Charles has been made from the host ..."، ما عليك سوى النقر على زر Allow
في حال احتجت إلى التصحيح عبر curl في الطرفية:
لتعيين Charles كخادم وكيل
export http_proxy=http://127.0.0.1:8888 && export https_proxy=$http_proxy
لإزالة الخادم الوكيل
unset http_proxy https_proxy