Opus 5.5 ile Her Şeyin Tersine Mühendisliği Nasıl Yapılır?

Viral Opus 5.5 tersine mühendislik kursunun doğrulanmış sürümü: REA'yı kurun, her aşama için çabayı ayarlayın, sıcak fonksiyonları haritalayın ve tersine derleyin, gizlenmiş kod için bütçe ayırın, işi bir denetleyici ve çalışanlar arasında bölün, temiz oda spesifikasyonu yazın ve API sözleşmesi...

Ashley Innocent

Ashley Innocent

27 October 2026

Opus 5.5 ile Her Şeyin Tersine Mühendisliği Nasıl Yapılır?

Kurumsal İçin Apidog

Şirket İçi (On-Premises) Dağıtım

SSO ve RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfedin

Opus 5.5 ile herhangi bir şeyi tersine mühendislikle çözümlemek için modeli REA üzerinden bir disassembly motoruna bağlayın, ardından aşamalar halinde çalışın: hedefi yönlendirin, haritalayın, en yoğun fonksiyonları decompile edin, Opus'un bunları adlandırıp açıklamasını sağlayın, yalnızca davranış odaklı bir spec yazın ve bu spec'ten ayrı bir bağlamda yeniden inşa edin. Çaba seviyesini her aşamaya uygun şekilde eşleştirin ve yeniden inşayı eşdeğerlik testleriyle kanıtlayın.

Bu, X'te viral olan bir kılavuzun kısa özeti. 12 Ekim 2026'da geliştirici Movez, Claude Opus 5.5 ile tersine mühendislik üzerine 11 adımlık bir kurs yayımladı. Kurs 1 milyon görüntülemeyi ve 2.800 yer imini geçti. Bu makale, iddialarını kaynaklara karşı kontrol ediyor, iki benchmark detayını düzeltiyor ve çoğu kılavuzun atladığı adımı ekliyor: hedefin konuştuğu API'yi test etmek.

Bunu yalnızca sahip olduğunuz veya incelemeye yetkili olduğunuz yazılımlarda kullanın. REA'nın README'si aracı "yasal araştırma, eğitim, birlikte çalışabilirlik, yazılım koruma ve sahip olduğunuz veya incelemeye yetkili olduğunuz yazılımların analizi" ile sınırlıyor.

button

Opus 5.5'in bir binary'yi okumak için neden bir araca ihtiyacı var

Opus 5.5 metin okur ve yazar; bir Mach-O veya ELF dosyasını kendi başına yükleyemez. REA, ajanınız ile bir analiz motoru arasında oturan bir MCP sunucusudur (yerel kod için Hopper, Ghidra veya IDA), analizi yerel olarak çalıştırır ve bulguları kanıtlarıyla birlikte döndürür: adresler, pseudocode, string'ler ve çağrı noktaları. Model bu bulguları okur ve bir sonraki soruyu sorar.

REA, 27 Ekim 2026 itibarıyla 393.000 GitHub yıldızını geçti; 12 Ekim'de bu sayı yaklaşık 115.000'di. REA ilk trend olduğunda REA'nın ne olduğunu ve nasıl çalıştığını ve tek bir uygulama özelliğini yeniden inşa etmek için altı adımlık bir döngüyü ele almıştık. Bu kılavuz model tarafına odaklanıyor: prompt'lar, çaba ayarları ve sınırlar.

Adım 1: REA'yı kurun ve ev kurallarını yazın

REA, 22 hattında Node.js 22.23.4 veya üstünü (24.22.1+ veya 26.12.1+ da çalışır) ve npm gerektirir. Mevcut npm sürümü 6.8.0'dır. Ajanınıza kaydedin:

npx rea-agents setup
npm install --global rea-agents
rea --help

Kurulum, yapılandırma değişikliklerini önizler, dokunduğu her şeyi yedekler ve Claude Code, Codex, Cursor, Gemini CLI ile Grok Build'i destekler. Yerel analiz Hopper, Ghidra veya IDA gerektirir; JavaScript, Electron ve .NET incelemesi için motor gerekmez.

Ardından ajana ev kurallarını verin. Kursun CLAUDE.md bloğu, thread'in en iyi kısmı:

# Reverse-engineering house rules
- Only analyze targets I own or am authorized to examine. State the basis once.
- Tag every claim: observation, inference, or unknown.
- Cite the evidence: address, bytes, pseudocode or call site.
- Start with the smallest overview. Expand only on a concrete gap.
- Separate static facts from runtime facts.
- Build from behavior and public specs, never from copied code or assets.
- Every recovered behavior needs a passing test before "done".

Adım 2: Her aşama için bir çaba seviyesi seçin

Opus 5.5 beş çaba seviyesini destekler: low, medium, high, xhigh ve max. Anthropic'in çaba dokümanlarına göre Opus 5.5 varsayılan olarak medium kullanır; xhigh uzun ajanik çalışmaları hedefler ve max token harcamasındaki tüm sınırları kaldırır. Bunu API'de output_config.effort ile ya da ajanınızın çaba ayarıyla belirlersiniz.

Kursun dağılımı ölçülmüş bir kural değil, makul bir başlangıç noktasıdır:

Aşama Önerilen çaba Neden
Yönlendirme, keşif, gezinme medium Çoğunlukla araç çağrıları ve listeleme
Sıradan fonksiyonları açıklama high Adlandırma, veri akışı hakkında akıl yürütme gerektirir
Uzun çok fonksiyonlu oturumlar xhigh 30 dakikayı aşan çalışmalar için tasarlandı
Obfuscate edilmiş veya yoğun pointer içeren kod max En derin akıl yürütme, en yüksek maliyet

Çabayı oturum başına değil, fonksiyon başına artırın.

Adım 3: Herhangi bir şey açmadan önce hedefi yönlendirin

Yeni başlayanların en sık yaptığı hata, JavaScript'i göz önünde duran bir Electron uygulamasında bir disassembler açmaktır. REA; masaüstü kurulumlarını, yerel binary'leri, JavaScript ve Electron uygulamalarını, .NET assembly'lerini, Android APK'larını, WASM'ı, web sitelerini ve kaydedilmiş ağ yakalamalarını kapsar; her birinin kendi giriş aracı vardır. İlk prompt'unuz yalnızca hedefi tanımlamalı:

I want to understand how [FEATURE] works in [APP] at [ABSOLUTE PATH].
First tell me what kind of target this is (native, Electron/JS, .NET, APK, WASM)
and which REA tool opens it. Don't start deep analysis yet.
Then give me a one-paragraph map and where you'd look first for [FEATURE].
Keep observations, inferences and unknowns separate.

Bir Electron hedefi analyze-javascript-application aracına gider (modüller, import'lar, IPC sınırları, motor yok). Yerel bir hedef ise open_binary aracına gider.

Adım 4: String'leri haritalayın ve fonksiyonları çapraz referanslara göre sıralayın

Henüz kodu okumayın. Yerel bir hedef için bir envanterle başlayın:

rea inspect /absolute/path/to/program --provider ghidra --json
rea search /absolute/path/to/program entry --kind procedures --provider ghidra --json

String'ler en hızlı ipucunuzdur: URL'ler, hata mesajları ve özellik adları. Bir base URL veya bir Authorization: Bearer string'i ayrıca binary'nin bir API ile konuştuğunu söyler; bu da Adım 9'da önemlidir.

Ardından fonksiyonları çapraz referanslara göre sıralayın (kaç yerden çağrıldıklarına göre). 147 çağıranı olan bir fonksiyon muhtemelen çekirdek altyapıdır, örneğin bir config loader; iki çağıranı olan bir tanesi bekleyebilir. Yukarıdan aşağıya doğru okuyun.

Adım 5: Tek bir fonksiyonu decompile edin, sonra Opus'un adlandırmasına izin verin

Tek bir sıcak fonksiyonu decompile edin:

rea function /absolute/path/to/program parseConfig --provider ghidra --json
rea decompile /absolute/path/to/program --procedure=parseConfig --provider ghidra --json

Çıktı kabataslaktır (var_28, her yerde cast'ler). Bunu high çabasındaki Opus 5.5'e sabit bir kontrol listesiyle verin:

Here is decompiled pseudocode for a function with 147 cross-references.
1. Rename every variable based on how it is used.
2. State the function's purpose in one sentence.
3. List the data structures it reads and writes.
4. Name the pattern (singleton, factory, state machine, observer).
5. Flag missing error handling, validation or security checks.
Mark anything you're unsure of instead of guessing.

Decompiler'lar detaylarda hata yapar. REA'nın DX-Ball vitrininde ilk pseudocode, girdi almayan bir ses-pan fonksiyonu gösteriyordu. Parametreyi yalnızca instruction görünümü ortaya çıkardı. Nihai C yeniden yapılandırması, 3.205 orijinal x86 test vakasını geçiyor ve derlenmiş 63 fonksiyonun tüm byte'larını yeniden üretiyor; çünkü ajan pseudocode'u assembly ve çağıranlarla çapraz kontrol etti. Bir imza tuhaf göründüğünde rea instructions isteyin.

Adım 6: Obfuscate edilmiş koda bütçe ayırın, onu öğütmeyin

Viral kursun düzeltilmesi gereken yeri tam burası. Kurs, Elastic Security Labs'ın obfuscation benchmark'ını "Claude Opus" testi olarak gösteriyor. 21 Nisan 2026'da yayımlanan Elastic'in çalışması Claude Opus 4.6'yı test etti, Opus 5.5'i değil. Rakamlar:

Tigress aşaması Çözülen
Dönüşüm yok 1 / 1
Tek dönüşümler 4 / 6
Eşleştirilmiş dönüşümler 3 / 6
Ağır, çok katmanlı 0 / 6

Toplamda Opus 4.6, değerlendirilebilir 20 hedefin 8'ini çözdü (%40). Başarılar ortalama 2,39 $, başarısızlıklar 4,83 $ tuttu; yani bir başarısızlık, bir başarının yaklaşık iki katına mal oluyor. Bunları Opus 5.5'in bir ölçümü değil, bir alt sınır olarak değerlendirin; 5.5 için yayımlanmış eşdeğer bir çalışma bulamadık.

İkincisi, kurs Caveman adlı bir aracın decompile edilmiş çöpün "yaklaşık %75'ini kaldırdığını" söylüyor. Elastic, Caveman'i modelin kendi laf kalabalığını %75'e kadar azaltan bir eklenti olarak tanımlıyor, decompile edilmiş kod filtresi olarak değil.

Ders yine de geçerli: obfuscate edilmiş fonksiyon başına harcamaya üst sınır koyun, 1 ile 10 arasında bir güven puanı isteyin ve 6'nın altındaki her şeyi komşuları çözülene kadar bekletin.

Adım 7: Büyük hedefleri bir denetleyici ve işçilere bölün

Tek bir sohbet 500 fonksiyonu tutamaz; isimleri unutur ve kendi kendisiyle çelişir. Kursun çözümü, hiç kod analiz etmeyen bir denetleyici ve her biri bir fonksiyon alan işçiler:

Controller: The function map is in functions.json (address, name, size, xrefs).
Cluster functions by call-graph proximity, order clusters by xref count,
send each cluster to a worker, inject already-resolved struct names into every
brief, and queue a second pass for any result with confidence below 6.
Report token spend after each cluster.

Her işçi adresi, amacı, 1 ile 10 arasında bir güven puanını, kullandığı veya bulduğu struct'ları ve denetleyicinin struct adlarını yeniden kullanan temiz kaynak kodu döndürür. Elastic'in benchmark'ı da aynı denetleyici ve işçi yapısını kullandı.

Adım 8: Temiz bir bağlamda yalnızca davranış odaklı bir spec yazın

Clean-room (temiz oda) bir yeniden inşa, yazılımın ne yaptığını kopyalar, asla kodunu değil. Opus'tan yalnızca davranış odaklı bir spec isteyin: genel arayüzler, veri modeli, test edilebilir bir gereksinim olarak her özellik, kamuya açık standartlardan dosya formatları ve hata yönetimi. Adresleri, decompile edilmiş adları ve kopyalanan her şeyi yasaklayın.

Ardından bu spec'ten, analizi hiç görmeyen farklı bir bağlamda uygulamaya geçin. Bu ayrım, clean-room sınırıdır. Bu bir mühendislik pratiğidir, hukuki tavsiye değildir.

Adım 9: API sözleşmesini kurtarın ve Apidog CLI ile test edin

Adım 4'teki string'ler sıklıkla bir base URL ve bir auth header'ı ortaya çıkarır; yani davranışın bir kısmı bir API'nin arkasında yaşar. Yeniden inşanız ancak o sözleşmeye de uyarsa eşleşir ve trafik bunu assembly'den daha hızlı gösterir.

Sahip olduğunuz bir test hesabında bir HAR kaydedin ve REA'nın onu özetlemesini sağlayın:

rea inspect-web-network-capture /absolute/session.har har --json

Ardından ajanınızın bu yakalamayı Apidog CLI ile test edilmiş bir sözleşmeye dönüştürmesine izin verin. Bir kez kurun:

npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install

Import session.har into Apidog project <id>. List the endpoints it created,
remove anything that isn't part of [FEATURE], and write one test case per
endpoint that asserts status code, required fields and response schema.
Run them against the original-service environment, then against my rebuild's
environment, and report every endpoint where the two disagree.

Ajan import'u çalıştırır, yazmadan önce payload şekillerini kontrol eder ve her iki ortamı da çalıştırır:

apidog import --project <id> --format har --file ./session.har
apidog endpoint list --project <id>
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog test-case run --project <id> --endpoint <endpointId> -e <originalEnvId> -r cli,json
apidog test-case run --project <id> --endpoint <endpointId> -e <rebuildEnvId> -r cli,json

Aynı vakalar, iki ortam, tek bir diff; her commit'te -r junit ile yeniden çalıştırılabilir (bkz. Apidog CLI CI/CD kılavuzumuz). Claude Code üzerinden yürütmeyi tercih ederseniz, Claude Code'da Apidog CLI yazımıza bakın. Apidog'un ücretsiz planı 4 kullanıcıya kadar kapsar. Manuel yaklaşım için API'lerde tersine mühendislik yazımıza bakın.

Adım 10: Yayınlamadan önce eşdeğerliği kanıtlayın

"Bence eşleşiyor" bir kanıt değildir. Yerel davranış için Opus'tan, aynı girdileri orijinal programa ve yeniden inşaya besleyen bir harness oluşturmasını isteyin:

Generate 50 inputs: 30 normal, 10 edge (empty, max size, unicode), 10 error
(malformed, missing fields, corrupt). Run each through both programs. Compare
byte-for-byte where possible, semantically otherwise. Report the match rate and
every divergence as cosmetic, behavioral or critical.

Adım 9'daki API çalıştırmasıyla birlikte, herkese gösterebileceğiniz iki rakamınız olur: yerel eşleşme oranı ve API eşleşme oranı. Sonunda değil, inşa ederken test edin.

SSS

Opus 5.5 ile tersine mühendislik yasal mı? Yetki alanınıza, lisansa ve amacınıza bağlıdır. REA; yasal araştırmayı, eğitimi, birlikte çalışabilirliği, korumayı ve sahip olduğunuz veya incelemeye yetkili olduğunuz yazılımların analizini destekler. Bir yeniden inşayı ticari olarak yayınlamadan önce hukuki danışmanlık alın.

Tersine mühendislik için hangi çaba seviyesini kullanmalıyım? Yönlendirme ve keşif için medium, fonksiyonları açıklamak için high ile başlayın ve max'ı fonksiyon başına bütçeyle birlikte obfuscate edilmiş koda saklayın. Opus 5.5 varsayılan olarak medium kullanır.

Claude obfuscate edilmiş binary'lerle ne kadar iyi başa çıkıyor? Tek kamuya açık benchmark, Elastic Security Labs'tan gelen ve Opus 4.6'yı test eden çalışma: 20 Tigress hedefinin %40'ı çözüldü ve ağır çok katmanlı olanların %0'ı. Opus 5.5 için eşdeğer bir test yayımlanmadı.

Tersine mühendislikle çözümlenmiş bir uygulamanın kullandığı API'yi nasıl test ederim? Bir test hesabında bir HAR kaydedin, apidog import --format har ile içe aktarın, Apidog CLI ile test vakaları oluşturun ve bunları hem orijinal servise hem de yeniden inşanıza karşı çalıştırın.

REA binary'mi yüklüyor mu? REA analizi yerel olarak çalıştırır. Ajanınızın modele ilettiği bulgular (string'ler, pseudocode) model sağlayıcınıza ulaşan tek şeydir.

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin