Ghidra, bir NSA tersine mühendislik araç takımı

Ghidra

RSA konferansı sırasında ABD Ulusal Güvenlik Ajansı , C kodunun tersine derlenmesini destekleyen etkileşimli bir disassembler içeren ve çalıştırılabilir dosyaları analiz etmek için güçlü araçlar sağlayan "Ghidra" tersine mühendislik araç setine erişimin açıldığını duyurdu .

Proje yaklaşık 20 yıldır geliştirilmekte olup, ABD istihbarat teşkilatları tarafından işaretleri belirlemek, kötü amaçlı kodları analiz etmek, çeşitli çalıştırılabilir dosyaları incelemek ve derlenmiş kodları analiz etmek için aktif olarak kullanılmaktadır.

Ürün , yetenekleri açısından tescilli IDA Pro paketinin genişletilmiş sürümüyle karşılaştırılabilir , ancak yalnızca kod analizi için tasarlanmıştır ve hata ayıklayıcı içermez.

Öte yandan, Ghidra, C'ye benzeyen sözde koda dönüştürme desteğine (IDA'da bu özellik üçüncü taraf eklentiler aracılığıyla sağlanır) ve yürütülebilir dosyaların ortak analizi için daha güçlü araçlara sahiptir.

temel özellikleri

Ghidra tersine mühendislik araç setinde aşağıdakileri bulabiliriz:

  • Çeşitli işlemci talimatları ve yürütülebilir dosya biçimleri için destek.
  • Linux, Windows ve macOS için yürütülebilir dosya destek analizi.
  • Bir dağıtıcı, bir birleştirici, bir derleyici çözücü, bir program yürütme grafik üreteci, komut dosyalarını yürütmek için bir modül ve çok sayıda yardımcı araç içerir.
  • Etkileşimli ve otomatik modlarda performans gösterme yeteneği.
  • Yeni bileşenlerin uygulanmasıyla eklenti desteği.
  • Java ve Python dillerindeki komut dosyalarının bağlanmasıyla eylemleri otomatikleştirme ve mevcut işlevselliği genişletme desteği.
  • Araştırma ekiplerinin ekip çalışması için fonların mevcudiyeti ve çok büyük projelerde tersine mühendislik sırasında işin koordinasyonu.

İlginç bir şekilde, Ghidra'nın yayınlanmasından birkaç saat sonra, paket, varsayılan olarak devre dışı bırakılmış olan hata ayıklama modunun uygulanmasında bir güvenlik açığı buldu ; bu mod, JDWP (Java Debug Wire Protocol) kullanarak uzaktan uygulama hata ayıklaması için 18001 numaralı ağ portunu açıyor.

Varsayılan olarak, ağ bağlantıları 127.0.0.1 yerine tüm kullanılabilir ağ arayüzleri üzerinden kuruluyordu; bu da Ghidra'ya diğer sistemlerden bağlanmanıza ve uygulama bağlamında herhangi bir kodu çalıştırmanıza olanak tanıyordu .

Örneğin, bir kesme noktası ayarlayarak bir hata ayıklayıcıya bağlanabilir ve yürütmeyi durdurabilir ve "yeni yazdır" komutunu kullanarak kodunuzu daha fazla yürütme için değiştirebilirsiniz, örneğin, »
yeni java.lang.Runtime (). exec ('/ bin / mkdir / tmp / dir') »yazdırın.

Ayrıca, açık kaynaklı etkileşimli disassembler REDasm 2.0'ın neredeyse tamamen revize edilmiş bir sürümünün yayınlandığını da gözlemlemek mümkündür.

Program, ek talimat setleri ve modüller biçiminde dosya biçimleri için sürücüleri bağlamanıza izin veren genişletilebilir bir mimariye sahiptir. Proje kodu C ++ (Qt tabanlı arayüz) ile yazılır ve GPLv3 lisansı altında dağıtılır. Windows ve Linux'ta desteklenen çalışın.

Temel paket, PE, ELF, DEX (Android Dalvik), Sony Playstation, XBox, GameBoy ve Nintendo64 ürün yazılımı formatlarıyla uyumludur . Desteklenen komut setleri arasında x86, x86_64, MIPS, ARMv7, Dalvik ve CHIP-8 bulunur.

Özellikler arasında, etkileşimli IDA tarzı görselleştirme desteği, çoklu iş parçacıklı uygulama analizi , görsel ilerleme grafiği oluşturma, dijital imza işleme motoru (SDB dosyalarıyla çalışır) ve proje yönetimi araçları sayılabilir .

Ghidra nasıl kurulur?

Bu "Ghidra" tersine mühendislik araç setini kurmakla ilgilenenlerin en az aşağıdakilere sahip olmaları gerektiğini bilmeleri gerekir:

  • 4 GB RAM
  • Kit depolama için 1 GB
  • Java 11 Runtime and Development Kit (JDK) yüklü olmalıdır.

Ghidra'yı indirmek için resmi web sitesine gitmeniz gerekiyor. Bağlantı burada.

Bu işlem tamamlandıktan sonra, indirdiğiniz paketi açmanız yeterli olacaktır ve klasörün içinde kiti çalıştıracak olan "ghidraRun" dosyasını bulacaksınız.

Bu konu hakkında daha fazla bilgi edinmek isterseniz, aşağıdaki bağlantıyı ziyaret edebilirsiniz.


Google'da tercih edilen kaynak olarak ekleyin.