Koruma mimarisi
Farklı katmanlar, kodu geri çıkarma probleminin farklı yönlerini değiştirir.
Dönüşümden önce analiz#
Complexer; kontrol akışını, veri bağımlılıklarını, istisnaları ve çağrı ilişkilerini modeller. Dönüşümler bu analizlerden yararlanır. Metot büyüme bütçeleri kod genişlemesini sınırlar; pipeline değişikliklerden etkilenen durumu izler.
Farklı sorumluluklara sahip katmanlar#
- Şifreli sabitler, değerlerin saklanma ve geri alınma biçimini değiştirir.
- Çağrı dolaylılığı, metot ve constructor referanslarının temsilini değiştirir.
- Kontrol ve veri akışı dönüşümleri, okunabilir kaynak yapısının geri çıkarılmasını zorlaştırır.
- Metot sanallaştırma veya native derleme, seçilen metotların yürütülme biçimini değiştirir. Bunlar bilinçli alternatiflerdir; her metodun ikisinden de geçtiği anlamına gelmez.
Bilinçli seçim#
Standart pipeline ile isteğe bağlı yürütme düzeyi modları farklı ihtiyaçlara yöneliktir. Sanallaştırma ve native derleme açıkça seçilir. Performansa duyarlı metotlar ve uyumluluk koşulları ayrı değerlendirilmelidir.
Koruma, bir uygulamayı anlama ve değiştirme maliyetini artırır. İstemcide bulunan kodu matematiksel olarak analiz edilemez yapmaz; sunucu yetkilendirmesinin ve doğru sır yönetiminin yerini tutmaz.