0Pricing
Cyber Security Academy · Ders

Tersine Mühendisler için x86/x64 Assembly Temelleri

MOV, CMP, JNE, CALL ve RET komutlarını okuyun; kayıtlar ve yığın üzerinden veri akışını izleyin.

Tersine Mühendisler için x86/x64 Assembly Temelleri, CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.

Tersine Mühendislikte Assembly Neden Önemlidir?

Ghidra'nın tersine derleyicisi yararlıdır ancak kusursuz değildir — bazı yapıları gözden kaçırır, türleri yanlış çıkarır ve gizlenmiş kodu tersine derleyemez. Assembly'yi doğrudan okumak, gerçeği olduğu gibi görmenizi sağlar. Tersine mühendislik yapan kişinin assembly yazması değil, onu okuyabilmesi gerekir.

Yazmaçlar

x86-64 temel yazmaçları:

  • RAX — akümülatör, dönüş değerleri
  • RBX, RCX, RDX — genel amaçlı kullanım
  • RSI, RDI — kaynak/hedef dizini, birinci/ikinci işlev argümanları
  • RSP — yığın göstericisi
  • RBP — taban göstericisi (yığın çerçevesi)
  • RIP — komut göstericisi

İşlev Çağırma Kuralı (x64 Linux)

Argümanlar yazmaçlar üzerinden iletilir (System V AMD64 ABI):

  1. RDI
  2. RSI
  3. RDX
  4. RCX
  5. R8
  6. R9

Dönüş değeri RAX'te tutulur. Ek argümanlar yığına itilir.

Temel Komutlar

Tanınması gereken temel komutlar:

mov rax, rbx    ; copy rbx to rax
push rax        ; push rax onto stack
pop rbx         ; pop top of stack into rbx
add rax, 8      ; rax = rax + 8
sub rsp, 0x20   ; allocate 32 bytes on stack
call 0x401234   ; call function at address
ret             ; return to caller
lea rax, [rbp-0x10] ; load address of local var

Koşullu Dallanmalar

Karşılaştırmalar ve dallanmalar:

cmp rax, 0      ; set flags based on rax - 0
test rax, rax   ; test rax & rax (check if zero)
jz  0x401234    ; jump if zero
jnz 0x401234    ; jump if not zero
jl  0x401234    ; jump if less (signed)
jge 0x401234    ; jump if >= (signed)
je  0x401234    ; jump if equal

Basit Bir İşlevi Okuma

Yaygın örüntüleri tanıma:

; if (x == 0) return 1;
mov eax, [rbp-4]    ; load x
test eax, eax       ; x == 0?
jnz .notZero        ; if not zero, skip
mov eax, 1          ; return value = 1
ret
.notZero:
...

Dize İşlemlerini Tanıma

Yaygın dize/bellek işlemleri:

; memcpy(dest, src, n):
; rdi=dest, rsi=src, rdx=n
rep movsb           ; copy RCX bytes from RSI to RDI

; strlen-like loop:
.loop:
  cmp byte [rsi], 0 ; check for null terminator
  je  .done
  inc rsi
  jmp .loop

Yığın Çerçevesi Kurulumu/Temizliği

Her işlev şu işlemlerle başlar ve sona erer:

; Prologue:
push rbp            ; save caller frame
mov  rbp, rsp       ; set up new frame
sub  rsp, 0x30      ; allocate local vars

; Epilogue:
leave               ; mov rsp, rbp; pop rbp
ret

Döngüleri Belirleme

Assembly çözümlemesindeki döngüler:

  • Geriye doğru bir sıçrama (daha düşük adres), bir döngü olduğunu gösterir
  • Bir yazmaçtaki sayaç dec/sub ile azaltılır
  • loop komutu RCX'i azaltır ve değer sıfır değilse sıçrar

Çoklu Seçim Deyimlerini Okuma

Çoklu seçim deyimleri genellikle sıçrama tablolarına dönüştürülür:

; Jump table pattern:
cmp eax, 5          ; check if case > max
ja  .default        ; jump to default
lea rcx, [jump_table]
mov rax, [rcx + rax*8]  ; index into table
jmp rax              ; jump to case handler

SIMD ve Kriptografi Sabitleri

Algoritmaları belirleyen sayısal sabitleri arayın:

  • AES S-box: ilk baytlar 63 7C 77 7B...
  • SHA-256 başlangıç özeti: 0x6a09e667, 0xbb67ae85...
  • MD5: 0xd76aa478

Bu sabitleri tanımak, kriptografik işlevleri anında belirlemenizi sağlar.

Hızlı Kontrol: x64 Assembly

x86-64 System V ABI'de, bir işlev çağrısının birinci argümanını hangi yazmaç tutar?

Ders Özeti

x86-64 tersine mühendisliği; temel yazmaçları (RAX, RDI, RSI, RSP, RIP), işlev çağırma kurallarını (argümanlar RDI/RSI/RDX...) ve yaygın örüntüleri (önsözler, döngüler, karşılaştırmalar, sıçrama tabloları) bilmeyi gerektirir. Assembly yazmanız gerekmez — yalnızca okumanız yeterlidir. Koddaki kriptografi sabitleri, ikili dosyayı çalıştırmadan algoritmaları belirlemenizi sağlar.

Sıkça Sorulan Sorular

“Tersine Mühendisler için x86/x64 Assembly Temelleri” dersi ücretsiz mi?

Evet — “Tersine Mühendisler için x86/x64 Assembly Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.

“Tersine Mühendisler için x86/x64 Assembly Temelleri” dersinde ne öğreneceğim?

MOV, CMP, JNE, CALL ve RET komutlarını okuyun; kayıtlar ve yığın üzerinden veri akışını izleyin. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Tersine Mühendisler için x86/x64 Assembly Temelleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Ghidra: İkili Dosyalarda Gezinme ve Açıklama Ekleme
  2. Tersine Mühendisler için x86/x64 Assembly Temelleri
  3. GDB ve pwndbg ile Dinamik Analiz
  4. Karartma Açma ve Analiz Karşıtı Teknikler
← Cyber Security Academy Sayfasına Dön