Güvenlik

Claude, mitmproxy ve Spor Uygulamasının Gizli API’si

Şunu söyleyeyim, Bir uygulamanın içine kilitlenmiş kendi verinizi almak için bir yapay zekâya “hadi bakalım, sök bunu” dediğinizi düşünün. Kulağa biraz çılgınca geliyor, evet. Ama tam da böyle bir hikâye var elimizde: Claude, mitmproxy üzerinden bir fitness uygulamasının trafiğini okuyup API’yi tersine mühendislikle çözüyor, sonra da o veriyi dışarı alacak bir araç yazıyor.

İşin hoş tarafı şu: Bu sadece “bakın AI neler yapıyor” gösterisi değil. Aynı zamanda veri sahipliği, mobil uygulamaların kapalı kutu oluşu ve yapay zekânın gerçek hayatta nasıl işe yaradığıyla ilgili bayağı öğretici bir örnek. Ben de bu tarz işleri görünce hemen kaşlarımı kaldırıyorum —. Çoğu zaman mesele modelin zekâsından çok, doğru problemi doğru yere bağlamak oluyor. Hani siz mükemmel bir tornacı olsanız bile, elinizde doğru torna tezgâhı yoksa bir şey çıkaramazsınız; aynı durum (ciddiyim)

Geçen ay Kadıköy’de küçük bir editör toplantısında benzer bir tartışma açılmıştı. Herkes kendi sağlık ya da spor verisini farklı uygulamalara dağıtmış durumda. Bir arkadaşım “benim koşu geçmişim üç ayrı app’in içinde kaldı” deyince ortamda kısa bir sessizlik oldu. İşte bu yazı tam o hisse dokunuyor.

İşte tam da bu noktada devreye giriyor.

Neden bu hikâye önemli?

Fitness uygulamaları genelde tek işte iyi oluyor: kayıt tutmak. Setleri giriyorsun, tekrarları yazıyorsun, belki PR’larını görüyorsun ve çıkıyorsun. Ama asıl değer çoğu zaman orada bitmiyor. Düşünün bir kere — yıllarca girdiğiniz antrenman verisi var, ama o veri kimin elinde? İnsan ister istemez soruyor: “Benim antrenman verimden kim faydalanıyor?” Cevap bazen çok net olmuyor (bizzat test ettim)

Darrell’ın yaşadığı problem de buydu. Liftoff adlı uygulamada antrenmanlarını tutuyor ama veriyi dışarı aktarmak için düzgün bir yol bulamıyor. CSV yok. JSON yok. Adam akıllı export butonu yok. Yani veri var ama elinizde değil. Açık konuşayım, bu durum bana 2023’te Berlin’de test ettiğim eski bir alışkanlık izleme uygulamasını hatırlattı — iyi çalışıyor gibi görünür. Kullanıcı aslında içeri hapsolmuştur, farkında bile olmadan (bizzat test ettim)

Bakın, burayı atlarsanız yazının kalanı anlamsız kalır.

💡 Bilgi: Bu tip senaryolarda mesele sadece “API bulmak” değil; kullanıcı verisinin taşınabilir olup olmaması da kritik hale geliyor. Kapalı ekosistemler rahat görünür ama uzun vadede can sıkabiliyor.

Burada yapay zekânın rolü bayağı ilginçleşiyor. Claude tek başına sihir yapmıyor. Ama doğru araçla eşleşince gözle görülür hız kazandırıyor. Hani eskiden biri log dosyasına bakar, diğeri ağ paketlerini yakalar, üçüncüsü endpoint adlarını tahmin ederdi ya… Şimdi bunların arasında gidip gelen o eziyetli koordinasyon işini modelle konuşturabiliyorsunuz. Ciddi zaman kazancı.

Claude nasıl devreye girdi?

Hikâyenin en güzel kısmı şu bence: Kullanıcı paket dinlemeyi bilmiyor diye iş bitmiyor. Claude adım adım rehberlik ediyor — mitmproxy kurulumu, iPhone proxy ayarları, HTTPS trafiğini çözmek için CA sertifikası yükleme… Hepsi tek tek anlatılıyor. Yani teknik bariyer kalkıyor ama kontrol hâlâ sizde kalıyor. Daha fazla bilgi için Aşırı Gürültülü Uyarıları Susturmanın Akıllı Yolu: Pratik Rehber yazımıza bakabilirsiniz.

Bu yaklaşımı ilk kez denediğimde ben de şaşırmıştım şu an düşününce. Geçen yıl Ankara’da yerel bir test ortamında benzer şekilde trafik incelemek istemiştim; normalde on dakika sürecek kurulum yarım saate uzar — sertifika zinciri bozulur, telefon Wi-Fi’a takılır, proxy ayarı kaybolur, sinirlenirsiniz, baştan başlarsınız. Burada ise model sizi adeta elinden tutup götürüyor gibi davranıyor (buna dikkat edin). Fena değil, gerçekten.

Küçük startup için bunun anlamı başka olur; hızlı prototip çıkarırsınız ve “acaba veri nereden geliyor?” sorusuna çabuk yanıt alırsınız. Kurumsal tarafta ise aynı yöntem güvenlik ekibinin alarmını çaldırır — çünkü tersine mühendislik ile gözlem arasındaki çizgi incecik kalır. Çok incecik. Klasörlerden Hafıza Kurmak: Claude Code ile İkinci Beyin yazımızda bu konuya da değinmiştik. Bu konuyla ilgili Butterfly CSS: 2026’da Dikkat Çeken Hafif Bir Seçenek yazımıza da göz atmanızı tavsiye ederim.

Yapay zekâ burada kod yazan yardımcıdan çok, meraklı bir analist gibi davranıyor; önce gözlüyor, sonra haritalıyor, en son da işe yarar araca dönüştürüyor.

Trafiği okumak neden kritik?

Çünkü mobil uygulamalar çoğu zaman ekran üstünde basit görünür ama arkada ciddi konuşmalar döner. Bir butona basarsınız. Aslında birkaç istek gidip gelir — auth kontrol edilir, token yenilenir, veri sayfalara bölünür. Bütün bunlar görünmezdir. Kullanıcı sadece “Kaydet” düğmesine basmıştır ama arka planda küçük bir orkestra çalıyor.

Liftoff örneğinde Claude, mitmdump çıktısını okuyup uygulamanın tRPC kullandığını fark ediyor. Bu önemli bir detay çünkü tRPC klasik REST API’lerden farklı davranır; envelope formatı vardır ve isteklerin toplu taşınması söz konusudur (bir nevi paket servis gibi düşünün). Böylece endpoint isimleri kadar istek gövdesinin şekli de önem kazanıyor. Bu konuyla ilgili EIE: Ollama’ya Rakip Yerel Yapay Zekâ Sunucusu yazımıza da göz atmanızı tavsiye ederim.

Tersine mühendislik kısmında ne bulundu?

Doğrusu, Burası işin teknik lezzeti diyeyim. Claude yalnızca “bir şeyler dönüyor” demekle kalmıyor; API’nin sürümlü alt alan adını çıkarıyor (v2-12-2.api.getgymbros.com) (ciddiyim). IOS user-agent beklentisini bile yakalıyor. Yani sunucu tarafının hangi platformdan geldiğinizi umursadığını anlıyor. Bu küçük ama önemli bir fark — çünkü user-agent’ı yanlış gönderirseniz sunucu sizi kibarca reddedebilir. PDF Dünyasında Bir Nefes: Ücretsiz ve Limitsiz Araçlar yazımızda bu konuya da değinmiştik.

Bileşen Buldurduğu şey Neden önemli?
Kimlik doğrulama user.signIn, user.refreshToken Erişim belirteci akışını çözüyor
Antrenman verisi post.getMyPosts Tüm workout geçmişini çekiyor
Sunum biçimi tRPC envelope yapısı Kodu doğru biçimde konuşturmak gerekiyor
Cihaz izi User-agent beklentisi Masaüstü istemciyi taklit etmeyi etkiliyor

Bana göre en fena olmayan nokta şu: Model paketleri elle açıp byte byte didiklemiyor olabilir ama çıkan log’dan mantığı oldukça iyi seziyor. Tabii burada biraz abartıya kaçmayalım — bu iş hâlâ insan gözetimi istiyor. Her sistem bu kadar temiz ipucu vermeyebilir. Kötü yazılmış, obfuscate edilmiş bir API’de aynı başarıyı beklemek hayalcilik olur.

Antrenman türleri nasıl sınıflandı?

Liftoff’un veri modeli içinde egzersiz tipleri de ayrıştırılmış durumda: ağırlık/tekrar için WR, destekli vücut ağırlığı için AB, dirençli vücut ağırlığı için BR ve mesafe/süre odaklı DD gibi kodlar varmış. Basit görünüyor. Ama aslında spor günlüğünün omurgası tam da burada yatıyor — doğru sınıflandırma olmadan analiz anlamsızlaşır.

Daha önemlisi, set seviyesinde warmup ile working set ayrımı yapılması ve iki giriş alanının egzersiz tipine göre anlam değiştirmesi… İşte burası kağıt üstünde ufak bir detay gibi duruyor ama analiz tarafında hayat kurtarırdır denecek kadar kıymetli olabiliyor. Gerçekten.

Peki sonra ne oldu? Go CLI sahneye çıktı!

Vallahi, Tersine mühendislik tamamlanınca Claude boş durmamış ve Go tabanlı bir komut satırı aracı üretmiş. Cobra kullanması tesadüf değil — Go dünyasında (belki yanılıyorum ama) CLI yapmak zaten doğal seçimlerden biri sayılır. Araç token saklama işini hallediyor, refresh akışını otomatik yönetiyor ve tRPC formatıyla düzgün konuşuyor.

Açık söyleyeyim, burada beni en çok etkileyen şey araç fikrinin kendisi değil. Asıl mesele aracın kullanım amacının net olmasıydı. Çünkü sırf “API çözdük” demek yetmez; sonunda elde edilen şeyin gerçekten işe yaraması lazım ki emek boşa gitmesin. Ve burada o iş yapılmış.

# Örnek kullanım akışı
liftoff-export workouts list --since 6m --json
liftoff-export workouts stats --exercise squat
liftoff-export bodyweights stats --plateau
  • workouts list: Geçmiş antrenmanları fitdown veya JSON olarak dışa aktarabiliyor.
  • workouts stats: Egzersiz bazlı hacim özeti çıkarıp aylık ASCII grafik gösterebiliyor. — ciddi fark yaratıyor
  • bodyweights stats: Kilo trendlerini izleyip plato sinyali yakalamaya çalışıyor.

Vallahi, Komut isimlerine baktığınızda bir şey dikkat çekiyor hemen: Araç kullanıcı odaklı tasarlanmış. “workouts” diyorsunuz ve ne istediğiniz net. Teknik altyapıyı bilmek zorunda değilsiniz. Siz hiç denediniz mi? Bir bakıma, bu küçük ama önemli bir kullanım kararı.

Bütün bunlardan ne çıkar?

Şunu fark ettim: Hmm, birkaç şey aslında. Birincisi ve en bariz olanı: Veri sahipliği hâlâ bir sorun. Uygulamalar verilerinizi kolayca bırakmıyor ve bu bilinçli bir tasarım kararı. İkincisi: Yapay zekâ bu tür köprü kurma işlerinde gerçekten işe yarıyor — “bunu anlat, şunu üret, şuraya bağla” döngüsü beklenenden hızlı çalışabiliyor. Üçüncüsü ise biraz daha karmaşık…

Tersine mühendislik etik açıdan her zaman berrak bir alan değil. Kendi verinize erişmek için bunu yapıyorsanız — yani Darrell’ın yaptığı gibi — zaten savunulabilir bir zemin var. Başkasının sistemine izinsiz girmekten bahsetmiyoruz. Ama bu araçların aynı tekniklerle başka amaçlara yönlendirilebileceği de görmezden gelinmemeli.

Neyse, çok dağıttım sanırım. Ana fikre döneyim: Bu proje, AI destekli araç geliştirmenin gerçek hayatta nasıl göründüğünü somut biçimde ortaya koyuyor. Ne sihir, ne büyük bütçe, ne de dev bir ekip — sadece doğru soru, doğru araç ve biraz azim. Bence değerli olan da tam bu.

Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

← Onceki Yazi
Aşırı Gürültülü Uyarıları Susturmanın Akıllı Yolu: Pratik Rehber
Sonraki Yazi →
Python Paketlerinde Gizli Regex Tehlikesi: 20 Kütüphane Ne Gösterdi?

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
İçindekiler
← Aşırı Gürültülü Uyarıları Sust...
Python Paketlerinde Gizli Rege... →
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri