- Son Güncelleme: 24 Şubat 2025
- Yazar: Evil0ctal
- Translate: ChatGPT
- GitHub Deposu: AndroidReverse101
- ⭐ Star, Fork ve PR ile katkı yapabilirsin! Birlikte Android tersine mühendislik öğrenelim, paylaşalım!
📖 Sıfırdan başlayarak Android tersine mühendisliğini sistematik şekilde öğren, öğrenmeyi eğlenceli, keyifli ve kolay hale getir!
- Yeni Başlayan Dostu: Hiç programlama bilmesen bile adım adım öğrenebilirsin.
- Derinlemesine Teknik: CPU mimarisi, assembly dili, ARM komut seti, Android çalışma mantığı gibi temel teknikleri öğren.
- Uygulamalı Eğitim: Her gün bir konu + uygulama ile pratik yap, öğrendiğini hemen kullan.
- Kırma ve Güvenlik Dengesi: Hem kırma (crack) tekniklerini öğren hem de Android güvenlik sistemini anla.
🔹 Hedef: Bilgisayarın temel mimarisini anlamak, 16'lık sayı sistemi, CPU komut seti, assembly dili ve Android'in çalışma prensiplerini öğrenmek.
| Gün | Konu | İçerik |
|---|---|---|
| 🏁 Gün 1 | Tersine Mühendislik Nedir? | Gerçek dünya vs. yazılım dünyası, tersine mühendisliğin kullanım alanları |
| 🔍 Gün 2 | Android Tersine Mühendisliğin Tarihi & Gelişimi | Eski APK kırma yöntemlerinden modern uygulama korumalarına |
| ⚙️ Gün 3 | CPU Komut Seti Nedir? | CISC vs. RISC, Android neden ARM kullanıyor |
| 🔥 Gün 4 | Sayı Sistemi Dönüşümleri: 16'lık Sistem Neden Önemli? | 2'lik, 10'luk, 16'lık sayı sistemlerinin dönüşümü ve uygulamaları |
| 🏗 Gün 5 | Assembly Dili Temelleri | Assembly ve makine kodu ilişkisi, register'ların rolü |
| 🏹 Gün 6 | x86 vs. ARM Assembly | x86 komutları ve ARM komutları arasındaki farklar |
| 📜 Gün 7 | ARM Assembly Komut Analizi | MOV, ADD, SUB, LDR, STR komutları |
| 🚀 Gün 8 | Fonksiyon Çağrısı ve Dönüşü | BL, BX, CALL, RET komutlarının açıklamaları |
| 🏗 Gün 9 | Android CPU Mimarisi Analizi | ARMv7, ARMv8, ARM64 arasındaki farklar |
| 📦 Gün 10 | Dalvik vs. ART Çalışma Zamanı | Android'in Java sanal makinesi kodu nasıl çalıştırıyor? |
| 🔥 Gün 11 | Android Süreç Yönetimi | Zygote süreci nedir, uygulama süreçlerinin yaşam döngüsü |
| 🚀 Gün 12 | Android İzin Mekanizması | AndroidManifest.xml dosyasındaki izinler uygulama güvenliğini nasıl etkiler? |
| 📂 Gün 13 | Android Uygulama Dizin Yapısı | /data/data klasörünün analizi, uygulama veri depolama alanı |
| 🔍 Gün 14 | APK Nasıl Yüklenir? | Android süreçleri APK dosyalarını nasıl çözümler? |
| 🛠 Gün 15 | El ile ARM Assembly Kodlama (Deney) | Basit bir ARM assembly programı yazıp çalıştırmak |
| 🔬 Gün 16 | Disassembler Araçları Tanıtımı | IDA Pro, Ghidra, objdump gibi araçlar |
| 🏴 Gün 17 | ELF Dosya Analizi | readelf ile .so dosya yapısının incelenmesi |
| 🔥 Gün 18 | Native Katman Nasıl Debug Edilir? | LLDB / GDB ile .so dosyalarını debug etmek |
| 🚀 Gün 19 | Android Uygulama Güvenlik Mekanizmaları | SELinux, uygulama sandbox'u, root tespiti |
| 🛡 Gün 20 | CTF Tersine Mühendislik Yarışması (Başlangıç) | Bir Android tersine mühendislik CTF yarışmasına katılmak |
🔹 Hedef: APK yapısını, DEX dosyalarını, Smali dilini, dinamik debug gibi temel yetenekleri kazanmak.
| Gün | Konu | İçerik |
|---|---|---|
| 🛠 Gün 21 | APK Dosya Yapısı Analizi | AndroidManifest.xml, kaynak dosyalar, DEX dosyası |
| 🔄 Gün 22 | APK Nasıl Geri Derlenir? | jadx, apktool, baksmali tanıtımı |
| 📜 Gün 23 | DEX Dosya Yapısı Analizi | ClassDefItem, MethodIdItem, StringIdItem |
| 📦 Gün 24 | Smali Diline Giriş | Smali kod yapısı, komutların açıklamaları |
| 📝 Gün 25 | Smali Kodunu Düzenleme Deneyi | smali kodunu elle değiştirerek VIP kısıtını kaldırmak |
| 🚀 Gün 26 | APK Yeniden Paketleme & İmzalama | apktool ile APK’yı değiştirip tekrar paketlemek ve imzalamak |
| 🔍 Gün 27 | Dinamik Debug’a Giriş | logcat ile uygulama davranışlarını izlemek |
| 🔬 Gün 28 | Frida ile Java Metodlarını Hook Etme | Java metotlarının dönüş değerini değiştirmek |
| 🏹 Gün 29 | Frida Hook Uygulamalı | Root tespitini atlatmak |
| 💉 Gün 30 | JNI ve Native Metotların Tersine Mühendisliği | libnative.so dosyasını analiz etmek |
| 🔥 Gün 31 | Xposed’e Giriş | Java metotlarını hook’lamak, uygulama davranışını değiştirmek |
| 🚀 Gün 32 | Uygulamalı: VIP Kısıtını Kırmak | isVip() metodunu hook’layıp uygulamada üyelik açmak |
| 🔗 Gün 33 | SSL Pinning Atlatma | HTTPS isteklerini kırmak ve API verisini yakalamak |
| 🛡 Gün 34 | Android Kod Karıştırma ve Geri Açma | ProGuard, R8 çalışma mantığı |
| 🔍 Gün 35 | Tersine Şifreleme Algoritmaları (MD5, AES, RSA) | Uygulamanın şifreleme mantığını analiz etmek |
| 🔥 Gün 36 | WebSocket & API İsteklerini Analiz Etmek | Burp Suite ile protokol analizi |
| 🚀 Gün 37 | Uygulama Kısıtlarını Kırmak (Uygulamalı) | isForceUpdate() fonksiyonunu atlatmak |
| 🏹 Gün 38 | Oyun Kırma Temelleri | buyItem() fonksiyonunu hook’layıp oyun içi satın almayı simüle etmek |
| 🔬 Gün 39 | Anti-Debug Korumasını Atlatma | ptrace() korumasını aşmak |
| 🏴☠️ Gün 40 | Android Koruma Mantığı | 360 koruma, Tencent koruma gibi sistemler nasıl çalışır |
| 🔍 Gün 41 | Korunan APK’yı Şifre Kırmak (Başlangıç) | Frida DumpDex ile korumalı APK’dan kod çıkarmak |
🔹 Hedef: Android koruma ve koruma atlatma, protokol analizi, zafiyet araştırmalarında uzmanlaşmak.
| Gün | Konu | İçerik |
|---|---|---|
| 🔥 Gün 60 | CTF Tersine Mühendislik Meydan Okumalarını Derinlemesine Analiz Etmek | Zor seviye APK’leri analiz etmek |
| 🏴☠️ Gün 70 | Tersine Mühendislik ile 0Day Açığı Bulmak | Gerçek uygulamaları tersine mühendislik ile analiz edip güvenlik açıklarını bulmak |
| 🏆 Gün 100 | Nihai Meydan Okuma: Tam Bir Uygulamayı Tersine Mühendislik ile Çözmek | Şifreleme algoritmalarını çöz, protokolleri analiz et, VIP özelliklerini kır |
🔥 100 günün sonunda eksiksiz bir Android tersine mühendislik bilgisine sahip olacaksın! 🔓 Uygulamaları kır, güvenlik açıklarını analiz et, Android’in derinlerine in! 🚀
Crackme, tersine mühendislikte sıkça karşılaşılan ve pratik yapmak için hazırlanan meydan okuma sorularıdır.
| Soru | Açıklama | Zorluk |
|---|---|---|
| Crackme 1 | Bu uygulamanın bir yerinde gizli bir metin var, bunu bulmaya çalış. | ⭐️ |
| Crackme 2 | Bu uygulamada gizli içerikler var, yer yer yerel (native) kod izlerine rastlayabilirsin. | ⭐️⭐️ |
-
Kitap Tavsiyeleri:
- Android Güvenliği ve Savunma Pratikleri
- Android Tersine Mühendislik
- Android Hacker's Handbook
- Android Açıkları ve Tersine Analiz
- Android Güvenliği Yetkili Kılavuz
-
Araç Tavsiyeleri:
- Geri derleme araçları: jadx, apktool, dex2jar
- Dinamik debug araçları: Frida, Xposed
- Tersine mühendislik araçları: IDA Pro, Ghidra, Hopper
- Debugger: LLDB, GDB
- Koruma araçları: 360 Koruma, Tencent Koruma, Alibaba Koruma
- Tersine platformları: Cuckoo, VirusTotal
- Ağ proxy araçları: Burp Suite, Charles, Fiddler, Wireshark, mitmproxy, reqable
- Sandbox: DroidBox, AndroBugs, QARK
-
Öğrenme Siteleri:
-
Topluluklar & Forumlar:
-
CTF Yarışmaları:
-
Güvenlik Konferansları:
-
Ödül Avcılığı Platformları:
-
Güvenlik Blogları:
🔥 Android tersine mühendislik hem eğlenceli hem de zorlu bir beceridir!
🚀 Sistematik çalışmayla, tersine mühendisliğin temel yeteneklerini öğrenerek yetkin bir güvenlik araştırmacısı olabilirsin!
📚 Öğrenmek asla bitmez, sürekli kendini geliştir!
👨💻 Başarılar!