Neleri ve Decompilers?

Kaynak koduna erişmeksizin özel yazılımlar analiz etmek genellikle özel araçlar gerektirir. Dislokrs ve decompilers, araştırmacılara, güvenlik analistlerine ve geliştiricilerine farklı düzeylerde özetlenebilir binerler. AurFLT:0disoryr[FLT], C veya programlama diline tekrar giriş yaparak, işlemcinin yürütülmesine izin veren iki ayrı talimat verir.

Nasıl Disisyoner İşliyor

Dislokatörler doğrudan ikili dosyaları üzerinde çalışır -PE, ELF, Mach-O veya ham bilgisayar görüntüleri - talimata uygun olarak veya bunları kendi montaj mnemoniklerine haritalar. Süreç, x86, ARM veya MIPS gibi bir şekilde ayarlanan kodlar için daha doğru çalışır.

Nasıl Decompilers Work

Decompilers, analiz ile disassembly'i birleştirir ve özetleme seviyesini yükseltmek için uygulanır. Birincisi, ikiliyi parçalar, ifadeler ve fonksiyon aramaları yapmak için kontrol akışı analizlerini gerçekleştirirler.The Printworks (CFG) ve C benzeri olmayan pnömatik kodlar ve heuristics gibi veri akışı analizi genellikle yapılandırılabilir, düzgün bir şekilde geri dönüşümlü ve düzgün bir şekilde kurtarılabilir form.

Dislokers ve Decompilers in Practice

Güvenlik Analizi ve Vulnerability Research

Güvenlik profesyonelleri, bağımsız olarak bellek yolsuzluklarını, uygunsuz giriş doğrulamayı veya zor kodlanmış kimlikleri tespit edebilir.Bilgeli olmayan olaylar - OpenSSL'deki Kalpsiz kırılganlığı keşfi veya arka kapıdaki güvenlik keşfi gibi - aslında ikili analizleri inceleyerek başladı.

Malware Analysis

Malware örnekleri neredeyse hiçbir zaman kaynak kodu ile dağıtılmamıştır. Analistler kötü niyetli maaş yükünü anlamak için söküp, şifreleme rutinlerini tanımlamak ve komut komut ve kontrol iletişimini izlemek için bu çalışmayı hızlandırırlar çünkü bu alanda özellikle popülerdir.

Kayıp veya Miras Kaynağı Kodu Yeniden Keşfetmek

Eski yazılımı korumak bazen orijinal kaynağı fakir sürüm kontrolü veya personel cirosu nedeniyle kaybeder.Decompilation, kod tabanının işlevsel bir eşdeğerini yeniden inşa etmeye yardımcı olabilir, bakım veya modern platformlara porting sağlar.Ancak, decompiled çıktı önemli bir temizlenebilir, aksi takdirde elde etmek imkansız olacaktır.

Öğrenme Perrietary Algorithms ve Interoperability

Yetkinler veya açık kaynak projeleri, özel protokolleri veya dosya formatları ile birlikte çalışmanız gerekebilir. İlgili binerleri, algoritmanın yapısını, veri formatlarını ve devlet makinelerini ortaya koyar. Bu, geleneksel yazılımlar için uyumlu damla değiştirmelerin geliştirilmesinde yaygındır. Benzer şekilde, eklenti yazmak veya uzatmak isteyen geliştiriciler genellikle ikili arayüzleri tersine çevirmek zorundadır.

Popüler Dismingrs ve Decompilers

IDA Pro (Interactive Dismingr)

IDA Pro, ikili analiz için de facto standarttır. düzinelerce CPU mimarisini destekliyor, güçlü bir senaryo arayüzü (IDAPython) sunuyor ve Hex-Rays decompiler ile entegre ediyor.

Ghidra

Ulusal Güvenlik Ajansı tarafından geliştirilmiş ve açık kaynak olarak yayınlandı, Ghidra rakipleri IDA birçok açıdan çok saygı duyuyor.Bu, eklenti geliştiricilerinin inşa edilmiş bir topluluğuna sahip.(Python veya Java), ve işbirliğine dayalı analiz özellikleri. Ghidra'nın decompiler özellikle x86, ARM ve PowerPC binerler için güçlü.

Radare2

Radare2, disassembly, decompilasyon sunan bir komuta-line ters mühendislik çerçevesidir (ENFLT:0) veya [[ENFLT:1) eklentiler ve debugging yetenekleri yüksektir.Bu, otomasyon ve entegrasyon için daha büyük analiz hatlarına idealdir. Radare2 ücretsiz ve açık kaynaktır.

HexRays Decompiler

HexRays, x86, x64, ARM ve PowerPC'yi destekleyen IDA Pro için ticari bir dekompiler eklentidir ve mevcut en doğru dekompiler olarak yaygın olarak görülür. Birçok güvenlik firması ve kırılgan araştırmacılar Hex-Rays'i iş akışları için temel alır.

Diğer Notable Tools

  • [FONT=0)Hopper (macOS ve Linux) – hem de kullanıcı dostu bir GUI ile birlikte farklılaşma sunar.
  • [FONT=0)Binary Ninja) - modern bir ters mühendislik platformu, bize uygulanabilirlik ve güçlü bir orta dil ile odaklanır.
  • [FONT:0]objdump[Dönetici:2) ve [FONTD:0) [GNU binutils) – Unix sistemleri üzerinde hızlı denetimler için temel dislokatörler.

Meydanlar ve Sınırlar

Tamamlanan Kod Kompleksi

Compiler optimizasyonlar (kesinlikle, kayıt dışı, sürekli katlanma) orijinal kaynaktan önemli ölçüde farklı olan makine kodu üretmelidir.Decompilers, yüksek seviyeli dizilerden yüksek semantics yeniden inşa etmelidir, bu da belirsiz veya yanlış çıktıya yol açabilir. Gelişmiş obfuscation techniques – as virtualization based packers, control-flow flattening, and opaque predicates -further complicate analysis.

Yasallık ve Licensing

Alternatif mühendislik özel yazılımları birçok yargıda yasal olarak sınırlandırılmıştır. ABD'de Dijital Binyıl Copyright Yasası (DMCA), AB Copyright Yönergesi ve dünya çapındaki benzer yasalar, geçicilik için mühendislikten muaf olabilecek hükümler içerir, güvenlik araştırmaları veya eğitim, ancak sınırlar değişir.

Tamamlanmamış Çıktı

Dislokatörler tüm kod yollarını (örneğin, hesaplanmış adresler aracılığıyla dolaylı atlar) ele alamazlar ve depilers karmaşık veri yapıları veya doğrusal işlevleri yeniden inşa etmeye başarısız olabilir. Çıktılar genellikle manuel düzeltme ve bir notasyon gerektirir.

Yasal ve Etik Çerçeve

İzinsiz ve dekompilers kullanarak sözleşmeleri veya telif hakları yasalarını ihlal edebilir. Ancak, Dijital Tek Pazar'da Copyright'te birkaç yasal güvenli liman var. Güvenlik araştırmacıları, iyi niyetli güvenlik araştırmalarını yaparken, ABD Cybersecurity Information Paylaşım Yasası (CISA) ve Kuralları tarafından kabul edilen ABD'de, eğitim, para birimine ilişkin Yönergesi ile karşılaştırıldığında genellikle mühendislikten korunmaya olanak tanır.

Etik kullanım, yazılım yaratıcısının haklarına saygı gerektirir. Özel bir ürünün tam işlevselliğini çoğaltmak için kod kullanmayın ve izin almadan gizli algoritmaları yayınlamayın. Endüstri en iyi uygulamalar, ters mühendislik yoluyla bulunan güvenliklerin sorumlu açıklamasını teşvik eder.

Daha derin bir şekilde yasal yönlere atılması, U.S. Copyright Office'in Fair Use Index) ve [[Dönemli metin[Dönetici: 2)CISA metni[Dönetici:0).

Disassembly ve Decompilation

Makine destekli Analiz

Son araştırmalar, işlevleri sınıflandırmak, değişken türleri tanımlamak ve hatta decompile ikili parçaları doğrudan üst düzey dil ifadelerine girmek için sinir ağları kullanır.Ancak, AI-assisted mühendislik, obfuscated veya büyük binerler analizlerini hızlandırmaya söz verir.

Geliştirilmiş Platform Coverage

Yeni öğretim setleri ortaya çıkar (RISC-V, WebAssembly, vs.), disloker ve decompiler geliştiricileri destek veriyor. Ghidra, örneğin, 30'dan fazla mimarlık desteği ve topluluk katkıları IoT mikrokontrolörlerine ve blok sanal makinelere ulaşmasını genişletiyor.

Buluta Dayalı İşbirliği

İkili Ninja'nın bulut analizi ve Ghidra'nın paylaşılan proje dosyaları gibi araçlar ters mühendislik takımlarını dağıtabilir. Bu eğilim, işbirliği yazılım geliştirmesine yönelik daha geniş hareket aynaları ve özellikle büyük, karmaşık ihlaller veya kötü yazılım kampanyaları analiz etmek için faydalı.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Özel yazılımlara görünürlük kazanmak için elvezeler ve decompilers vazgeçilmez cihazlardır. Güvenlik denetimlerini, yazılım analizlerini, kod kurtarmasını ve orijinal kaynak koduna erişmeksizin geçici olarak, Ghidra, Radare2 ve Hex-Rays her biri farklı avantajları sunar ve açık kaynaklı topluluğu bu güçlü araçları demokratikleştirmeye devam eder. Ancak, kullanıcılar yasal ve etik kısıtlamalara uymalıdır.