REA mı Ghidra mı: Hangi Tersine Mühendislik İş Akışı Size Uygun?
REA ve Ghidra’yı görevler, girdiler, çıktılar, elle kontrol, kurulum gereksinimleri ve Ghidra’yı REA üzerinden kullanma seçeneği açısından karşılaştırın.
Bu sayfadaki yenilikler
- — Kaynaklara dayanan topluluk örnekleri, pratik rehberler ve kanıtların sınırlarını açıklayan bilgiler yayımlandı.
Bir yerel ikili dosya analiz projesini doğrudan keşfedip düzenlemek istediğinizde Ghidra’yı; bir kodlama ajanının veya CLI’ın yazılımı inceleyip kanıtlarıyla birlikte bulgular sunmasını istediğinizde REA’yı kullanın. REA, Ghidra’yı yerel kod analiz sağlayıcısı olarak kullanabilir; dolayısıyla iki araç aynı iş akışının parçaları olabilir.
Bu, bağımsız bir topluluk karşılaştırmasıdır. REA deposu ve Ghidra deposu, güncel yetenekler ve gereksinimler için birincil kaynaklardır.
REA ile Ghidra arasındaki fark nedir?
Ghidra; assembly çözümlemesi, tersine derleme, grafikler, betik yazımı ve etkileşimli veya otomatik analiz sunan bir yazılım tersine mühendislik altyapısıdır. Ghidra’nın kendi analiz ortamı, analiste inceleme üzerinde doğrudan kontrol sağlar. Resmî Ghidra README dosyası, işlemci, çalıştırılabilir dosya biçimi ve eklenti desteğini açıklar.
REA; yerel ikili dosyalar, JavaScript/Electron uygulamaları, tarayıcı sayfaları ve yönetilen assembly’ler gibi çeşitli hedef gruplarını kapsayan bir MCP sunucusu ve CLI’dır. Bir kodlama ajanı REA’nın araçlarını çağırır, bulguları ve sınırlamaları alır ve sırada neyi inceleyeceğine karar verir. Derinlemesine yerel kod analizi için REA, desteklenen bir Ghidra, Hopper veya IDA kurulumuna bağlanır. REA’nın yerel kod rehberi bu sağlayıcı ilişkisini açıklar.
| Neye ihtiyacınız var? | Daha uygun başlangıç noktası | Girdi | Çıktı veya avantaj |
|---|---|---|---|
| İkili dosyanın işlevlerini ve grafiklerini elle izlemek | Doğrudan Ghidra | Desteklenen ikili dosya | Tam etkileşimli analiz ortamı ve doğrudan proje kontrolü |
| Ajana yerel bir özelliğin neden belirli bir şekilde davrandığını sormak | Desteklenen bir yerel kod sağlayıcısıyla REA | İkili dosya ve odaklı bir soru | Ajanın yönlendirdiği bulgular, kanıtlar ve açıklama |
| Bir analiz projesini zaman içinde saklayıp geliştirmek | Doğrudan Ghidra | İçe aktarılmış program ve analistin değişiklikleri | Kontrolünüzde olan kalıcı bir proje iş akışı |
| Bir Electron modülünü veya IPC yolunu incelemek | REA’nın JavaScript iş akışı | Uygulama klasörü veya ASAR | Yerel kod motoru olmadan modüller, ilişkiler ve kaynak konumları |
| Tekrarlanabilir yerel kod analizi için betik yazmak | Gereken kontrole bağlı olarak ikisi de | İkili dosya ve analiz betiği veya CLI isteği | Ghidra betikleri veya REA’nın yapılandırılmış CLI sonuçları |
Ghidra ne zaman daha güçlü bir seçimdir?
Çalışma sürekli görsel keşfe, analistin ayrıntılı değişikliklerine, özel betiklere veya kalıcı bir program veritabanına dayanıyorsa doğrudan Ghidra’yı seçin. Ghidra’nın kendi arayüzü, analiz projesinin kendisine erişim sağlar. Deneyimli bir analist, her eylemi ajan isteğine dönüştürmeden komutları ve grafikleri inceleyebilir.
REA’yı Ghidra ile kullanmak, Ghidra’nın her özelliğini MCP üzerinden erişilebilir kılmaz. REA sağlayıcı belgeleri, doğrulanmış işlemleri ve ana sistem kısıtlamalarını açıklar. REA’nın belgelenmiş arayüzsüz iş akışı geçici bir proje kullanır; mevcut kullanıcı projenizi açmaz. Mevcut projeyi sürdürmek bir gereksinimse Ghidra’nın doğrudan arayüzünü tercih edin.
Ghidra’nın kendi otomatik iş akışları ve betik iş akışları da vardır. Ghidra’nın yalnızca elle kullanıldığı iddiası yanlış olur. REA’nın yararlı farkı, otomasyona yalnızca kendisinin erişebilmesi değil, farklı hedef türleri için ortak bir ajan ve CLI arayüzü sunmasıdır.
REA ne zaman daha güçlü bir başlangıç noktasıdır?
REA, incelemeden uygulamaya uzanan odaklı bir soru için yararlıdır. Örneğin bir ajan bir hesaplamayı inceleyebilir, ilgili komutları ve referansları belirleyebilir, bir kuralı açıklayabilir ve ardından denemeniz için küçük bir uygulama kodu yazabilir. Ajanın vardığı sonucun yine de özgün davranışla karşılaştırılarak kontrol edilmesi gerekir.
Resmî DX-Ball vaka incelemesi, bir ses çağrısını konumu stereo ses konumuna dönüştüren yardımcı işleve kadar izler ve bu hesaplamayı C ile yeniden oluşturur. Proje, özgün x86 koduyla 3,205 test durumu ve derlenmiş işlevin 63 baytının tamamında eşleşme bildiriyor. Bu sonuçlar söz konusu uygulamalı örneğe aittir; REA için genel bir başarı oranı veya Ghidra’ya karşı bir performans üstünlüğü ortaya koymaz.
REA, yerel kodun tersine derlenmesi dışında da iş akışları sunar. Bir Electron uygulaması için statik JavaScript analizi, Ghidra’yı başlatmadan modülleri ve IPC ilişkilerini belirleyebilir. Bu, incelemeniz uygulama paketlemeyi, JavaScript’i ve seçili yerel kod bileşenlerini kapsadığında REA’yı kullanışlı bir giriş noktası yapar. REA’nın hedef tablosu ayrı ön koşulları listeler.
Ghidra’yı REA üzerinden nasıl kullanırsınız?
REA sağlayıcı belgelerinin desteklediği bir Ghidra sürümü ve JDK kurun, ardından REA’yı bu kurulumu kullanacak şekilde yapılandırın. REA kurulumu, doğrulanmış mevcut yolları kaydedebilir; kurulum sizin için Ghidra veya Java indirmez ya da kurmaz. Resmî kurulum rehberi güncel yapılandırma talimatlarını içerir.
En son Ghidra sürümünün kurulu REA paketinizle kendiliğinden uyumlu olduğunu varsaymayın. Ghidra’nın güncel sürüm gereksinimleri ile REA’nın test edilmiş sağlayıcı aralığı farklı amaçlara hizmet eder. Bu yazının tarihinde, REA’nın main dalındaki kurulum rehberi Ghidra 12.1.x sağlayıcı kontrolünü açıklıyor; sürüm seçmeden önce bu rehbere ve kurulu sunucunun yeteneklerine bakın.
Sağlayıcıyı yapılandırdıktan sonra, yalnızca ilgili sağlayıcıya yönelik bir tanılama komutu şöyledir:
npx -y rea-agents@latest doctor --provider ghidra --json
Ghidra destekli işlemler, ilk sorguda içe aktarma ve otomatik analiz için zamana ihtiyaç duyabilir. Büyük ikili dosyalar daha uzun bir sağlayıcı başlatma zaman aşımı süresi gerektirebilir; MCP istemcisinin ise kendine ait daha kısa bir istek zaman aşımı süresi olabilir. Bu durumu tanılarken belgelenmiş zaman aşımı ve kurtarma rehberini kullanın.
Hangi sınırlamalar kararınızı etkilemeli?
REA’nın sağlayıcı desteği ana sisteme ve hedefe göre değişir. Windows Ghidra P0 kapsamı açıkça deneyseldir ve Ghidra’nın genel platform ve biçim desteğinden daha dardır. Ghidra’nın bir dosyayı elle içe aktarabilmesinden uyumluluk sonucu çıkarmak yerine Windows sağlayıcı rehberini okuyun.
REA’nın main dalı, @latest ile kurulan npm paketinden daha yeni özellikler de açıklayabilir. Bir paket sürümünün çalışıyor olması, tek başına main dalındaki her işlemin kullanılabildiğini göstermez. Sürüm sınırını ve bağlı araçların şemalarını kontrol edin.
Her iki iş akışı da sağlıklı değerlendirme gerektirir. Tersine derlenmiş sözde kod özgün kaynak kod değildir, dolaylı davranışlar çözümlenemeyebilir ve bir kodlama ajanı doğru kanıtları yanlış yorumlayabilir. Önemli sonuçları ilgili komutlar, referanslar ve kontrollü bir davranış kontrolüyle doğrulayın.
REA ve Ghidra hakkında hangi sorular soruluyor?
REA, Ghidra’nın yerine geçer mi?
REA, Ghidra’yı motor olarak kullanabilir ve Ghidra’nın tam etkileşimli ortamının yerine geçmez. Göreve uygun arayüzü seçin veya ikisini birlikte kullanın.
Araçlardan biri ücretsiz mi?
REA tarafından yazılmış kod MIT lisanslıdır. Ghidra, yayımlanmış lisansı ve üçüncü taraf bildirimleri bulunan açık kaynaklı bir projedir. Kodlama ajanının model erişimi ve Hopper veya IDA gibi isteğe bağlı ticari sağlayıcılar ayrı koşullara tabidir. REA’nın lisansına ve Ghidra’nın lisansına bakın.
Ghidra olmadan JavaScript inceleyebilir miyim?
Evet. REA’nın statik JavaScript/Electron iş akışı, yerel kod tersine derleyicisi yerine Node.js ve npm kullanır. Bu uygulamadaki bir yerel kod eklentisi, kendi gereksinimleri olan ayrı bir analiz hedefidir.
Yeni başlayan biri önce hangi aracı denemeli?
Assembly ve elle ikili dosya analizini öğrenmek için Ghidra’nın kendi materyalleriyle başlayın. Soruların yönlendirdiği ajan incelemesini öğrenmek için REA’nın Notes örneğiyle veya REA kurulum rehberimizle başlayın. Daha küçük bir hedef ve kontrol edilebilir bir soru, her iki yolu da değerlendirmeyi kolaylaştırır.