---
title: REA - Kodlama Aracınız için Tersine Mühendislik
url: https://rea.tools/tr/
---

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.

[Başlangıç](https://rea.tools/get-started/)
[Bir örnek görün ↓](https://rea.tools/tr/#dinosaur)

## REA’yı 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.


Kurulum seçenekleri


Diğer kurulum seçenekleri: [curl →](https://rea.tools/get-started/#curl-installation)

İlk kez veya eksik Node.js mi yoksa kodlama ajanı mı? [Adım adım kurulum kılavuzunu izleyin →](https://rea.tools/get-started/)

[RL ortamları oluşturun →](https://rea.tools/tr/#rl-environments)

Ajanları eğitmek ve test etmek için bir web uygulamasını kaydedin.

[Vitrinler →](https://rea.tools/tr/showcase/)

Incelemeler ve etkileşimli demolar.

[Blog →](https://rea.tools/tr/blog/)

Yöntemler ve yeniden oluşturma notları.

## 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, ajanınızın kodu okumasına ve programın çalışırken ne yaptığını görmesine yardımcı olur.
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
```



01 \* Hangi şube?

“**0x5b? 0x5c?** Aynı yere iki atlayış. Bunlar hangi operatörler?”

Komut kimliklerine bakın, ardından dalı etiketleyin.

0x5b
:   Böl ÷

0x5c
:   Çarpın ×

02 · Çağrılan işlevler ne yapıyor?

“100 açıktır. Aramalar sadece adres. **Hangisi bölünüyor? Hangi değer giriyor?**”

Yardımcı işlevleri inceleyin ve depolanan değerleri izleyin.

0x64
:   100

…123190
:   Bölmek

03 \* Kural nedir?

"Bu yol diğer girdiyle çarpılır. Yani% 10, + 'dan sonra **200'ün% 10'u anlamına** gelir.”

İşlenenleri adlandırın ve her iki operatör yolunu da kontrol edin.

200 × 10 / 100
**20**

![](https://rea.tools/assets/localized/tr/figures/analyst-thinking.svg)

Açıklayıcı uzman akıl yürütme

**Talimatları çözümler, 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

+ işleminden sonra, % düğmesi **ilk sayının bir yüzdesini alır.**

`10% of 200 = 20`**200 + 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 assembly. Düşünceler ve yanıt, bulguları gösterir. [Hesap Makinesi örneğiyle devam edin ↓](https://rea.tools/tr/#calculator)

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

Örnek 01 \* Chrome’un 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ç.

Hız 6.0
 Kurtarılan hızlanma kuralını kullanın

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.



Oynamak için JavaScript'i etkinleştir. Kuralı okuyabilir ve aşağıdaki kaynak kodunu açabilirsin.

[Hız laboratuvarını açın](https://rea.tools/tr/examples/dino-lab/)

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ü](https://wayou.github.io/t-rex-runner/).

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 betiğini 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 hızlanma kuralını 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 betikten 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](https://rea.tools/tr/examples/dino-lab/) ve aynı hız kontrolünü yapın.

Hedefi kendiniz incelemek için [dinozor sayfasını](https://rea.tools/tr/guides/browser/#prepare) kullanarak [tarayıcı bağlantı adımlarını](https://wayou.github.io/t-rex-runner/) 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](https://github.com/wayou/t-rex-runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571) \* [Chromium Yazarları · BSD lisansı](https://rea.tools/assets/licenses/dinosaur.txt)

Ö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:

+ ile
:   İlk sayının% 10'unu alın.`10% of 200 = 20 → 200 + 20 = 220`

× ile
:   %10’u 0,1’e çevirin. 200 × 0,1 = 20`200 × 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.exe

   Hesap 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ı](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalcManager/CEngine/scifunc.cpp#L98-L111) \* [Microsoft'un test durumları](https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalculatorUnitTests/CalculatorManagerTest.cpp#L350-L370) \* [Yerel kurulum kılavuzu](https://rea.tools/guides/native/)

## REA vaka çalışmaları.

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

[Vitrinler →](https://rea.tools/tr/showcase/)

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](https://rea.tools/showcase/aegis/)

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](https://rea.tools/tr/showcase/notion/)

Yerel makine kodu · Yeniden yapılandırma

### DX-Ball’ın 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](https://rea.tools/tr/showcase/dx-ball/)

## RL ortamları oluşturun

Kaydedilmiş bir web uygulaması oturumunu yapay zekâ ajanlarını eğitmek ve test etmek için çalıştırılabilir bir ortama dönüştürün.

Ajanınız tarayıcının isteklerini ve uygulamanın yanıtlarını kaydeder. REA bu verilerle yerel bir ortam oluşturur; ajanlar asıl uygulamayı çalıştırmadan görevleri bu ortamda deneyebilir.

Klasör silmeyi desteklemek için kayıt, klasörü silinmeden önce göstermeli ve silindikten sonra artık bulunmadığını doğrulamalıdır.

[Ortam oluşturma rehberi](https://rea.tools/guides/rl-environments/) · [Demoyu X’te izleyin](https://x.com/reatools/status/2112574822584918075?s=20)

Ajanınızda REA’yı kurduktan sonra aşağıdaki örnek URL’yi ve klasör görevlerini kendinize göre değiştirin:

Kodlama aracınız

REA ile şu test web uygulamamdan bir RL ortamı oluştur: `http://127.0.0.1:3000` Klasör listeleme, oluşturma, yeniden adlandırma ve silme işlemlerini kapsa. Test klasörleri oluşturup silebilirsin. Mevcut verileri değiştirme. `my-env` adlı klasöre kaydet, hangi işlemlerin çalıştığını kontrol et ve nasıl çalıştıracağımı anlat.

Örnek istem. URL’yi ve klasör görevlerini kendinize göre değiştirin.

İ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](https://rea.tools/tr/first-investigation/)

## Hedefinizi seçin.

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

### Yerel ikili dosyalar

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

[Yerel ikili dosyaların analizi kılavuzu](https://rea.tools/guides/native/)

### JavaScript ve Electron

Bir JavaScript masaüstü uygulamasının içindeki kodu takip edin.

[Uygulama iş akışları](https://rea.tools/guides/javascript/)

### 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](https://rea.tools/tr/guides/browser/)

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 vaka incelemesine bakın →](https://rea.tools/tr/showcase/dx-ball/)

## Sorunuz var mı?

Kurulum yardımı ve sık sorulan sorular için [SSS bölümünü okuyun](https://rea.tools/tr/faq/).

Yardım almak ve incelemelerinizi tartışmak için [Discord’a katılın](https://discord.gg/GkcryMnJDM).

[GitHub Issues](https://github.com/morluto/rea/issues/new/choose) üzerinden hata bildirin veya özellik isteyin.
