Kodlama aracınızla tersine mühendislik
Yazılımın nasıl
çalıştığını öğrenin.
REA, kodlama ajanınıza bir programı incelemek ve ne yaptığını açıklamak için gereken araçları sağlar.
RE'Yİ zaten biliyor musun? Analiz kılavuzlarına atla →
Daha derine inmek ister misin? Blogu Oku →
REA'YU ayarlama
Bu istemi kodlama ajanınıza yapıştırın:
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.
İlk kez veya eksik Node.js mi yoksa kodlama ajanı mı? Adım adım kurulum kılavuzunu izleyin →
Tersine mühendislik nedir?
Programın kendisini inceleyerek yazılımın nasıl çalıştığını anlamaktır.
Amaç: Bir özelliği açıklamak, değiştirmek veya yeniden inşa etmek için yeterince iyi anlayın.
Örneğin: Hesap Makinesi neden 200 + 10% için 220 sonucunu veriyor?
REA’dan önce · Kendiniz araştırırsınız
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.
REA ile · Ajanınıza sorarsınız
Tek bir istem.
Ajanınıza günlük dille sorun.
Windows Hesap Makinesini incelemek için REA kullanın. Neden 200 + 10%220 veriyor?
+ '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ğı.
İki örnek deneyelim. Bir oyunun hızını değiştirin, ardından Hesap Makinesine dönün ve% düğmesini yeniden oluşturun.
Örnek 01 * Chrome'nun dinozor oyunu
Dinozor neden hızlanıyor?
- Hedef
- Oyunu ayarlanabilir hızda yeniden oluşturun.
- Neden tersine mühendislik?
- İvmesini yeniden üretmek için koşu oyununda kurala ihtiyacımız var: ne kadar hızlı başladığı, ne kadar arttığı ve ne zaman durduğu.
Yeniden oluşturulan oyunu oyna
Orijinal kural: 6'dan başlayın, ardından 13'e doğru artırın.
REA’nın döndürdüğü sonuç
Komut dosyası aslında sayfada çalışıyor. Aracı güncelleme işlevini ve hız ayarlarını okur, ardından bu kuralı yeni bir oyunda kullanır.
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.
Denetlenen hedef: wayou'nun Chromium'dan türetilmiş tarayıcı sürümü.
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.
Hız laboratuvarını açınHer bölüm ne yapar
- 01 * REA Çalışan oyunun senaryosunu okuyun Gerçek kodunu ve ayarlarını aracıya döndürün.
- 02 * Temsilciniz Kuralı yeniden oluşturun, bir kontrol ekleyin Hız kaydırıcılı küçük bir oyunda kurtarılan ivmeyi kullanın.
- 03 * Hızı değiştirir ve oynarsınız Orijinal ivmeyi deneyin, ardından kendi hızınızı seçin.
Komut dosyasına, kontrollere ve analizin nasıl deneneceğine bakın
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.
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.
Örnek 02 * Windows Hesap Makinesi
Hesap Makinesi’nin % düğmesini yeniden oluşturun.
Neden 200 + 10%220 verdiğini gördük. Şimdi hem + hem de × için kuralları kurtaralım ve deneyelim.
- Hedef
- Hem + hem de × 'yi doğru işleyen küçük bir hesap makinesi oluşturun.
- Neden tersine mühendislik?
- Aynı düğme + ve × 'den sonra farklı kurallar kullanır. Yüzdenin hangi sayıya uygulandığını bulmak için yüklü uygulamayı inceliyoruz.
Hesaplamayı deneyin
200'ün% 10'u = 20. Sonra 200 + 20 = 220.
REA’nın döndürdüğü sonuç
Bir dal 100'e bölünür. Diğeri de ilk sayı ile çarpılır. Aracı, % düğmesini yeniden oluşturmak için her ikisini de kullanır.
Bu örnek için previous = 200 ve current = 10.
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.
if (operation == multiply || operation == divide) {
percent = current / 100;
} else {
percent = current * previous / 100;
}
- İ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 çevirin
200 × 0.1 = 20
Yüklü uygulamadan çalışan bir% düğmesine
-
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. -
02 * REA kütüphaneyi okur% işleyicinin kodunu döndürür İşlev operatörü kontrol eder ve
100sabitini kullanır. - 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.
Gerçek kodu ve cevabın nasıl kontrol edildiğini görün
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
#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
İ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.
Daha derine inmek ister misiniz?
Temsilcinize neyi anlamak veya inşa etmek istediğinizi söyleyin. REA ile, bu web sitesini klonlamaktan bir oyunu yürütülebilir dosyasından yeniden oluşturmaya kadar her konuda birlikte çalışabilirsiniz.
İncelemek için https://reverseengineeranything.app/REA kullanın. Bu web sitesini benim için klonla.
Evet, bu.
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.
Kurulum ve analiz adımları için hedefinizi seçin:
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ılavuzuJavaScript 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ılavuzuSorunuz var mı?
Sss'yi okuyun, Discord'DA bizimle sohbet edin veya hatalar ve özellik istekleri için bir GitHub sorunu açın.
Topluluğa katıl
Soruşturmaları paylaşın ve Discord'DAKİ diğer REA kullanıcılarından yardım alın. Proje güncellemeleri için X'te REA'YU takip edin.