Bir yapımcı kod yazıp paylaştığında lisans kullanıyorsa lisansını uygulamasını kırılamayacak şekilde debug ederse lisansının kırılması crackerların açık tespit yeteneğine kalır. Ancak Android sistemlerde bu böyle değildir çünkü her yüklenen uygulamaya tam erişim sağlayabilirsiniz bilgisayar üzerinde. Ve androiddeki debug sistemi diğer OSlerdeki gibi değildir. Androidde uygulama kurmak için APKya ihtiyaç duyarsınız. Ancak APK içerisindeki kodlar tamamen açıktır obfuscate edilse bile (sunucu çaplı kod çekimi söz konusuysa mümkün değil) obfuscate edilmiş kodu çözüp üzerinde istediğiniz değişiklikleri yapabilirsiniz. Bunu tam anlatmak için APK dosya ağacını anlatayım.
Uygulama.apk
├── META-INF/
│ ├── MANIFEST.MF
│ ├── CERT.RSA
│ └── CERT.SF
├── res/
│ ├── drawable/
│ ├── layout/
│ ├── values/
│ ├── ... (diğer kaynak klasörleri)
│ └── raw/
├── lib/
│ ├── armeabi-v7a/
│ ├── arm64-v8a/
│ ├── x86/
│ └── x86_64/
├── assets/
├── AndroidManifest.xml
├── classes.dex
├── resources.arsc
└── (diğer dosyalar)
Dosya ve Dizin Açıklamaları
1. META-INF/:
- `MANIFEST.MF`: APK dosyasının meta verilerini içerir.
- `CERT.RSA`: APK'nın imzasını içeren sertifika dosyası.
- `CERT.SF`: APK'nın imzalanmış dosya bilgilerini içerir.
2. res/:
- drawable/: Uygulamanın resim dosyalarını içerir.
- layout/: XML dosyaları şeklinde uygulama düzenlerini içerir.
- values/: Strings, colors, styles gibi değerleri içerir.
- raw/: İşlenmemiş dosyaları (örneğin ses dosyaları) içerir.
- Diğer kaynak klasörleri de burada bulunur.
3. lib/:
- Uygulamanın farklı mimariler için yerel kitaplıklarını (native libraries) içerir. Örneğin `armeabi-v7a`, `arm64-v8a`, `x86`, `x86_64` gibi klasörler.
4. assets/:
- Uygulamanın erişebileceği ham varlık dosyalarını içerir.
5. AndroidManifest.xml:
- Uygulamanın yapılandırmasını, izinlerini ve bileşenlerini tanımlar.
6. classes.dex:
- Dalvik EXecutable formatında uygulamanın derlenmiş Java kodlarını içerir. İşte bunu da farklı toollar ile kırabilirsiniz.
7. resources.arsc:
- Uygulamanın kaynaklarının indekslendiği ve sıkıştırıldığı dosya.
8. Diğer dosyalar:
- APK'da uygulamanın çalışması için gerekli olabilecek ek dosyalar bulunabilir.
Gördüğünüz üzere uygulamanın APK dosyasını bir arşiv görüntüleyici ile açıp çoğu değişikliği yapabilirsiniz.
Uygulama.apk
├── META-INF/
│ ├── MANIFEST.MF
│ ├── CERT.RSA
│ └── CERT.SF
├── res/
│ ├── drawable/
│ ├── layout/
│ ├── values/
│ ├── ... (diğer kaynak klasörleri)
│ └── raw/
├── lib/
│ ├── armeabi-v7a/
│ ├── arm64-v8a/
│ ├── x86/
│ └── x86_64/
├── assets/
├── AndroidManifest.xml
├── classes.dex
├── resources.arsc
└── (diğer dosyalar)
Dosya ve Dizin Açıklamaları
1. META-INF/:
- `MANIFEST.MF`: APK dosyasının meta verilerini içerir.
- `CERT.RSA`: APK'nın imzasını içeren sertifika dosyası.
- `CERT.SF`: APK'nın imzalanmış dosya bilgilerini içerir.
2. res/:
- drawable/: Uygulamanın resim dosyalarını içerir.
- layout/: XML dosyaları şeklinde uygulama düzenlerini içerir.
- values/: Strings, colors, styles gibi değerleri içerir.
- raw/: İşlenmemiş dosyaları (örneğin ses dosyaları) içerir.
- Diğer kaynak klasörleri de burada bulunur.
3. lib/:
- Uygulamanın farklı mimariler için yerel kitaplıklarını (native libraries) içerir. Örneğin `armeabi-v7a`, `arm64-v8a`, `x86`, `x86_64` gibi klasörler.
4. assets/:
- Uygulamanın erişebileceği ham varlık dosyalarını içerir.
5. AndroidManifest.xml:
- Uygulamanın yapılandırmasını, izinlerini ve bileşenlerini tanımlar.
6. classes.dex:
- Dalvik EXecutable formatında uygulamanın derlenmiş Java kodlarını içerir. İşte bunu da farklı toollar ile kırabilirsiniz.
7. resources.arsc:
- Uygulamanın kaynaklarının indekslendiği ve sıkıştırıldığı dosya.
8. Diğer dosyalar:
- APK'da uygulamanın çalışması için gerekli olabilecek ek dosyalar bulunabilir.
Gördüğünüz üzere uygulamanın APK dosyasını bir arşiv görüntüleyici ile açıp çoğu değişikliği yapabilirsiniz.


