Tüm barındırma hizmetlerinde 15% tasarruf edin

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
AI Yönetim

REA Araştırması: AI-Destekli Ters Mühendislik Nasıl Çalışır

REA nedir—ve neden insanlar buna dikkat ediyor?

Bir uygulamayı her gün kullanabilirsiniz ve özellikleri nasıl çalıştığını bilmeyebilirsiniz. REA, AI asistanlarına orijinal kaynak kodu olmadığında bile bu davranışı araştırma yolu sağlar.

Person using a magnifying glass to investigate something closely

REA (Reverse Engineer Anything), morluto/rea adresindeki açık kaynaklı proje olup, AI ajanlarını yazılım analizi iş akışlarına bağlar. Analiz işlemlerini komut satırı arayüzü—yazılan terminal komutları—ve uyumlu AI uygulamaları için bir araç sunucusu aracılığıyla ortaya çıkarır. Bir ajan, çok adımlı bir görev genelinde araçları kullanabilen bir AI uygulamasıdır. REA, temel AI modelini değil, analiz araçlarına erişim sağlar.

Ayrım önemlidir: bitmiş bir uygulamayı araştırmak, benzer bir uygulama yazmak ve orijinal kaynak kodunu kurtarmak farklı başarılardır. REA’nın yararlılığı toplanan kanıtlara, uygulanan kontrollere ve kalan sorumlulukların bağlı olur. “Anything” projenin adıdır, her ürünün sadık bir şekilde yeniden oluşturulabileceğinin garantisi değildir.

Ters mühendislik: bitmiş programdan öğrenme

Ters mühendislik, bitmiş sonucu inceleyerek bir şeyin nasıl çalıştığını öğrenmeyi ifade eder. Orijinal tasarım çizimlerine sahip olmayan bir makineyi düşünün: parçalarını ve davranışını incelemek yeni bir tasarımı destekleyebilir, ancak tasarımcının orijinal çizimlerini vermez. Benzer şekilde, yazılımın davranışını anlamak, geliştiricilerin yazdığı kaynak kodu geri kazanmaz.

Person using a wrench to investigate something closely

Bir programın işlemci tarafından hazır hale getirilmiş şekli olan yerel yürütülebilir dosya için, bir derleyici kaynak kodu makine talimatlarına çevirir. Bunlar işlemcinin anladığı işlemlerdir. Derleme, programı optimize edebilir, amacı koruyan davranışını korurken işi yeniden düzenleyebilir veya birleştirebilir. Sonuç, kaynak projesinin sıkıştırılmış bir arşivi değil, yürütülebilir yazılımdır.

Disassembly, makine talimatlarını okunabilir assembly olarak sunar. Decompilation daha ileri giderek, pseudocode adı verilen daha yüksek seviyeli, kaynağa benzer mantık çıkarır. Ghidra gibi araçlar her iki görünümü de sağlar:

1) Forward production path:
Original source
       ↓
Compile / optimize
       ↓
Native executable
2) Separate analysis path:
Native executable
       ↓
Disassembly / decompilation
       ↓
Assembly / inferred pseudocode
  Original names, comments and structure may be missing
       ↓
Behavior to verify

Yerel kod durumu: derleme yürütülebilir dosyayı üretir; analiz okunabilir bir görünüm ve davranışı doğrulamak için çıkarır. Orijinal kaynak dosyalarına garantili bir ters yol yoktur.

Bilgi kaybı eşitsizdir. Yorumlar ve birçok ad kaybolabilirken, metin dizeleri, bazı adlar ve açıklayıcı meta veriler kalır. Optimizasyon, tanıdık kaynak yapılarını tanımayı zorlaştırabilir. Farklı kaynak uygulamaları da benzer makine davranışı üretebilir, bu nedenle makul bir yeniden yapılandırma programcının orijinal ifadesini eşleştirmesi gerekmez.

Her uygulama yerel makine kodu değildir. Paketlenmiş JavaScript, okunabilir kaynak veya dağıtım için kısaltılmış minified kod içerebilir. Bir pakette zaten mevcut olan kaynağa benzer materyali okumak, makine talimatlarından pseudocode çıkarmaktan farklıdır. Hayatta kalanlar, analizin hangi soruları cevaplayabileceğini belirler.

REA bir soruyu nasıl kanıt döngüsüne dönüştürür

Projenin DX-Ball araştırması pratik bir soruyla başladı: bir tuğlanın yatay ekran konumu ses panoramasını, sol ve sağ ses arasındaki dengeyi nasıl belirler? İlk decompiler görünümü bir sayıyı dönüştüren bir çağrı gösterdi, ancak arkasındaki girişi ve hesaplamayı atladı. Sesin konumunu açıklamak için yeterli değildi.

Instruction görünümü eksik girişi ve aritmetiği ortaya çıkardı. Bunu çağıran işlevi incelemek, girişin tuğlanın ekran koordinatı olduğunu gösterdi. Depolanan değerleri okumak, hesaplamanın sabit sayılarını ve panoramayı ölçeklendiren ayarı sağladı.

Sonuç somut bir kuraldı: olağan ölçekte, ekranın merkezi ortalanmış panoramaya eşlenir, her iki taraftaki konumlar dengeyi sola veya sağa kaydırır. Yeniden yapılandırma projesi daha sonra bu kuralı C’de yazabilir ve orijinal işlevle karşılaştırabilir.

Presenter explaining a software workflow with connected process blocks

Dört rol bu araştırmayı mümkün kılar.

  • Siz yetkili soruyu belirlersiniz.
  • Agent takip soruları seçer ve sonuçları yorumlar.
  • REA araç erişimi sağlar ve kanıt döndürür.
  • Bir analiz motoru veya parser hedef yapıyı inceler—incelenen dosya veya paket.

Yerel motorlar Ghidra, Hopper ve IDA’yı içerir.

Bağlantı Model Context Protocol (MCP) kullanır, AI uygulamalarının harici araçlara ve sistemlere ulaşmasının standart bir yoludur. REA’nın MCP sunucusu bu işlemleri ortaya çıkaran yazılımdır, kiralamak zorunda olduğunuz bir makine değildir. Bir skill agent için araştırma talimatları sağlar; sunucu işlemlerin kendisine erişim sağlar. Temel değişim şöyle görünür:

Your feature question
         ↓
Agent
         ↕ MCP
REA tool server
         ↕
Analysis engine / parser
         ↕
Target software

İstekler hedefe doğru hareket eder; kanıt agent’e döner ve bu da sonraki soruyu seçmek için kullanır. Araştırma geliştikçe değişim tekrarlanır.

Agent bu takip soruları koordine eder ve döndürülen kodu ve referansları bir açıklamaya bağlar. Kanıt kayıtları dosya ve kod konumlarını tanımlar, gözlemleri çıkarımlardan ve çözülmemiş bulgulardan ayırır. Bir gözden geçiren bu nedenle açıklamayı destekleyici materyaline geri izleyebilir. Agent ayrıca, orijinalin ne yaptığını belirlemekten ayrı bir adım olarak, aday kodu ve testleri taslak olarak hazırlayabilir.

Herhangi bir hedef için statik inceleme‘yi, yapıyı çalıştırmadan okuyan, runtime gözlemi veya etkileşimi‘nden ayırın, bu da onu çalışırken inceler. Bu incelemenin nerede gerçekleştiği, modelin bulgularını nerede işlediğinden de ayrıdır. Agent barındırılan bir model kullanırsa, döndürülen sonuçlar analiz makinesini terk edebilir.

REA hangi tür yazılımları inceleyebilir?

Görünürlük hedefe bağlıdır. Electron, web teknolojilerini kullanarak masaüstü yazılımını paketler, .NET ve Android ise farklı analiz yollarına sahip ayrı uygulama aileleridir. Her biri farklı bilgiler ortaya koymaktadır; tablo bunu göstermektedir:

HedefOrtaya çıkarabileceği şeylerKoşul veya sınır
⚙️ Native binariesTalimatlar, çıkarılan sözde kod, korunan dizeler, çağrılar ve referanslarDerin analiz Ghidra, Hopper veya IDA gibi bir motor kullanır; çıktı orijinal kaynak değildir.
📦 JavaScript / ElectronPaketlenmiş modüller, içe aktarmalar, uygulama ilişkileri ve dağıtılan kodu kaynağa bağlayan kaynak haritaları (mevcut olduğunda)Yerleşik statik inceleme; minifikasyon ve çözülmemiş ilişkiler yorumlamayı sınırlayabilir.
📱 .NET / Android.NET meta verileri ve talimatları native makine kodundan kaynağa daha yakın; Android paket bildirimleri ve decompile edilmiş yöntemlerTemel .NET incelemesi yerleşik ve statiktir; Android yöntemi analizi JADX gibi ekstra araçlara ihtiyaç duyabilir.
🌐 Tarayıcıda görünen web siteleriTeslim edilen sayfa yapısı, betikler ve gözlemlenen istekler/yanıtlarYetkili gözlem normalde özel arka uç uygulamasını ortaya koymaz.

REA bu kategorilerin ötesinde daha geniş yapı kapsamını belgeler. Resmi hedef genel bakışını ve güncel belgelendirmeyi kontrol edin: gereksinimler motora, ana bilgisayar platformuna, hedefe ve sürüme göre değişir. Bunlar, her hedefin doğrulanmış yeniden yapılandırmaları değil, mevcut inceleme iş akışlarını tanımlar.

İkna edici bir demo, doğrulanmış bir yeniden yapılandırma değildir

Halka açık gösteriler, REA’nın neler yapabileceğinin daha somut bir resmini sunar. Çevrimiçi olarak paylaşılan bir hesap makinesi yeniden yapılandırmasında, yapay zeka destekli analiz GNOME Calculator’ın bir Python versiyonunu üretti. Buna benzer görünür yeniden yapılandırmalar yanında, daha dar kapsamlı projeler yeniden yapılandırılan hesaplamayı orijinaliyle karşılaştırır.

Halka açık gösterim — ikinci elden bildirilmiş
Yeniden yapılandırma GNOME Calculator’a benziyordu ve temel bir aritmetik sonucuyla eşleşiyordu. Bildirilen yeniden boyutlandırma sorunları, başarılı bir aritmetik kontrolün yakalamayacağı görünür bir uyumsuzluğu ortaya çıkardı.

Proje tarafından bildirilen işlev yeniden yapılandırması
DX-Ball vitrin, bir konum-ses-pan işlevi için 3.205 orijinal-x86 karşılaştırma durumu ve tarihsel bir derleyici kullanılarak eşleşen derlenmiş baytları bildirir.

Hesap makinesi görünür bir yeniden yapılandırmayı gösterir; DX-Ball belirli bir hesaplamanın kontrollerini belgeler. Her sonuç farklı bir soruya cevap verir.

Illustration of a person circling the first item on a large verification checklist

DX-Ball için karşılaştırmalar ekran konumlarını ve birkaç pan gücünü kapsadı. C işlevinin dönüş değerlerini orijinal talimatları yürütmekten elde edilen değerlerle karşılaştırdılar. Bu C’yi tarihsel bir derleyiciyle derlemek, işlevin baytlarını da yeniden üretti. Bunlar iki farklı kontroldür: test edilen çıktılar üzerinde anlaşma ve derlenmiş işlev üzerinde anlaşma, programcının orijinal kaynak metnini gerektirmeden.

GNOME Calculator’ın ayrıca gelişmiş, finansal ve programlama yetenekleri vardır. Basit aritmetik karşılaştırması bu özellikleri değerlendirmez, bunun yerine yeniden yapılandırmada çalışıp çalışmadığını göstermez. Kaynağı halka açıktır, bu nedenle kaynak incelemesi bakım sorunuzu cevapladığında daha doğrudan bir başlangıç noktası olabilir. Faydalı ilerleme, görsel benzerlikten seçili davranış kontrollerine, ardından ihtiyacınız olan davranış için sistematik karşılaştırmalara gider.

“Her şey” vaadinin sınırlarına ulaştığı yerler

Eksik kaynak bağlamı, bir bileşeni yorumlamayı zorlaştırabilir. Optimizasyon mantığını gizleyebilirken, obfuscation kodu kasıtlı olarak anlaşılması zor hale getirir. Harici bağımlılıklar başka bir boşluk oluşturur: bazı yürütme yolları araştırma sırasında kullanılamayan girdiler, hizmetler veya koşullar gerektirir. Dikkatli analiz bile, bir özellik incelenen bileşenin dışındaki davranışa bağlı olduğunda kenar durumları çözülememiş bırakabilir.

Bağımsız bir karşı ağırlık, 14 Ekim 2026 tarihli Ishank Choudhary’nin REA 6.4.0’ı kapsayan raporundan gelir. Yararlı Electron uygulama yapısı buldu ancak preload bağlantılarını kaçırdı: bir Electron sayfasını masaüstü tarafı yetenekleriyle bağlayan köprü kodu. Statik araçları bir ajan veya yerel analiz motorları olmadan test etti; bulgular bu sürüm ve iş akışı hakkındadır, her güncel sürüm hakkında değil.

Robot beside a warning symbol illustrating the limits of AI-assisted tools

Rapor ayrıca sonuç bütçeleri nedeniyle uygulama özetinden çıkarılan ilişkileri açıklamıştır—saklanan çıktı üzerindeki sınırlar. Bazı gerçekler dosya düzeyinde kalmış, bağlantıları özette görünmemiştir. Eşleşme olmayan tamamlanmış bir tarama, bu nedenle saklanan analizin ilişkiyi bulamaması anlamına gelir, özelliğin yokluğu değil. Kapsam sınırları bu kaçışı açıklamıştır.

Çaba, analiz motorunu kurmak ve ihtiyaç duyduğu işlem gücü ve belleği sağlamakla başlar. Model kullanımı kendi hususiyetlerini getirir: bağlam, aynı anda ne kadar malzemeyi göz önünde bulundurabileceğini belirlerken, tokenler işlediği metin birimleridir. Tekrarlanan sorgular çabayı artırır, ardından ilk çıktıdan sonra test ve insan onarımları gelir. Gerçek faturalar, donanım ihtiyaçları ve tamamlanma süreleri hedefe ve soruya bağlıdır. REA’nın hız veya kaliteye kendi katkısını ölçmek, kontrollü bir karşılaştırma gerektirir.

Kopyalamanın ötesindeki yararlı uygulamalar

Geliştiriciler, kendi sunucularını yönetenler ve geçiş ekipleri için değer genellikle belirli bir bakım veya uyumluluk sorusuna yanıt vermekte yatmaktadır. Aşağıdaki senaryolar açıklayıcı niteliktedir, bu yayıncıdan test edilmiş dağıtımlar veya sonuçlar değildir.

🛠️ Geliştirici / bakımcı

Eski bir yardımcı programın iki yetkili sürümünü karşılaştıran bir bakımcı, bir içe aktarma sonucunun neden değiştiğini sorabilir. REA, ayrıştırma mantığını bulmaya ve regresyon kontrollerini yönlendirmeye yardımcı olabilir. Tam kaynak zaten bu soruya yanıt veriyorsa, oradan başlayın; aksi takdirde, çıkarılan nedeni değişen davranışa karşı doğrulayın.

🏠 Kendi sunucusunu yöneten

Eski bir yerel dosya biçimiyle çalışan kendi sunucusunu yöneten biri, alanlarını anlamak için REA’yı kullanabilir. Bu bulgular, bağımsız olarak uygulanmış bir uyumluluk köprüsü tanımlamaya yardımcı olabilir. Tescilli bağımlılık için yasal, hazır bir değiştirme, yine de belgelenmemiş durumları test etmeyi ve geçerli hakları kontrol etmeyi gerektirir.

💼 İşletme / geçiş ekibi

Bir geçiş ekibi, gerekli bir dışa aktarma davranışının uygulamayı sipariş etmeden önce desteklenip desteklenemeyeceğini bilmesi gerekebilir. REA, teknik fizibiliteyi belirlemeye ve neyin oluşturulması gerektiğini açıklığa kavuşturmaya yardımcı olabilir. Bu bulgu bir yatırım kararını bilgilendirebilirken, teslimat tahminleri, destek taahhütleri ve tam uyumluluk daha fazla değerlendirme gerektirir.

Eğitim ve yetkili güvenlik araştırması aynı yaklaşımı kullanabilir. Bir açıklamadan daha ileri bir eyleme geçmeden önce, neyin incelenebileceğini, çalıştırılabileceğini veya paylaşılabileceğini tanımlayın. Bu kapsam, teknik soru basit görünse bile araştırmayı yönetir.

Teknik erişim, yetkilendirme, gizlilik veya güveni çözmez

Bir dosyayı inceleme izni, onu çalıştırma, trafiğini gözlemleme, bulguları yayınlama veya korumalı materyali yeniden kullanma izni ile farklı olabilir. Haklar geçerli kanun ve sözleşmelere bağlıdır: koşullu birlikte çalışabilirlik hakları, ABD’dekiler de dahil olmak üzere, dünya çapında kurallar değildir ve bir kopya sahibi olmak her işlemi yetkilendirmez.

Person beside a rules document and a warning sign

REA’nın MIT lisansı, REA tarafından yazılan kodu kapsar, hedef uygulamaları, korumalı varlıkları veya otomatik olarak oluşturulan çıktıyı kapsamaz. Ticari analiz motorlarının kendi lisansları gerekir. Sorumlu kullanım feragatnamesi, amaçlanan kullanımları ve topluluk desteği sınırlarını tanımlar ve MIT’yi değiştirmez; kurtarılan kaynak otomatik olarak açık kaynak veya yeniden dağıtılabilir hale gelmez.

⚠️ Uyarı: Gizlilik ve yürütme riskleri

Yerel analiz, bulguları—kod, kimlik bilgileri veya kişisel veriler dahil—aracının model sağlayıcısına gönderebilir. Gizli hedefleri analiz etmeden önce giden verileri ve sağlayıcı şartlarını kontrol edin. REA bir **sandbox değildir**: statik ayrıştırma araç güvenlik açıklarını ortaya çıkarabilir, hedefleri çalıştırmak veya bunlarla etkileşim kurmak dosyaları değiştirebilir veya hesapları ve hizmetleri etkileyebilir. Araçların nerede çalıştığına değil, gerçek işlemleri ve kapsamayı gözden geçirin.

Resmi paket ve güncelleme kaynaklarını kullanın, ancak aynı zamanda bağımlılıkları, oluşturulan çıktıyı, bakım sahipliğini ve düzeltmelerin nasıl geldiğini gözden geçirin. Satıcı yazılımı, açık kaynak projeleri ve yapay zeka tarafından oluşturulan alternatiflere aynı titizliği uygulayın: resmi kaynak, fiyat, kaynak kullanılabilirliği veya kaynaktan derleme, net bir köken ve inceleme geçmişinin yerini tutamaz.

REA’nın yazılım sahipliği ve bulut için anlamı

Developer presenting a code window connected to an API cloud

Yazılımı bir kez yeniden oluşturmak, gelecekteki gelişimini finanse etmez. Birinin güvenlik açıklarını yamalı tutması ve uyumluluğu koruması gerekir. Kullanıcıları desteklemek ve ürünü geliştirmek de devam eden çalışma gerektirir. Daha erişilebilir araştırma, uzman çalışmasını tamamlayabilir; bu örnekler geliştiricilerin veya ücretli yazılımın eski hale geldiğini göstermez. Güvenilir güncellemeler ve sorumlu destek, uygulaması anlaşılması daha kolay hale gelse bile, bir ürün seçmek için nedenler olmaya devam eder.

Satıcılar daha fazla işlevselliği uzak sunucu teslimatına taşıyarak yanıt verebilirler, ancak buradaki kanıtlar REA tarafından yönlendirilen bir eğilim ortaya koymaz. Teknik fark istemci ve sunucu arasındadır: bir tarayıcı arayüz kodu ve yanıtları alırken, sunucu tarafı uygulaması normalde operatörde kalır.

Browser / client: delivered UI and scripts
Inspectable to the extent delivered / authorized
                   ↕
           Requests / responses
                   ↕
Server: application logic and database
Behavior observed ≠ exact private source revealed

Tam bir güvenlik sınırı değil, bir görünürlük sınırı: tarayıcı kaynakları ve yanıtları incelenebilir; arka uç kodu normalde uzakta kalır. Açığa çıkan veriler ve diğer güvenlik sorunları yine de mümkündür.

Bu API yanıtları—hizmetle değiş tokuş edilen veriler—bir özelliğin davranışı hakkında yeni bir uygulamayı bilgilendirmek için yeterli bilgi ortaya koymabilir. Bu rota, arka uç koduna erişim yerine gözlemlenebilir girdiler ve çıktılara dayanır. Kodu uzakta tutmak, hataları, açığa çıkan verileri veya yetkili araştırmanın olasılığını ortadan kaldırmaz.

SaaS ile, hizmet olarak yazılım, bir satıcı uygulamayı işletir.

  • Yetkili bir uygulamayı kendi kendine barındırmak, dağıtım üzerinde daha fazla kontrol sağlar. Daha sonra yamalama ve erişim yönetiminin sorumluluğunu üstlenirsiniz.
  • Yedeklemeler, izleme ve kurtarma da o uygulamayı çalışır durumda tutmanın bir parçası haline gelir.

Bir AlexHost Ubuntu VPS, incelenen bir uygulama veya uyumluluk köprüsü için bir altyapı seçeneğidir. Tam kök erişimi, konuk işletim sistemi üzerinde kontrol sağlar. Uygulamayı otomatik olarak güvence altına almaz veya harici model işlemesini özel yapmaz.

Sonuç: Daha kolay araştırma, otomatik kurtarma değil

Tanınabilir bir hesap makinesi penceresi umut verici bir ilk sonuç olabilir. Sonraki sorular, ihtiyaç duyduğunuz davranışın kontrol edilip edilmediği ve bunu kimin koruyacağıdır. REA, bu davranışı araştırmaya yardımcı olur; uygulama, doğrulama ve güvenilir işletim ayrı çalışmalar olmaya devam eder.

Daha derinlemesine okumak için, resmi REA projesi ve DX-Ball vitrininden başlayın. Tek bir küçük, yetkili soruya ve cevabın arkasındaki kanıtlara odaklanın. Bu, AI’nin tüm bir ürünü kopyalayıp kopyalayamayacağını sormaktan daha faydalı bir başlangıç noktasıdır.