Bu sayfada

Kodlama aracınızla tersine mühendislik

Yazılımın nasıl
çalıştığını öğrenin.

Kodlama ajanınıza bir uygulama, oyun veya web sitesi hakkında soru sorun. REA, yanıtın arkasındaki kodu incelemesi için araçlar sağlar.

REA'YU ayarlama

Bu istemi kodlama ajanınıza yapıştırın:

Kodlama aracınız

npx rea-agents@latest setup kullanarak REA’yı kur ve bu kodlama ajanına bağla. Önce kurulum planını göster ve onayımı bekle. Ardından kurulumu doğrula.

Ya da terminalde şu komutu çalıştırın:

npx rea-agents@latest setup

Kurulum planını inceleyip onaylayın, ardından ajanınızı yeniden başlatın.

Diğer kurulum seçenekleri: curl →

İlk kez veya eksik Node.js mi yoksa kodlama ajanı mı? Adım adım kurulum kılavuzunu izleyin →

Nasıl çalışır

Tersine mühendislik, programın kendisini inceleyerek yazılımın nasıl çalıştığını anlamaktır. REA ile ajanınız kodu takip edebilir, bir özelliği açıklayabilir ve yeniden oluşturmanıza yardımcı olabilir.

  1. Bir özellik hakkında sorun

    Ajanınıza bir program veya sayfa ve bir soru verin.

  2. Programı inceleyin

    REA kod, referanslar ve çalışma zamanı gözlemleri döndürür.

  3. Anlayın, sonra bir değişiklik deneyin

    Ajanınız bulguları kullanarak özelliği açıklar veya yeniden oluşturur.

Hesap Makinesi incelemesinin tamamını görün

Hesap Makinesi'nde 200 + 10% neden 220 verir?

Talimatları adım adım izleyin

Orijinal x64 * seçilen talimatlar
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10

Talimatları çözer, işlev çağrılarını takip eder ve hesaplamayı yeniden yapılandırırsınız.

Ajanınıza aynı soruyu sorun

Örnek bilgi istemi * Hesap Makinesi

Windows Hesap Makinesini incelemek için REA kullanın. Neden 200 + 10%220 veriyor?

Örnek cevap · bulgulara dayanarak

+ 'Dan sonra, % düğmesi ilk sayının bir yüzdesini alır.

10% of 200 = 20200 + 20 = 220
REA’nın sağladıkları
İşleyicinin talimatları, derlenmiş kod ve çağrılar.
Ajanınızın açıklaması
Hangi dalın uygulandığı, neyi hesapladığı ve nasıl yeniden oluşturulacağı.
Yüklü Hesap Makinesi dll'sinden seçilen derleme. Düşünceler ve cevaplar bulguları göstermektedir. Hesap Makinesi örneğine devam edin ↓

İki örnek deneyelim: bir oyunun hızını değiştirelim, sonra Hesap Makinesi'nin % düğmesini yeniden yapalım.

Örnek 01 * Chrome'nun dinozor oyunu

Dinozor neden hızlanıyor?

Koştukça oyun hızlanır. Hız ayarı ekleyerek yeniden yapmak için önce hızın nasıl değiştiğini bulmalıyız.

1. Hız hakkında soru sor

Örnek soru · Dinozor oyunu

Bu dinozor oyununu incelemek için REA kullanın. Neden daha hızlı oluyor? Hız kuralını gösterin, ardından ayarlanabilir hıza sahip küçük bir versiyon oluşturun.

2. Hız kuralını bul

REA, ajanın çalışan oyunun kodunu okumasını sağlar. Hız 6 ile başlar ve 13'ün altındayken her güncellemede biraz artar.

3. Sonuçla oyna

Bu kuralı aşağıdaki mini oyunda yeniden uyguladık ve bir hız kaydırıcısı ekledik. Oyunu başlat, ardından kendi hızını seç.

6 → 10 → 13

Orijinal kural: 6'dan başlayın, ardından 13'e doğru artırın.

Kendi hızınızı ayarlamak için kaydırıcıyı hareket ettirin. Boşluk veya Atlama bir kaktüsü temizler.
Hız laboratuvarını açın
Komut dosyasına, kontrollere ve analizin nasıl deneneceğine bakın

Denetlenen hedef: wayou'nun Chromium'dan türetilmiş tarayıcı sürümü.

REA * yüklendi index.js* seçili satırlar
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

6'dan başla. Hız 13'ün altındayken çarpışma olmadan her güncellemeye 0,001 ekleyin.

Her bölüm ne yapar

  1. 01 * REA Çalışan oyunun senaryosunu okuyun Gerçek kodunu ve ayarlarını aracıya döndürün.
  2. 02 * Temsilciniz Kuralı yeniden oluşturun, bir kontrol ekleyin Hız kaydırıcılı küçük bir oyunda kurtarılan ivmeyi kullanın.
  3. 03 * Hızı değiştirir ve oynarsınız Orijinal ivmeyi deneyin, ardından kendi hızınızı seçin.

REA, HTTP tarayıcı sürümünü yerel bir hata ayıklama bağlantısı aracılığıyla denetledi ve yüklenen index.js, kaynağı ve özeti dahil.

Denetlenen komut dosyasından seçilen ayarlar
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6

Engeller ve otomatik zamanlama devre dışı bırakılmış, kontrollü bir tarayıcı kontrolünde orijinal oyunun güncelleme işlevini çağırdık. 4.000 güncellemeden sonra hız 10.0'dı; 10.000'den sonra 13.0'dı ve bir ondalık basamağa yuvarlandı.

Yeni mini oyun bu hız kuralını koruyor. Çizim, atlama ve çarpışma kodu küçük bir öğretim uygulamasıdır. Yeni kodu görmek için laboratuvarı açın ve aynı hız kontrolünü yapın.

Hedefi kendiniz incelemek için dinozor sayfasını kullanarak tarayıcı bağlantı adımlarını izleyin. Aracınıza bu sayfa URL'sini ve yerel hata ayıklama bitiş noktanızı verin, ardından yukarıdaki istemi kopyalayın.

Denetlenen hız kodu * Chromium Yazarları · BSD lisansı

Örnek 02 * Windows Hesap Makinesi

Hesap Makinesi’nin % düğmesini yeniden oluşturun.

% düğmesi + ve × işlemlerinden sonra farklı davranır. İki kuralı bulup küçük bir hesap makinesinde deneyelim.

1. % düğmesi hakkında soru sor

Örnek soru · Hesap Makinesi

Windows Hesap Makinesinin% düğmesini incelemek için REA kullanın. Kuralları + ve × 'den sonra kurtarın, ardından her ikisini de kullanan küçük bir hesap makinesi oluşturun.

2. İki kuralı bul

REA, ajanın % düğmesinin kodunu okumasına yardımcı olur. Kod iki farklı kural uygular:

İle +
İlk sayının% 10'unu alın.10% of 200 = 20 → 200 + 20 = 220
İle ×
% 10'u 0.1.200 × 0.1 = 20'ye çevirin200 × 0.1 = 20

3. % düğmesini dene

İki kuralı aşağıda yeniden uyguladık. + veya × seç, % düğmesine, ardından = düğmesine bas.

200 + 20

200'ün% 10'u = 20. Sonra 200 + 20 = 220.

Denetlenen yüzde kuralının etkileşimli gösterimi.
Gerçek kodu ve cevabın nasıl kontrol edildiğini görün

Bu örnek için previous = 200 ve current = 10.

% işleyicisinin okunabilir özeti
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}

Yüklü uygulamadan çalışan bir% düğmesine

  1. 01 * REA okur calc.exeHesap Makinesi uygulamasını başlatır Kod açılır ms-calculator:. Aracı daha sonra yüklü uygulamanın kitaplığını seçer.
  2. 02 * REA kütüphaneyi okur% işleyicinin kodunu döndürür İşlev operatörü kontrol eder ve 100 sabitini kullanır.
  3. 03 * Temsilciniz bunu yorumlar Kuralları açıklayın ve çoğaltın Dalı Microsoft'un kaynağıyla çapraz kontrol edin, ardından + ve × üstünü deneyin.
REA * seçilen orijinal talimatlar
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
Operatör Kimlikleri * Microsoft'un kaynağı
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100

REA 4.1.0: Windows Hesap Makinesi 11.2508.4.0, x64 ile denetlendi. Okunabilir özet, kurtarılan dalı açıklamak için Microsoft'un genel kaynağından gelen adları kullanır.

Yüzde uygulaması * Microsoft'un test durumları * Yerel kurulum kılavuzu

REA vaka çalışmaları.

Yayımlanmış bir uygulama veya oyundaki özelliği, kod ve doğrulanmış sonuçlarla inceleyin.

Vitrinler →

Android * APK analizi

Bir kimlik doğrulayıcı oturum açma kodunu nasıl oluşturur?

Aegis'in altı haneli giriş kodunu yayımlanmış APK'sında takip edin. Ardından demo saatini hareket ettirerek kodun neden her 30 saniyede değiştiğini görün.

Android vaka çalışmasını okuyun

Electron * Özellik izleme

Notion metni ve HTML'yi nasıl kopyalar

Notion'ın paketlenmiş JavaScript kodundan sistem panosuna kadar ilerleyin ve kopyalamanın zengin blok verilerini nasıl koruduğunu görün.

Notion örnek olay incelemesini okuyun

Yerli * Yeniden Yapılanma

DX-Ball'NUN sol / sağ ses pozisyonunun hesaplanması

1996 yapımı bir Windows oyununda topun konumunun sağ ve sol sese nasıl dönüştüğünü çıkarın.

DX-Ball örnek olay incelemesini okuyun

İlk soruşturmanız

Küçük bir uygulamada REA'yu deneyin.

Notlar örneğimizi indirin, CSV dışa aktarımını izleyin ve değiştirilen bir girişi kontrol edin.

Kılavuzlu örneği deneyin

Hedefinizi seçin.

Bu kılavuzlar her yazılım türü için kurulumu ve ilk incelemeyi anlatır.

Makine kodu programları

Yürütülebilir dosyalar ve kitaplıklardaki işlevleri, dizeleri, referansları ve işlev çağrısı ilişkilerini inceleyin.

Makine kodu programlarının analizi kılavuzu

JavaScript VE Electron

Modülleri, rotaları, ıpc'yi ve yerel bağımlılıkları bir uygulama klasöründen veya ASAR arşivinden eşleyin.

Uygulama iş akışları

Tarayıcı ve çalışma zamanı etkinliği

Seçilen tarayıcıyı veya işlem etkinliğini yakalayın, ardından sonuçları koşular arasında karşılaştırın.

Tarayıcı gözlem kılavuzu
Daha büyük bir proje deneyin
Örnek bilgi istemi * Web sitesi

İncelemek için https://rea.tools/REA kullanın. Bu web sitesini benim için klonla.

Evet, bu.

Örnek istemi * Oyun rekonstrüksiyonu

Bu oyunu yürütülebilir dosyasından yeniden oluşturmak için REA kullanın. C'deki oyun mantığını kurtarın ve orijinaline karşı test edin.

DX-Ball örnek olay incelemesine bakın →

Sorunuz var mı?

Üst