hacktricks/mobile-pentesting/android-app-pentesting/manual-deobfuscation.md
2024-02-10 18:14:16 +00:00

6.1 KiB
Raw Blame History

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Manuel De-obsfikasyon Teknikleri

Yazılım güvenliği alanında, anlaşılması zorlaştırılmış kodu anlaşılır hale getirme süreci olan de-obsfikasyon, önemlidir. Bu kılavuz, de-obsfikasyon için çeşitli stratejilere ve statik analiz tekniklerine odaklanarak obsfikasyon desenlerini tanıma konusuna girer. Ayrıca, pratik uygulama için bir egzersiz sunar ve daha ileri konuları keşfetmek isteyenler için daha fazla kaynak önerir.

Statik De-obsfikasyon Stratejileri

Obsfike kodla uğraşırken, obsfikasyonun doğasına bağlı olarak çeşitli stratejiler kullanılabilir:

  • DEX bytecode (Java): Etkili bir yaklaşım, uygulamanın de-obsfikasyon yöntemlerini tanımlayıp bu yöntemleri bir Java dosyasında yeniden oluşturmaktır. Bu dosya, hedeflenen öğeler üzerindeki obsfikasyonu tersine çevirmek için çalıştırılır.
  • Java ve Native Kod: Başka bir yöntem, de-obsfikasyon algoritmasını Python gibi bir betik diliyle çevirmektir. Bu strateji, temel hedefin algoritmayı tam olarak anlamak değil, etkili bir şekilde çalıştırmak olduğunu vurgular.

Obsfikasyonun Tanınması

De-obsfikasyon sürecinin ilk adımı, obsfike kodun tanınmasıdır. Anahtar göstergeler şunları içerir:

  • Java ve Android'de dizelerin yokluğu veya karıştırılması, dize obsfikasyonunu işaret edebilir.
  • Varlık dizinindeki ikili dosyaların varlığı veya DexClassLoader çağrıları, kod açma ve dinamik yükleme işaretleri olabilir.
  • Tanımlanamayan JNI işlevleriyle birlikte yerel kütüphanelerin kullanılması, yerel yöntemlerin obsfikasyonunu işaret edebilir.

De-obsfikasyonda Dinamik Analiz

Kodu kontrol edilen bir ortamda çalıştırarak, dinamik analiz, obsfike kodun gerçek zamanlı olarak nasıl davrandığının gözlemlenmesine olanak sağlar. Bu yöntem, kodun gerçek niyetini gizlemek için tasarlanmış karmaşık obsfikasyon desenlerinin iç işleyişini ortaya çıkarmada özellikle etkilidir.

Dinamik Analizin Uygulanması

  • Çalışma Zamanı Şifre Çözme: Birçok obsfikasyon tekniği, yalnızca çalışma zamanında şifrelenen dizeleri veya kod segmentlerini içerir. Dinamik analiz sayesinde, bu şifrelenmiş öğeler şifre çözme anında yakalanabilir ve gerçek formu ortaya çıkarılabilir.
  • Obsfikasyon Tekniklerinin Tanınması: Uygulamanın davranışının izlenmesiyle, dinamik analiz, kod sanallaştırma, paketleyiciler veya dinamik kod oluşturma gibi belirli obsfikasyon tekniklerinin kullanıldığını tespit etmeye yardımcı olabilir.
  • Gizli Fonksiyonelliğin Ortaya Çıkarılması: Obsfike kod, yalnızca statik analizle belirgin olmayan gizli işlevsellikler içerebilir. Dinamik analiz, koşullu olarak yürütülen tüm kod yollarının, böyle gizli işlevsellikleri ortaya çıkarmak için gözlemlenmesine olanak sağlar.

Referanslar ve Daha Fazla Okuma

  • https://maddiestone.github.io/AndroidAppRE/obfuscation.html
  • BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” [video]
  • Bu sunum, bir Android uygulaması tarafından kullanılan en karmaşık anti-analiz yerel kütüphanelerden birini tersine mühendislik etmeyi ele alır. Özellikle yerel kod obsfikasyon tekniklerini kapsar.
  • REcon 2019: “The Path to the Payload: Android Edition” [video]
  • Bu sunum, yalnızca Java kodunda bir Android botnet tarafından kullanılan bir dizi obsfikasyon tekniğini ele alır ve bunların davranışlarını gizlemek için nasıl kullanıldığını tartışır.
AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)öğrenin!

HackTricks'ı desteklemenin diğer yolları: