Flutter'da Kod Şaşırtma (Android)

Dec 15 2022
Hikaye, flutter uygulamamızı yapım ekibine yayınlamak üzereyken başlıyor. Ancak bundan önce uygulama, VAPT (Güvenlik Açığı Değerlendirmesi ve Sızma Testi) sürecine girdi.
Unsplash'ta FLY:D'nin fotoğrafı

Hikaye, flutter uygulamamızı yapım ekibine yayınlamak üzereyken başlıyor. Ancak uygulama bundan önce VAPT ( Vulnerability Assessment and Penetration Testing ) sürecine girdi.

Kod gizleme nedir?

Kod şaşırtma, genellikle tersine mühendislik yapmayı veya değiştirmeyi zorlaştırmak amacıyla bir programın kodunun anlaşılmasını zorlaştırma işlemidir. Bu, değişken ve işlev adlarını okunamaz hale getirmek veya koda fazladan dolaylı katmanlar veya karmaşıklık eklemek gibi çeşitli tekniklerle yapılabilir. Gizleme, genellikle fikri mülkiyeti korumak veya bir programda kötü niyetli kurcalamayı önlemek için kullanılır. (ChatGPT'ye teşekkürler ).

Neden kod şaşırtması var?

Kullanıcı verilerinin güvenliğinin her şeyin üzerinde olduğu bir uygulama geliştiriyorsanız, bundan ödün veremezsiniz. Aptal kanıtlı güvenlik bir efsane olsa da. Ancak şu yöntemleri kullanarak bunu bir dereceye kadar maksimize edebiliriz:

  1. Kodunuzu küçültün (veya ağaç sallayın) : Kullanılmayan sınıfları, alanları, yöntemleri ve nitelikleri uygulamanızdan algılar ve güvenli bir şekilde kaldırır.

3. Proguard'ı etkinleştirin : Küçültme ve küçültme işlemi sırasında hangi dosyaları değiştirmek istemediğinizi tanımlamak için proguard kurallarını kullanın.

Gelelim Nasıl kısmına

Flutter komutunu kullanarak şaşırtma

export version=1.0.0
flutter build apk --release --shrink --obfuscate --split-debug-info=misc/mapping/${version}

buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true
            useProguard true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

Açıklama :

  1. Yayın modu imzalama yapılandırmalarınızı kullanacaktır. .jks dosyası ve imzalama kimlik bilgilerinizden bahsedebileceğiniz bir key.properties oluşturmanız gerekecektir.
  2. proguard-rules.pro'yu uygulama klasörünün içinde tutun, böylece kurallarınızı içinde tanımlayabilirsiniz. Proguard kurallarının nasıl tanımlanacağını buradan okuyun .
  3. Gizleme sırasında flutter dosyalarını korumak için proguard-rules dosyanızın içindeki şu satırları kullanın:
  4. #Flutter Wrapper
    -keep class io.flutter.app.** { *; }
    -keep class io.flutter.plugin.**  { *; }
    -keep class io.flutter.util.**  { *; }
    -keep class io.flutter.view.**  { *; }
    -keep class io.flutter.**  { *; }
    -keep class io.flutter.plugins.**  { *; }
    

    -keep class org.xmlpull.v1.** { *;}
     -dontwarn org.xmlpull.v1.**
    

Şimdi profesyonel bir ipucu zamanı

Buraya kadar geldiyseniz işte size bir hediye. Proguard'ı etkinleştirdikten sonra uygulamanız çökmeye devam ediyor mu?

Hata ayıklamak için bu hack'i deneyin:

Hata ayıklamak ve uygulamayı hata ayıklama modunda çalıştırmak için sürümü değiştirin.

buildTypes {
        debug {
            signingConfig signingConfigs.release
            minifyEnabled true
            useProguard true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

Hepsi bugün için. Sonuna kadar kaldığınız için teşekkürler. Öneriler kabul edilir.

Şimdi Twitter , Instagram veya LinkedIn üzerinden bağlanalım .