Anda menjalankan aplikasi, tetapi ia berperilaku tidak terduga: data tidak dimuat, iklan tidak ditampilkan, akun diblokir tanpa alasan yang jelas. Untuk memahami apa yang terjadi "di balik layar", Anda perlu melihat permintaan HTTP nyata antara aplikasi dan server. Inilah tujuan Charles Proxy ā alat yang memungkinkan Anda menangkap, menganalisis, dan memodifikasi lalu lintas aplikasi mobile secara real-time.
Dalam panduan ini, kita akan membahas pengaturan lengkap Charles Proxy untuk iOS dan Android, bekerja dengan HTTPS, memodifikasi respons server, dan integrasi dengan server proxy eksternal ā semua ini tanpa teori yang berlebihan, hanya praktik.
Apa itu Charles Proxy dan mengapa Anda membutuhkannya
Charles Proxy adalah aplikasi desktop untuk Windows, macOS, dan Linux yang berfungsi sebagai proxy HTTP/HTTPS antara perangkat Anda (smartphone, emulator) dan internet. Ketika Anda mengarahkan lalu lintas melalui Charles, program ini merekam semua permintaan dan respons, memungkinkan Anda melihat setiap byte data yang dikirim aplikasi ke server.
Pada dasarnya, Charles melakukan hal yang sama seperti DevTools di browser Chrome ā hanya saja untuk aplikasi mobile yang tidak memiliki inspektor bawaan. Ini sangat penting ketika Anda perlu memahami:
- Parameter apa yang dikirim aplikasi saat otorisasi atau pendaftaran akun
- Header apa (User-Agent, Device-ID, token) yang dikirim ke server
- Bagaimana Facebook, TikTok, atau Instagram memverifikasi perangkat saat login
- Mengapa aplikasi mengembalikan kesalahan dalam kondisi tertentu
- Data apa yang dikirim marketplace saat meminta harga atau katalog
Bagi para arbitrase, Charles Proxy adalah alat intelijen: Anda dapat melihat data fingerprint yang dikumpulkan Facebook Ads dari perangkat dan memahami mengapa akun diblokir segera setelah login. Spesialis SMM menggunakan Charles untuk menganalisis API Instagram dan TikTok untuk memahami batasan dan pola permintaan. Pengembang dan penguji menggunakannya untuk mensimulasikan respons server dan memeriksa perilaku aplikasi dalam situasi yang tidak biasa.
Fitur utama Charles Proxy:
- Menangkap lalu lintas HTTP dan HTTPS (termasuk TLS 1.3)
- Melihat isi permintaan dan respons dalam format yang nyaman (JSON, XML, teks)
- Memodifikasi respons server (Rewrite, Map Local, Map Remote)
- Breakpoint untuk pengeditan permintaan manual
- Memperlambat koneksi untuk mensimulasikan internet lambat
- Merekam dan memutar ulang sesi
- Dukungan untuk proxy eksternal (HTTP, SOCKS5)
Instalasi dan pengaturan awal Charles Proxy
Charles Proxy tersedia sebagai aplikasi berbayar dengan masa percobaan 30 hari. Anda dapat mengunduhnya dari situs resmi charlesproxy.com. Versi untuk macOS, Windows, dan Linux memiliki fungsi yang sama.
Langkah 1. Instal aplikasi
Unduh penginstal untuk sistem operasi Anda, jalankan, dan ikuti prosedur instalasi standar. Setelah menjalankan Charles, ia segera mulai mendengarkan port 8888 di komputer Anda. Ini adalah port default yang akan digunakan perangkat untuk mengarahkan lalu lintas.
Langkah 2. Memeriksa alamat IP komputer
Agar perangkat mobile dapat terhubung ke Charles, perangkat tersebut harus berada di jaringan Wi-Fi yang sama dengan komputer. Temukan alamat IP komputer Anda di jaringan lokal:
- macOS: Pengaturan Sistem ā Jaringan ā pilih Wi-Fi ā Alamat IP
- Windows: Command Prompt ā
ipconfigā Alamat IPv4 - Di dalam Charles: Bantuan ā Alamat IP Lokal
Ingat alamat ini ā Anda akan membutuhkannya saat mengatur proxy di smartphone. Biasanya, ini adalah sesuatu seperti 192.168.1.X.
Langkah 3. Mengizinkan koneksi dari perangkat
Saat pertama kali menghubungkan perangkat mobile, Charles akan menampilkan jendela dialog yang bertanya: "Apakah Anda ingin mengizinkan koneksi dari IP xxx.xxx.x.x?". Klik Allow. Jika jendela tidak muncul ā periksa apakah firewall Windows atau macOS tidak memblokir Charles. Di macOS, Anda mungkin perlu secara eksplisit mengizinkan koneksi masuk di Pengaturan Sistem ā Keamanan ā Firewall.
Pengaturan Charles Proxy untuk Android
Pengaturan di Android terdiri dari dua bagian: mengarahkan lalu lintas melalui Charles dan menginstal sertifikat untuk mendekripsi HTTPS. Tanpa sertifikat, Anda hanya akan melihat data yang terenkripsi ā kumpulan karakter yang tidak berguna.
Mengatur proxy Wi-Fi di Android
- Buka Pengaturan ā Wi-Fi
- Tekan dan tahan jaringan yang terhubung ā Ubah jaringan
- Aktifkan Opsi tambahan
- Pada kolom Proxy, pilih Manual
- Host proxy: Alamat IP komputer Anda (misalnya,
192.168.1.5) - Port:
8888 - Simpan pengaturan
Setelah itu, semua lalu lintas HTTP dari perangkat akan melalui Charles. Catatan permintaan akan mulai muncul di layar aplikasi.
Menginstal sertifikat Charles di Android
- Di perangkat, buka browser dan kunjungi alamat
chls.pro/ssl - File sertifikat .pem akan diunduh
- Buka Pengaturan ā Keamanan ā Instal Sertifikat
- Pilih file yang diunduh dan instal sebagai Sertifikat CA
- Tentukan nama apa pun, misalnya "Charles SSL"
Di Android 7 dan yang lebih baru, aplikasi secara default tidak mempercayai sertifikat pengguna. Ini berarti aplikasi sistem dan sebagian besar aplikasi pihak ketiga (Facebook, Instagram, TikTok) akan memblokir penangkapan. Untuk bekerja dengan aplikasi semacam itu, Anda memerlukan akses root atau menggunakan emulator Android (misalnya, Genymotion atau Android Studio Emulator) yang memungkinkan instalasi sertifikat di penyimpanan sistem.
ā ļø Penting untuk Android 7+
Mulai dari Android 7 (Nougat), aplikasi harus secara eksplisit menyatakan kepercayaan terhadap sertifikat pengguna dalam file network_security_config.xml. Sebagian besar aplikasi populer (Facebook Ads, Instagram) tidak melakukan ini. Untuk analisis mereka, gunakan emulator dengan root atau build Android yang dimodifikasi.
Pengaturan Charles Proxy untuk iOS
Di iOS, prosedurnya sedikit lebih sederhana ā Apple menyediakan mekanisme standar untuk menginstal sertifikat melalui profil, dan sebagian besar aplikasi menghormati pengaturan proxy sistem.
Mengatur proxy Wi-Fi di iPhone/iPad
- Buka Pengaturan ā Wi-Fi
- Klik ikon (i) di sebelah jaringan yang terhubung
- Gulir ke bawah ke bagian HTTP-proxy
- Pilih Manual
- Server: Alamat IP komputer dengan Charles
- Port:
8888 - Autentikasi: dimatikan (jika tidak diatur di Charles)
Menginstal sertifikat Charles di iOS
- Di iPhone, buka browser Safari dan kunjungi
chls.pro/ssl - Safari akan menawarkan untuk menginstal profil konfigurasi ā klik Izinkan
- Pindah ke Pengaturan ā Umum ā VPN dan Manajemen Perangkat
- Cari profil Charles dan klik Instal
- Masukkan PIN perangkat jika diperlukan
- Sekarang pindah ke Pengaturan ā Umum ā Tentang Perangkat Ini ā Kepercayaan Sertifikat
- Aktifkan saklar di sebelah Charles Proxy CA
Setelah itu, Charles akan dapat mendekripsi lalu lintas HTTPS dari sebagian besar aplikasi iOS. Pengecualian adalah aplikasi dengan Certificate Pinning ā seperti aplikasi bank dan beberapa versi Instagram. Untuk analisis mereka, diperlukan jailbreak dan tweak khusus seperti SSL Kill Switch.
Menangkap lalu lintas HTTPS: pengaturan SSL Proxying
Bahkan setelah menginstal sertifikat, Charles secara default tidak mendekripsi lalu lintas HTTPS ā Anda harus secara eksplisit menunjukkan domain mana yang harus mengaktifkan SSL Proxying. Ini dilakukan dengan sengaja untuk tidak membebani antarmuka dengan data yang tidak perlu.
Cara mengaktifkan SSL Proxying
- Di menu Charles, pilih Proxy ā Pengaturan SSL Proxying
- Centang Aktifkan SSL Proxying
- Klik Tambah di bagian Include
- Di kolom Host, masukkan
*(bintang = semua domain) - Di kolom Port, masukkan
443 - Klik OK dan restart penangkapan
Sekarang Charles akan mendekripsi lalu lintas HTTPS untuk semua domain. Jika Anda tertarik dengan layanan tertentu ā sebutkan domainnya alih-alih bintang. Misalnya, untuk analisis Instagram, masukkan *.instagram.com, untuk Facebook ā *.facebook.com.
Apa yang terlihat setelah mengaktifkan SSL Proxying
Di panel kiri Charles, Anda akan melihat pohon domain. Klik pada permintaan mana pun ā di bagian kanan, informasi detail akan terbuka: URL, metode (GET/POST), header permintaan, isi permintaan (jika ada), dan respons server. Tab Request dan Response menunjukkan data dalam bentuk mentah atau dalam format yang nyaman (JSON, XML, HTML).
Header permintaan sangat berharga ā di situlah token otorisasi, pengidentifikasi perangkat, versi aplikasi, dan data lain yang digunakan platform untuk verifikasi dikirim. Jika Anda melihat parameter mencurigakan dalam permintaan ke Facebook Ads atau TikTok ā ini adalah langkah pertama untuk memahami mengapa akun diblokir.
Alat analisis: Breakpoints, Rewrite, dan Map Local
Charles bukan hanya penampil lalu lintas, tetapi juga alat yang kuat untuk memodifikasinya. Tiga alat kunci yang paling sering digunakan:
Breakpoints ā titik henti
Breakpoints memungkinkan Anda menangkap permintaan atau respons pada saat melewati dan secara manual mengedit data sebelum mencapai penerima. Ini adalah alat yang kuat untuk pengujian: Anda dapat mengubah parameter permintaan, mengganti token lain, atau memodifikasi respons server.
Untuk mengatur Breakpoint: klik kanan pada permintaan dalam daftar ā Breakpoint. Sekarang, saat aplikasi berikutnya mengakses URL ini, Charles akan menghentikan pengiriman dan membuka jendela pengeditan. Anda dapat mengubah parameter apa pun dan menekan Execute untuk melanjutkan.
Rewrite ā penggantian data otomatis
Rewrite bekerja secara otomatis: Anda menetapkan aturan "jika permintaan mengandung X ā ganti dengan Y", dan Charles menerapkannya pada semua permintaan yang sesuai tanpa keterlibatan Anda. Ini nyaman untuk pengujian massal: misalnya, mengganti nilai header tertentu di semua permintaan ke domain tertentu.
Pengaturan: Tools ā Rewrite ā Tambah ā tentukan nama kumpulan aturan ā Tambah aturan ā tentukan tipe (Header, Body, URL, dll.), apa yang dicari, dan apa yang diganti.
Map Local ā mengganti respons dengan file lokal
Map Local memungkinkan Anda mengganti respons server dengan isi file lokal. Ini sangat penting untuk menguji aplikasi tanpa backend nyata: Anda membuat file JSON dengan data yang diperlukan, dan aplikasi menerima data tersebut sebagai respons nyata dari API.
Pengaturan: Tools ā Map Local ā Tambah ā tentukan URL untuk menangkap dan jalur ke file lokal. Sekarang setiap permintaan ke URL ini akan mengembalikan isi file Anda. Ini memungkinkan pengujian kasus batas: daftar produk kosong, kesalahan server 500, format data yang tidak standar.
| Alat | Kapan digunakan | Tingkat kesulitan |
|---|---|---|
| Breakpoints | Pengeditan manual permintaan/ respons satu kali | Rendah |
| Rewrite | Penggantian otomatis berdasarkan aturan | Sedang |
| Map Local | Mengganti respons API dengan file lokal | Rendah |
| Map Remote | Mengalihkan permintaan ke server lain | Sedang |
| Throttle | Mensimulasikan koneksi lambat | Rendah |
Cara menghubungkan server proxy eksternal melalui Charles
Charles Proxy dapat berfungsi tidak hanya sebagai penangkap lokal, tetapi juga sebagai penghubung antara perangkat dan server proxy eksternal. Ini sangat berguna ketika Anda perlu menganalisis lalu lintas dan mengarahkannya melalui alamat IP tertentu ā misalnya, untuk memeriksa bagaimana aplikasi berperilaku saat terhubung dari negara lain atau melalui IP mobile.
Skema ini terlihat seperti ini: Smartphone ā Charles Proxy (komputer) ā Server proxy eksternal ā Internet. Anda melihat semua lalu lintas di Charles, tetapi permintaan dikirim melalui IP yang diperlukan.
Mengatur proxy eksternal di Charles
- Buka Proxy ā Pengaturan Proxy Eksternal
- Centang Gunakan server proxy eksternal
- Untuk lalu lintas HTTP: aktifkan Web Proxy (HTTP), masukkan host dan port proxy
- Untuk lalu lintas HTTPS: aktifkan Secure Web Proxy (HTTPS), masukkan data yang sama
- Jika proxy memerlukan otorisasi ā masukkan nama pengguna dan kata sandi
- Klik OK
Charles mendukung proxy HTTP dan SOCKS5. Untuk SOCKS5, gunakan tab SOCKS Proxy di pengaturan yang sama. Jika Anda bekerja dengan proxy residensial dengan rotasi IP ā setiap permintaan baru akan dikirim melalui alamat yang berbeda, yang nyaman untuk menguji perilaku platform saat mengganti IP.
Pengecualian untuk lalu lintas lokal
Jika perlu agar sebagian lalu lintas berjalan langsung (tanpa proxy eksternal), tambahkan pengecualian di kolom Bypass external proxies for the following hosts. Misalnya, alamat lokal localhost dan 127.0.0.1 biasanya harus dikecualikan agar tidak merusak layanan lokal.
Kapan diperlukan proxy eksternal di Charles:
- Pengujian geolokasi aplikasi (bagaimana perilakunya dari AS, Jerman, Brasil)
- Pemeriksaan ketersediaan konten di berbagai wilayah
- Analisis permintaan saat bekerja melalui proxy mobile ā untuk memahami bagaimana platform bereaksi terhadap IP mobile
- Menghindari pemblokiran regional saat pengujian
Skenario praktis: arbitrase, SMM, dan pengujian aplikasi
Mari kita lihat tugas spesifik di mana Charles Proxy digunakan dalam pekerjaan nyata ā tanpa teori yang berlebihan.
Skenario 1. Arbitrase ā analisis fingerprint Facebook Ads
Salah satu tugas utama seorang arbitrase adalah memahami mengapa Facebook memblokir akun segera setelah login. Charles memungkinkan Anda menangkap permintaan awal aplikasi Facebook saat otorisasi dan melihat data perangkat apa yang dikirim ke server Meta.
Dalam permintaan ke graph.facebook.com, Anda akan melihat parameter seperti device_id, hardware_id, advertiser_id, dan pengidentifikasi lainnya. Ini membantu memahami data mana yang perlu diisolasi dalam browser anti-deteksi seperti Dolphin Anty atau AdsPower saat bekerja dengan beberapa akun.
Juga berguna untuk menangkap respons server saat pemblokiran ā biasanya berisi kode kesalahan dan kadang-kadang alasan pemblokiran yang tidak ditunjukkan Facebook di antarmuka aplikasi.
Skenario 2. SMM ā mempelajari API Instagram dan TikTok
Spesialis SMM yang mengelola 10-50 akun klien sering menghadapi batasan platform: Instagram membatasi jumlah suka, pengikut, dan komentar per jam. Charles memungkinkan untuk mengukur batasan ini dengan tepat, menangkap permintaan saat bekerja dengan akun secara manual.
Dengan menangkap permintaan ke i.instagram.com, Anda akan melihat struktur API: endpoint, parameter, token otorisasi. Ini membantu mengatur otomatisasi agar meniru perilaku pengguna nyata dan tidak terblokir. Hal yang sama berlaku untuk TikTok ā analisis permintaan ke api16-normal-c-useast1a.tiktokv.com menunjukkan parameter apa yang diperiksa platform.
Skenario 3. E-commerce ā analisis API marketplace
Penjual di Wildberries, Ozon, dan Avito secara aktif menggunakan pemantauan harga pesaing. Charles memungkinkan Anda menangkap permintaan aplikasi mobile marketplace dan melihat melalui endpoint mana data harga dan stok dimuat. Ini membantu mengatur parser yang meniru perilaku aplikasi mobile ā permintaan semacam itu jauh lebih mudah daripada permintaan dari parser browser.
Misalnya, di aplikasi Wildberries, Anda dapat menangkap permintaan ke catalog.wb.ru dan melihat struktur parameter penyaringan dan paginasi yang tepat. Ini memberikan template siap pakai untuk membangun parser yang akan melewati perlindungan jauh lebih efektif daripada mencoba mereproduksi permintaan browser. Untuk parsing yang stabil, Anda memerlukan proxy data center dengan kecepatan tinggi dan stabilitas koneksi.
Skenario 4. Pengujian QA aplikasi mobile
Penguji menggunakan Charles untuk memeriksa perilaku aplikasi dalam situasi yang tidak biasa. Dengan Map Local, Anda dapat mengganti respons server dengan kesalahan 500 dan memeriksa bagaimana aplikasi menangani kegagalan backend. Throttle memungkinkan mensimulasikan internet lambat (3G, Edge) dan memeriksa apakah aplikasi tidak macet saat memuat lama. Breakpoints memberikan kesempatan untuk mengubah data secara manual dan memeriksa kasus batas ā misalnya, apa yang terjadi jika server mengembalikan array kosong alih-alih daftar produk.
Masalah umum dan solusinya
Saat bekerja dengan Charles Proxy, pemula sering menghadapi masalah yang sama. Mari kita bahas yang paling umum.
Masalah 1: Charles menunjukkan "unknown" alih-alih isi permintaan HTTPS
Penyebab: SSL Proxying tidak diaktifkan atau sertifikat tidak diinstal di perangkat.
Solusi: Periksa bahwa di Proxy ā Pengaturan SSL Proxying, SSL Proxying diaktifkan dan host *:443 ditambahkan. Pastikan sertifikat Charles diinstal di perangkat dan untuk itu diaktifkan kepercayaan penuh (di iOS ā melalui pengaturan kepercayaan sertifikat).
Masalah 2: Lalu lintas tidak tertangkap, daftar permintaan kosong
Penyebab: Perangkat tidak mengarahkan lalu lintas melalui Charles, atau Charles tidak menerima koneksi.
Solusi: Periksa bahwa perangkat dan komputer berada di jaringan Wi-Fi yang sama. Pastikan bahwa pengaturan proxy di perangkat menunjukkan IP komputer yang benar dan port 8888. Periksa bahwa Charles dalam mode perekaman: Proxy ā Mulai Merekam (atau tombol dengan titik merah di toolbar).
Masalah 3: Aplikasi tidak berfungsi saat Charles diaktifkan
Penyebab: Aplikasi menggunakan Certificate Pinning ā memeriksa tidak hanya rantai kepercayaan tetapi juga sertifikat server tertentu. Sertifikat Charles tidak cocok dengan yang diharapkan.
Solusi untuk Android dengan root: Instal modul Magisk TrustUserCerts atau gunakan Frida untuk menghindari SSL Pinning. Untuk iOS dengan jailbreak ā SSL Kill Switch 2. Tanpa root/jailbreak, melewati Certificate Pinning sangat sulit.
Masalah 4: Charles menangkap terlalu banyak lalu lintas, antarmuka melambat
Penyebab: Semua lalu lintas dari semua aplikasi di perangkat direkam, termasuk layanan sistem.
Solusi: Gunakan penyaringan. Di kolom Filter (di bawah panel kiri), masukkan domain layanan yang diminati. Atau atur Kontrol Akses di Proxy ā Pengaturan Kontrol Akses, agar Charles hanya menerima koneksi dari aplikasi tertentu melalui Proxy ā Pengaturan Perekaman ā Sertakan/Kecualikan.
Masalah 5: Internet tidak berfungsi setelah menutup Charles
Penyebab: Pengaturan proxy tetap di perangkat mobile, tetapi Charles sudah tidak berjalan ā lalu lintas tidak tahu kemana harus pergi.
Solusi: Selalu hapus pengaturan proxy di perangkat setelah selesai menggunakan Charles. Kembalikan pengaturan proxy ke posisi "Tidak ada" atau "Dimatikan" di pengaturan Wi-Fi.
| Masalah | Solusi Cepat |
|---|---|
| HTTPS menunjukkan "unknown" | Aktifkan SSL Proxying + instal sertifikat |
| Daftar permintaan kosong | Periksa IP, port, dan pastikan Charles dalam mode perekaman |
| Aplikasi tidak terbuka | Certificate Pinning ā memerlukan root/jailbreak |
| Antarmuka melambat | Tambahkan filter berdasarkan domain di kolom Filter |
| Tidak ada internet setelah menutup | Hapus pengaturan proxy di perangkat |
Kesimpulan
Charles Proxy adalah salah satu alat paling berguna untuk semua orang yang bekerja dengan aplikasi mobile: baik itu arbitrase yang ingin memahami mekanisme verifikasi Facebook Ads, spesialis SMM yang mempelajari API Instagram, atau pengembang yang menguji perilaku aplikasinya dalam kondisi yang tidak biasa. Instalasi memakan waktu 15-20 menit, dan kemampuan yang dibuka setelah pengaturan sulit untuk dinilai.
Hal utama yang perlu diingat: Charles adalah alat analisis dan debugging, bukan anonimisasi. Untuk bekerja dengan beberapa akun, pengujian dari berbagai geolokasi, atau menghindari pembatasan platform, diperlukan tingkat perlindungan terpisah ā server proxy dengan alamat IP nyata.
Jika Anda menganalisis lalu lintas aplikasi mobile untuk arbitrase atau bekerja dengan akun di media sosial, kami merekomendasikan untuk menggabungkan Charles dengan proxy residensial ā mereka menyediakan IP nyata dari pengguna rumah, yang meminimalkan risiko pemblokiran saat pengujian dan bekerja dengan akun. Untuk tugas di mana kecepatan tinggi dan stabilitas penting ā seperti pengambilan massal API marketplace ā proxy data center dengan uptime tinggi sangat cocok.
```