
Android uygulamalarında ROT13 gizleme, geliştiricilerin sıkça tercih ettiği ancak hiçbir gerçek güvenlik sağlamayan basit bir obfuscation yöntemidir. Bu yöntem, yalnızca alfabetik karakterleri 13 harf kaydırarak dönüştürdüğü için saldırganlar tarafından saniyeler içinde çözülebilir. Android uygulamalarında ROT13 gizleme genellikle kritik URL’leri, token değerlerini veya sistem yapılandırmalarını yüzeysel biçimde saklamak amacıyla kullanılır; fakat bu yaklaşım, verilerin korunması yerine saldırganlara daha kolay erişim imkânı sunar. Bu nedenle Android uygulamalarında ROT13 gizlemenin kullanılması, hem güvenlik açıklarının tespit edilmesini kolaylaştırır hem de uygulamanın bütünlüğünü tehlikeye atar. Mobil güvenlik testlerinde bu tür zayıf gizleme yöntemleri, özellikle dinamik analiz süreçlerinde ve Frida hooking teknikleriyle anında ortaya çıkarılabilir. Bu yazı, Android ROT13 gizleme mekanizmasının neden güvensiz olduğunu, nasıl analiz edildiğini ve Frida kullanılarak nasıl bypass edildiğini detaylı şekilde ele almaktadır.
Uygulama İncelemesi: Statik Analizde Ortaya Çıkan Sorun
Analize başlandığında uygulamanın bir mesajlaşma uygulaması niteliği taşıdığı doğrulandı.

Kod incelemesine geçildiğinde, belirli sistem fonksiyonlarını çağırırken kullanılan string değerlerinin okunamaz formatta olduğu görüldü. İlk bakışta şifreli bir yapı izlenimi veren bu stringlerin karakter dağılımı incelendiğinde ROT13 kullanıldığı anlaşıldı.

ROT13, yalnızca alfabetik harfleri 13 karakter öteler ve hiçbir kriptografik güvenlik sağlamaz. Dolayısıyla uygulama içinde kritik endpoint’lerin ROT13 ile gizlenmiş olması, saldırganların bu adreslere saniyeler içinde ulaşması anlamına gelir. Özellikle API URL’lerinin, lisans doğrulama adreslerinin ve yapılandırma verilerinin bu şekilde saklanması büyük bir güvenlik açığı doğurur.
Çözüm işlemi sonrasında, uygulamanın gizlemeye çalıştığı sunucu adresinin açık hâli elde edildi. Bu adresin, uygulamanın kimlik doğrulama sistemiyle ilişkili olduğu değerlendirilmektedir. Bu durum doğrudan Hardcoded Secret Exposure kategorisine girer.

Buradan anlaşıldı ki uygulama, kritik bir sistem yapılandırma endpoint’i çağrısını saklamak için sadece ROT13 kullanmış.

Şifrenin çözümlenmiş hali.
Dinamik Analiz: Frida ile Hooking Süreci
Statik analiz yalnızca gizlenmiş stringlerin varlığını gösterir; ancak uygulamanın bu stringleri çalışma zamanında nasıl kullandığını görmek için dinamik analiz gereklidir. Bu aşamada Frida kullanıldı.

- -U → USB ile bağlı cihazı işaret eder.
- -f com.example.mylock → Hedef uygulamanın paket adıdır.
- -l decode.js → Yazdığımız script’in yüklenmesini sağlar.
- –no-pause → Uygulamanın başlatıldıktan sonra duraklamamasını sağlar.
şeklinde çalıştırdım. Burada decode.js dosyası içinde, ilgili sınıf yüklenirken stringleri hook’layıp, anlık olarak çözümlenmiş halleri konsola yazdıracak bir script kullandım. Bu şekilde uygulamanın runtime’da çözdüğü endpoint değerini açık şekilde görebildim.

Bu süreçte kullanılan script, uygulamada ilgili sınıf yüklendiğinde, addSystem gibi fonksiyonlara gönderilen parametreleri yakalayacak şekilde tasarlandı. Hook edilen fonksiyonun aldığı string değeri anlık olarak terminale yansıtıldı. Böylece uygulamanın runtime’da çözdüğü endpoint doğrudan görülebildi.
Çalışma Mantığı
- Uygulama ROT13 ile encode edilmiş stringi addSystem(“uggc://…”) şeklinde çağırır.
- Biz Frida ile addSystem fonksiyonunu hook’ladık.
- Parametreyi alıp kendi rot13() fonksiyonumuzla çözüyoruz.
- Sonra decoded stringi terminale basıyoruz.
- İstersen ister decoded değeri tekrar addSystem() içine gönderirsin, ister sadece loglarsın.
Bulgular
- ROT13 encoding ciddi bir güvenlik mekanizması değildir. Uygulamanın kritik URL’leri gizlemek için bu yönteme başvurması, potansiyel bir saldırganın çok kolay şekilde endpoint’lere ulaşabilmesine neden olur.
- Burada kullanılan adres, büyük ihtimalle uygulamanın kimlik doğrulama ya da lisans kontrol mekanizmasına ait bir sunucu endpoint’i. Yani saldırgan sadece APK içinden bu stringi çıkarıp çözerek doğrudan sisteme sorgu atabilir.
- Bu durum, hardcoded secret exposure kategorisine girer. Yani uygulama içinden çıkarılabilen hassas bilgilerin güvenli olmadan saklanması.
Bu yöntem, hem uygulamanın gerçek davranışını izlemede hem de statik analizde görülemeyen koşullu akışları doğrulamada kritik öneme sahiptir. Burada yapılan işlem bir Frida bypass çalışmasıdır; yani uygulamanın gizlemeye çalıştığı veri, runtime’da müdahale edilerek ortaya çıkarılmıştır. Bu bilgiler daha önce raporda yoktu ve bu makaleye özellikle dahil edilmiştir.
Güvenlik Değerlendirmesi
Bu incelemede görülen güvenlik yanlışları mobil ekosistemde çok yaygındır. ROT13 gibi basit obfuscation yöntemleri hiçbir koruma sağlamaz. Aynı şekilde kritik URL’lerin uygulama içinde plaintext veya zayıf gizleme yöntemleriyle tutulması sistem bütünlüğünü tehdit eder.
Bu nedenle geliştiriciler:
Hassas verileri AES, RSA gibi güçlü yöntemlerle korumalı,
Kod düzeyinde obfuscation + anti-tamper + anti-debug katmanlarını birlikte kullanmalı,
Runtime analize karşı ek savunmalar uygulamalıdır.
Sonuç
Yapılan analiz, mobil uygulama güvenliğinde “yalnızca gizlemek” yerine “gerçekten korumanın” zorunluluk olduğunu göstermektedir. ROT13 gibi yöntemler hiçbir güvenlik değeri sunmaz ve saldırganlar tarafından saniyeler içinde çözülebilir. Dinamik analiz ve Frida ile yapılan inceleme, uygulamanın çalışma zamanında gizlediği verilerin ne kadar kolay açığa çıktığını net biçimde göstermiştir. Mobil uygulama geliştiren ekiplerin bu tür hataları önlemek için güçlü şifreleme, doğru saklama yöntemleri ve etkili kod karmalaştırma stratejilerine yönelmesi şarttır.
Apk yı OWASP bu adresten bulabilirisniz.
Başka apk analizi okumak isterseniz : Test-Case Uygulaması Güvenlik Analizi (2025)












