Dogbolt Decompiler Explorer
(dogbolt.org)- Dogbolt, bir binary yükleyip birden fazla decompiler sonucunu tek yerde karşılaştırmayı sağlayan bir Decompiler Explorer’dır
- Yüklenen dosyalar 2 MB’tan küçük olmak zorundadır ve yüklenen binary’lerin saklandığı belirtilir
- Doğrudan dosya yüklemeden de nasıl çalıştığını inceleyebilmek için örnekler sunar
- Bağlı araçlar arasında angr, BinaryNinja, Boomerang, dewolf, Ghidra, Hex-Rays, RetDec ve Snowman yer alır
- Her araç adı ilgili web sitesine veya depoya bağlanır; böylece karşılaştırma sonuçlarını incelerken araç bilgilerini de doğrudan görebilirsiniz
Binary yükleme koşulları
- Dogbolt, kullanıcıların binary dosya yükleyip decompile sonuçlarını inceleyebildiği bir akış sunar
- Dosya boyutu 2 MB’tan küçük olmalıdır
- Yüklenen binary’lerin saklandığı bilgisi ve bir FAQ bağlantısı birlikte gösterilir
Önce örneklerle inceleme mümkün
- Dosyayı doğrudan yüklemeden inceleyebileceğiniz bir örnek listesi bulunur
- Örnekler, birden fazla decompiler sonucunu yan yana incelemek için hazırlanmıştır
1 yorum
Hacker News yorumları
Paylaşan kişiye bu haftaya kadar beklediği için teşekkür etmek istiyorum. Muhtemelen yakın zamanda C++ Weekly'de ele alınmasının etkisi var; iyi bir kaynak: https://www.youtube.com/watch?v=h3F0Fw0R7ME
Daha geçen haftaya kadar ciddi performans sorunları vardı; şimdi kuyruk(https://dogbolt.org/queue) genel olarak iyi görünüyor. Bazı decompiler'ların geride kaldığı uzun darboğazlar dışında oldukça akıcı çalışıyor; Josh ve Glenn de harika iyileştirmeler yapıyor: https://github.com/decompiler-explorer/decompiler-explorer/c...
İlgili yazı: Decompiler Explorer - https://news.ycombinator.com/item?id=32079227 - Temmuz 2022, 82 yorum
Doktora araştırmam sırasında, özellikle obfuscate edilmiş kod için derin öğrenme üzerine çalışırken buna gerçekten ihtiyaç duyardım gibi geliyor.
Deneylerin başında Ghidra çoklu işlemeyle iyi uyuşmuyordu ve işlenecek çok veri olduğu için angr'a geçmiştim. Belki Ghidra ile de yapılabilirdi ama aynı işi angr ile yapmak çok daha kolaydı. İsmi de hoşuma gitti. Yine de Compiler Explorer'ın proje adı, Godbolt'un ise yazarın soyadı olduğunu belirtmek isterim; ama Godbolt'u fiil gibi kullandığımız noktaya geldiysek o gemi kalkmış gibi
İkili dosyaları çeşitli ara temsillere (IR) lift etmeyi keşfetmeye yarayan benzer bir araç olsa iyi olurdu. Örneğin Ghidra p-code ve sleigh, LLVM Machine IR, Qemu TCG gibi şeyler
Binary Ninja'nın temel aldığı, çeşitli katmanlardan oluşan ara dil seti BNIL de ilginç olabilir. cloud.binary.ninja arayüzünde veya demoda dışa açılmış hâlini görebilirsiniz
Decompiler konusu açılmışken, Binary Ninja'yı seçmek güvenli bir tercih olur mu merak ediyorum. IDA'nın standart olduğunu duydum ama hobi olarak tersine mühendislik yapmak isteyen biri için pahalı da
Kişisel olarak Binja'nın en büyük avantajı ara dil (IL). Yüksek seviyeli IL decompiler işlevi görüyor; ama assembly ile kaynak kod arasındaki aşamalar olarak düşük seviye ve orta seviye IL de sunuluyor. Decompiler çıktısı biraz tuhafsa, neler olup bittiğini daha iyi anlamak için IL'ye bakabiliyorsunuz; IL'nin kendisi de saf assembly'den çok daha okunabilir olduğu için sıkça kullanıyorsunuz. Diğer platformlarda buna düzgün karşılık gelen özellik neredeyse yok. Ghidra ve IDA'nın da her birinde birer IL var ama Binja'nın insan tarafından okunabilir IL'sine kıyasla daha çok makine tarafından okunabilir tarafta kalıyorlar
Eksik olan Python betikleme; bu da epey büyük bir fark. Yine de ücretsiz bir araç için şikâyet etmek zor. IDA ve Ghidra'nın güçlü ve zayıf yönleri, ayrıca topluluk eklentileri farklı; bu yüzden ikisini de kullanmak muhtemelen daha iyi
Çok iyi. Yakın zamanda bir emülatör projesi üzerinde çalışırken kendi disassembler'ımı geliştiriyorum; makine kodu kalıplarını genelleştirilmiş bir biçime dönüştürüp ardından C benzeri sözde koda nasıl çevireceğimi sürekli düşünüyorum.
Bu yüzden son zamanlarda kendim oyuncak bir decompiler yapmayı ciddi ciddi istiyorum
[1] https://docs.binary.ninja/dev/bnil-overview.html
[2] https://riverloopsecurity.com/blog/2019/05/pcode/ örnek
Uzman olmayanların bakabileceği iyi ve ayrıntılı bir decompiler öğreticisi var mı?
dogbolt'un çıktısını godbolt'a koymayı deneyebiliriz
Bunu görünce başka şirketleri ikna etmeye pek gerek kalmamış gibi geliyor. Küçük ikili dosya boyutunun ve rakip karşılaştırmalarının daha fazla işe dönüşeceğini fark etmiş olmalılar.
Servisler arası sorunları sınıflandırmak ve çözümleri karşılaştırmak için tam uygun küçük bir çözüm gibi görünüyor
Maliyet özellikle ucuz değil. Decompiler çalıştırmak epey işlem kaynağı gerektiriyor; özellikle bazı decompiler'lar için verimli demek zor
Geçen yıl paylaşıldığında görmüş olmayı isterdim. Gerçekten harika ve çok kullanışlı