+
+int main() {
+// Allocate memory for three chunks
+char *a = (char *)malloc(10);
+char *b = (char *)malloc(10);
+char *c = (char *)malloc(10);
+char *d = (char *)malloc(10);
+char *e = (char *)malloc(10);
+char *f = (char *)malloc(10);
+char *g = (char *)malloc(10);
+char *h = (char *)malloc(10);
+char *i = (char *)malloc(10);
+
+// Print initial memory addresses
+printf("Initial allocations:\n");
+printf("a: %p\n", (void *)a);
+printf("b: %p\n", (void *)b);
+printf("c: %p\n", (void *)c);
+printf("d: %p\n", (void *)d);
+printf("e: %p\n", (void *)e);
+printf("f: %p\n", (void *)f);
+printf("g: %p\n", (void *)g);
+printf("h: %p\n", (void *)h);
+printf("i: %p\n", (void *)i);
+
+// Fill tcache
+free(a);
+free(b);
+free(c);
+free(d);
+free(e);
+free(f);
+free(g);
+
+// Introduce double-free vulnerability in fast bin
+free(h);
+free(i);
+free(h);
+
+
+// Reallocate memory and print the addresses
+char *a1 = (char *)malloc(10);
+char *b1 = (char *)malloc(10);
+char *c1 = (char *)malloc(10);
+char *d1 = (char *)malloc(10);
+char *e1 = (char *)malloc(10);
+char *f1 = (char *)malloc(10);
+char *g1 = (char *)malloc(10);
+char *h1 = (char *)malloc(10);
+char *i1 = (char *)malloc(10);
+char *i2 = (char *)malloc(10);
+
+// Print initial memory addresses
+printf("After reallocations:\n");
+printf("a1: %p\n", (void *)a1);
+printf("b1: %p\n", (void *)b1);
+printf("c1: %p\n", (void *)c1);
+printf("d1: %p\n", (void *)d1);
+printf("e1: %p\n", (void *)e1);
+printf("f1: %p\n", (void *)f1);
+printf("g1: %p\n", (void *)g1);
+printf("h1: %p\n", (void *)h1);
+printf("i1: %p\n", (void *)i1);
+printf("i2: %p\n", (void *)i1);
+
+return 0;
+}
+```
+Bu örnekte, tcache'i birkaç serbest bırakılmış parça ile doldurduktan sonra **kod, önce parça `h`, sonra parça `i` ve ardından tekrar `h`'yi serbest bırakarak çift-serbest bırakma hatası oluşturur**. Bu, yeniden boyutlandırma yapılırken örtüşen bellek adreslerini alabilme olasılığını açar, yani iki veya daha fazla işaretçi aynı bellek konumuna işaret edebilir. Bir işaretçi aracılığıyla veri manipüle edilirse diğeri etkilenebilir, bu da kritik bir güvenlik riski ve sömürü potansiyeli yaratır.
+
+Çalıştırıldığında, **`i1` ve `i2`'nin aynı adresi aldığına** dikkat edin:
+
+İlk tahsisler:
+a: 0xaaab0f0c22a0
+b: 0xaaab0f0c22c0
+c: 0xaaab0f0c22e0
+d: 0xaaab0f0c2300
+e: 0xaaab0f0c2320
+f: 0xaaab0f0c2340
+g: 0xaaab0f0c2360
+h: 0xaaab0f0c2380
+i: 0xaaab0f0c23a0
+Yeniden boyutlandırmalar sonrası:
+a1: 0xaaab0f0c2360
+b1: 0xaaab0f0c2340
+c1: 0xaaab0f0c2320
+d1: 0xaaab0f0c2300
+e1: 0xaaab0f0c22e0
+f1: 0xaaab0f0c22c0
+g1: 0xaaab0f0c22a0
+h1: 0xaaab0f0c2380
+i1: 0xaaab0f0c23a0
+i2: 0xaaab0f0c23a0
+
+
+## Referanslar
+
+* [https://heap-exploitation.dhavalkapil.com/attacks/double\_free](https://heap-exploitation.dhavalkapil.com/attacks/double\_free)
+
+
+
+Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!
+
+HackTricks'ı desteklemenin diğer yolları:
+
+* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
+* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
+* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
+* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'ı takip edin.
+* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
+
+
diff --git a/binary-exploitation/heap/heap-functions-security-checks.md b/binary-exploitation/heap/heap-functions-security-checks.md
new file mode 100644
index 000000000..2d38150d5
--- /dev/null
+++ b/binary-exploitation/heap/heap-functions-security-checks.md
@@ -0,0 +1,92 @@
+# Heap Fonksiyonları Güvenlik Kontrolleri
+
+
+
+AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
+
+HackTricks'ı desteklemenin diğer yolları:
+
+* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
+* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
+* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
+* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
+* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.**
+
+
+
+## unlink
+
+Bu fonksiyon, bir parçayı çift yönlü bağlı listeden kaldırır. Parçaları ayırırken bağlı liste yapısının tutarlı kalmasını sağlayan yaygın kontroller bulunmaktadır.
+
+* **Tutarlılık Kontrolleri**:
+* `P->fd->bk == P` ve `P->bk->fd == P` koşullarını kontrol edin.
+* Hata mesajı: `corrupted double-linked list`
+
+## \_int\_malloc
+
+Bu fonksiyon, heap'ten bellek tahsisinden sorumludur. Buradaki kontroller, belleğin tahsis sırasında bozulmadığından emin olur.
+
+* **Fastbin Boyut Kontrolü**:
+* Bir parçayı fastbin'den kaldırırken, parçanın boyutunun fastbin aralığında olduğundan emin olun.
+* Hata mesajı: `malloc(): memory corruption (fast)`
+* **Smallbin Tutarlılık Kontrolü**:
+* Bir parçayı smallbin'den kaldırırken, çift yönlü bağlı listedeki önceki ve sonraki bağlantıların tutarlı olduğundan emin olun.
+* Hata mesajı: `malloc(): smallbin double linked list corrupted`
+* **Unsorted Bin Bellek Aralığı Kontrolü**:
+* Karışık kutulardaki parçaların boyutunun minimum ve maksimum sınırlar arasında olduğundan emin olun.
+* Hata mesajı: `malloc(): memory corruption`
+* **Unsorted Bin Tutarlılık Kontrolü (İlk Senaryo)**:
+* Kalan bir parçayı karışık kutuya eklerken, `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)` koşulunu kontrol edin.
+* Hata mesajı: `malloc(): corrupted unsorted chunks`
+* **Unsorted Bin Tutarlılık Kontrolü (İkinci Senaryo)**:
+* Önceki kontrolle aynıdır, ancak hızlı veya küçük bir parçayı böldükten sonra eklerken tetiklenir.
+* Hata mesajı: `malloc(): corrupted unsorted chunks 2`
+
+## \_int\_free
+
+Bu fonksiyon önceden tahsis edilmiş belleği serbest bırakır. Buradaki kontroller, uygun bellek serbest bırakma ve bellek bozulmasını önlemeye yardımcı olur.
+
+* **İşaretçi Sınır Kontrolü**:
+* Serbest bırakılan işaretçinin belleği sarmadığından emin olun.
+* Hata mesajı: `free(): invalid pointer`
+* **Boyut Kontrolü**:
+* Serbest bırakılan parçanın boyutunun en az `MINSIZE` veya `MALLOC_ALIGNMENT`'ın katları olduğundan emin olun.
+* Hata mesajı: `free(): invalid size`
+* **Fastbin Boyut Kontrolü**:
+* Fastbin parçaları için, bir sonraki parçanın boyutunun minimum ve maksimum sınırlar arasında olduğundan emin olun.
+* Hata mesajı: `free(): invalid next size (fast)`
+* **Fastbin Çift Serbest Bırakma Kontrolü**:
+* Bir parçayı fastbin'e eklerken, baştaki parçanın eklenen parça ile aynı olmadığından emin olun.
+* Hata mesajı: `double free or corruption (fasttop)`
+* **Fastbin Tutarlılık Kontrolü**:
+* Bir fastbin'e ekleme yaparken, baştaki parçanın boyutunun ve eklenen parçanın boyutunun aynı olduğundan emin olun.
+* Hata mesajı: `invalid fastbin entry (free)`
+* **Üst Parça Tutarlılık Kontrolü**:
+* Hızlı olmayan fastbin parçaları için, parçanın üst parça ile aynı olmadığından emin olun.
+* Hata mesajı: `double free or corruption (top)`
+* **Bellek Sınırları Kontrolü**:
+* Belleği saran bir sonraki parçanın arenanın sınırları içinde olduğundan emin olun.
+* Hata mesajı: `double free or corruption (out)`
+* **Prev\_inuse Bit Kontrolü**:
+* Bir sonraki parçadaki önceki kullanımda bitin işaretlendiğinden emin olun.
+* Hata mesajı: `double free or corruption (!prev)`
+* **Normal Boyut Kontrolü**:
+* Bir sonraki parçanın boyutunun geçerli aralıklarda olduğundan emin olun.
+* Hata mesajı: `free(): invalid next size (normal)`
+* **Unsorted Bin Tutarlılık Kontrolü**:
+* Bir birleştirilmiş parçayı karışık kutuya eklerken, `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)` koşulunu kontrol edin.
+* Hata mesajı: `free(): corrupted unsorted chunks`
+
+
+
+AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
+
+HackTricks'ı desteklemenin diğer yolları:
+
+* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
+* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
+* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
+* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
+* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.**
+
+
diff --git a/binary-exploitation/heap/heap-overflow.md b/binary-exploitation/heap/heap-overflow.md
index 0390424c2..11306605e 100644
--- a/binary-exploitation/heap/heap-overflow.md
+++ b/binary-exploitation/heap/heap-overflow.md
@@ -2,44 +2,58 @@
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!
+Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
-HackTricks'i desteklemenin diğer yolları:
+HackTricks'ı desteklemenin diğer yolları:
-- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [ABONELİK PLANLARI](https://github.com/sponsors/carlospolop)'na göz atın!
-- [Resmi PEASS & HackTricks ürünlerini](https://peass.creator-spring.com) edinin
-- [The PEASS Family](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [NFT'lerimizi](https://opensea.io/collection/the-peass-family) içerir
-- 💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
-- **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [HackTricks](https://github.com/carlospolop/hacktricks) ve [HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
+* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
+* [**Resmi PEASS & HackTricks ürünleri**]'ni (https://peass.creator-spring.com) edinin
+* [**PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**]'imiz (https://opensea.io/collection/the-peass-family) koleksiyonumuz
+* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] katılın (https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**] (https://twitter.com/hacktricks\_live)** takip edin**.
+* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
## Temel Bilgiler
-Bir heap taşması, heap'te bir [**yığın taşması**](../stack-overflow/) gibi. Temelde, heap'te belirli bir veriyi depolamak için bir alan ayrıldı ve **depolanan veri ayrılan alandan daha büyüktü.**
+Bir heap taşması, heap'te bir [**yığın taşması**] (../stack-overflow/) gibi. Temelde, heap'te bazı verileri depolamak için bir alan ayrılmış ve **depolanan veriler ayrılan alandan daha büyük**.
-Yığın taşmalarında, yığından bazı kayıtların (örneğin yönerge işaretçisi veya yığın çerçevesi) geri yükleneceğini ve bunun istismar edilebileceğini biliyoruz. Heap taşmalarında, taşınan heap parçasında varsayılan olarak **duyarlı bilgi depolanmaz.** Bununla birlikte, hassas bilgi veya işaretçiler olabilir, bu nedenle bu zafiyetin **kritikliği**, **hangi verilerin üzerine yazılabileceğine** ve bir saldırganın bunu nasıl istismar edebileceğine bağlıdır.
+Yığın taşmalarında, yığından bazı kayıtların (örneğin yönerge işaretçisi veya yığın çerçevesi) geri yükleneceğini ve bunun istismar edilebileceğini biliyoruz. Heap taşmalarında, taşınabilecek bir heap parçasında **varsayılan olarak depolanan hassas bilgi yoktur**. Bununla birlikte, hassas bilgi veya işaretçiler olabilir, bu nedenle bu zafiyetin **kritikliği**, bu zafiyetle **hangi verilerin üzerine yazılabileceğine** ve bir saldırganın bunu nasıl istismar edebileceğine bağlıdır.
{% hint style="success" %}
-Taşma ofsetlerini bulmak için [**yığın taşmalarında**](../stack-overflow/#finding-stack-overflows-offsets) olduğu gibi aynı desenleri kullanabilirsiniz.
+Taşma ofsetlerini bulmak için [**yığın taşmalarında**] (../stack-overflow/#finding-stack-overflows-offsets) olduğu gibi aynı desenleri kullanabilirsiniz.
{% endhint %}
+### Yığın Taşmaları vs Heap Taşmaları
+
+Yığın taşmalarında, zafiyet tetiklendiğinde yığında bulunacak düzen ve veriler oldukça güvenilirdir. Bu, yığının lineer olduğu, belleğin çakışarak arttığı, programın belirli yerlerinde yığın belleğinin genellikle benzer türde verileri depoladığı ve her işlev tarafından kullanılan yığın kısmının sonunda bazı işaretçilerle belirli bir yapıya sahip olduğu için geçerlidir.
+
+Ancak, bir heap taşması durumunda, kullanılan belleğin lineer olmadığı, ancak **ayrılmış bellek pozisyonlarında genellikle ayrılmış parçaların** (yan yana olmayan) olduğu, boyuta göre ayrımlar yapan **kutular ve bölgeler** nedeniyle ve **önceki serbest bırakılan belleğin** yeni parçalar ayrılmadan önce kullanıldığı için **taşan nesnenin çarpışacağı nesneyi bilmek karmaşıktır**. Bu nedenle, bir heap taşması bulunduğunda, istenen nesnenin taşan nesneye bitişik olmasını sağlayacak **güvenilir bir yol bulunması gerekir**.
+
+Bunun için kullanılan tekniklerden biri **Heap Grooming**'dir ve örneğin [**bu gönderide**] (https://azeria-labs.com/grooming-the-ios-kernel-heap/) kullanılmaktadır. Gönderide, iOS çekirdeğinde bir bölgenin bellekte bellek parçalarını depolamak için hafızasının tükendiğinde, bir çekirdek sayfası ile genişletildiği ve bu sayfanın beklenen boyutlardaki parçalara bölündüğü ve bu parçaların sırayla kullanılacağı açıklanmaktadır (iOS sürüm 9.2'ye kadar, ardından bu parçaların bu saldırıların zorlaştırılması için rastgele bir şekilde kullanıldığı).
+
+Bu nedenle, bir heap taşması gerçekleştiğinde, taşan nesnenin bir kurban sırayla çarpışmasını zorlamak için birkaç **`kalloc`'lar** zorlanır ve tüm boş parçaların doldurulduğundan ve yeni bir sayfa oluşturulduğundan emin olunmaya çalışılır.
+
+Belirli bir boyuttaki nesnelerle bu doldurmayı zorlamak için, **iOS mach port ile ilişkilendirilmiş dış hattan tahsis** ideal bir adaydır. Mesajın boyutunu şekillendirerek, `kalloc` tahsisinin boyutunu tam olarak belirlemek mümkündür ve karşılık gelen mach portu yok edildiğinde, karşılık gelen tahsis hemen `kfree`'ye geri bırakılacaktır.
+
+Ardından, bazı bu yer tutucular **serbest bırakılabilir**. **`kalloc.4096` serbest listesi, öğeleri son giren ilk çıkan düzeninde serbest bırakır**, bu da temelde bazı yer tutucuların serbest bırakıldığı ve saldırının taşma nesnesini almaya çalışırken birkaç kurban nesne tahsis etmeye çalışırken, bu nesnenin muhtemelen bir kurban nesne tarafından takip edileceği anlamına gelir.
+
## Örnek ARM64
-[https://8ksec.io/arm64-reversing-and-exploitation-part-1-arm-instruction-set-simple-heap-overflow/](https://8ksec.io/arm64-reversing-and-exploitation-part-1-arm-instruction-set-simple-heap-overflow/) sayfasında, taşan parçadan bir sonraki parçada depolanacak bir komutun bulunduğu bir heap taşması örneği bulabilirsiniz. Bu nedenle, basit bir istismarla yürütülecek komutu değiştirmek mümkündür, örneğin:
+[https://8ksec.io/arm64-reversing-and-exploitation-part-1-arm-instruction-set-simple-heap-overflow/](https://8ksec.io/arm64-reversing-and-exploitation-part-1-arm-instruction-set-simple-heap-overflow/) sayfasında, taşan nesneden sonraki bir sonraki parçada yürütülecek bir komutun depolandığı bir heap taşması örneği bulabilirsiniz. Bu nedenle, basit bir saldırı ile üzerine yazarak yürütülen komutu değiştirmek mümkündür.
```bash
python3 -c 'print("/"*0x400+"/bin/ls\x00")' > hax.txt
```
-Sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!
+Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'ı desteklemenin diğer yolları:
-* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
-* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
-* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
-* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
-* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
+* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
+* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
+* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
+* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
+* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
diff --git a/binary-exploitation/heap/use-after-free/README.md b/binary-exploitation/heap/use-after-free/README.md
new file mode 100644
index 000000000..69cfe980f
--- /dev/null
+++ b/binary-exploitation/heap/use-after-free/README.md
@@ -0,0 +1,46 @@
+# Kullanımdan Sonra Ücretsiz
+
+
+
+AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
+
+HackTricks'ı desteklemenin diğer yolları:
+
+* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
+* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
+* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
+* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
+* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
+
+
+
+## Temel Bilgiler
+
+Adından da anlaşılacağı gibi, bu zafiyet, bir programın bir nesne için heap'te **bazı alanlar ayırdığı**, oraya **bazı bilgiler yazdığı**, artık gerekli olmadığı için onu **serbest bıraktığı** ve ardından **tekrar eriştiğinde** meydana gelir.
+
+Buradaki sorun, bir **serbest bırakılan belleğe erişildiğinde** (burada **hata olmayacak**) yasadışı olmamasıdır. Dolayısıyla, program (veya saldırgan) **serbest bırakılan belleği ayırmayı ve keyfi veri depolamayı başarırsa**, serbest bırakılan belleğe başlangıç işaretçisinden erişildiğinde, bu verinin üzerine yazılmış olması nedeniyle **orijinalde depolanan verinin hassasiyetine bağlı olarak bir zafiyet oluşturabilir** (eğer çağrılacak bir işlevin işaretçisiyse, saldırgan onu kontrol edebilir).
+
+### İlk Uygun Saldırı
+
+İlk uygun saldırı, bazı bellek tahsis edicilerin, örneğin glibc'de, serbest bırakılan belleği nasıl yönettiğine hedeflenir. Bir bellek bloğunu serbest bıraktığınızda, bu blok bir liste eklenir ve yeni bellek istekleri bu listeden sona doğru çeker. Saldırganlar, **yeniden kullanılan bellek bloklarını manipüle etmek için bu davranışı kullanabilir**, potansiyel olarak bunlar üzerinde kontrol kazanabilir. Bu, bir saldırganın **yeniden tahsis edilen belleğin içeriğini değiştirebileceği** "kullanımdan sonra ücretsiz" sorunlarına yol açabilir, böylece bir güvenlik riski oluşturabilir.\
+Daha fazla bilgi için şuraya bakın:
+
+{% content-ref url="first-fit.md" %}
+[first-fit.md](first-fit.md)
+{% endcontent-ref %}
+
+##
+
+
+
+AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
+
+HackTricks'ı desteklemenin diğer yolları:
+
+* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
+* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
+* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
+* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
+* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
+
+
diff --git a/binary-exploitation/heap/use-after-free/first-fit.md b/binary-exploitation/heap/use-after-free/first-fit.md
new file mode 100644
index 000000000..3aaabb878
--- /dev/null
+++ b/binary-exploitation/heap/use-after-free/first-fit.md
@@ -0,0 +1,64 @@
+# İlk Uygun Alan
+
+
+
+Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
+
+HackTricks'ı desteklemenin diğer yolları:
+
+* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
+* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
+* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
+* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
+* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
+
+
+
+## **İlk Uygun Alan**
+
+Glibc kullanarak bir programda belleği serbest bıraktığınızda, bellek parçalarını yönetmek için farklı "kutular" kullanılır. İşte iki yaygın senaryonun basitleştirilmiş bir açıklaması: sıralanmamış kutular ve hızlı kutular.
+
+### Sıralanmamış Kutular
+
+Hızlı bir parça olmayan bir bellek parçasını serbest bıraktığınızda, bu parça sıralanmamış kutuya gider. Bu kutu, yeni serbest bırakılan parçaların önüne (başa) eklenen bir liste gibi davranır. Yeni bir bellek parçası istediğinizde, tahsisatçı, istediğinizden yeterince büyük bir parça bulmak için sıralanmamış kutuya arkadan (kuyruk) bakar. Eğer sıralanmamış kutudan bir parça isteğinizden büyükse, bölünür, ön kısmı geri döndürülür ve geri kalan kısım kutuda kalır.
+
+Örnek:
+
+* 300 bayt (`a`) tahsis edersiniz, ardından 250 bayt (`b`) tahsis edersiniz, `a`'yı serbest bırakırsınız ve tekrar 250 bayt (`c`) istersiniz.
+* `a`'yı serbest bıraktığınızda, sıralanmamış kutuya gider.
+* Sonra 250 bayt daha isterseniz, tahsisatçı `a`'yı kuyrukta bulur ve bölerek, isteğinize uygun olan kısmı geri döndürür ve geri kalanı kutuda tutar.
+* `c`, önceki `a`'ya işaret edecek ve `a`'ların içeriğiyle dolacaktır.
+```c
+char *a = malloc(300);
+char *b = malloc(250);
+free(a);
+char *c = malloc(250);
+```
+### Fastbins
+
+Fastbins küçük bellek parçaları için kullanılır. Sıralanmamış kovaların aksine, fastbins yeni parçaları başa ekler ve son giren-ilk çıkan (LIFO) davranışı oluşturur. Eğer küçük bir bellek parçası isterseniz, ayırıcı fastbin'in başından alacaktır.
+
+Örnek:
+
+* 20 baytlık dört parça (`a`, `b`, `c`, `d`) ayırırsınız.
+* Onları herhangi bir sırayla serbest bıraktığınızda, serbest bırakılan parçalar fastbin'in başına eklenir.
+* Sonra 20 baytlık bir parça isterseniz, ayırıcı en son serbest bırakılan parçayı fastbin'in başından döndürecektir.
+```c
+char *a = malloc(20);
+char *b = malloc(20);
+char *c = malloc(20);
+char *d = malloc(20);
+free(a);
+free(b);
+free(c);
+free(d);
+a = malloc(20); // d
+b = malloc(20); // c
+c = malloc(20); // b
+d = malloc(20); // a
+```
+## Diğer Referanslar ve Örnekler
+
+* [https://heap-exploitation.dhavalkapil.com/attacks/first\_fit](https://heap-exploitation.dhavalkapil.com/attacks/first\_fit)
+* [https://8ksec.io/arm64-reversing-and-exploitation-part-2-use-after-free/](https://8ksec.io/arm64-reversing-and-exploitation-part-2-use-after-free/)
+* ARM64. Use after free: Bir kullanıcı nesnesi oluştur, serbest bırak, serbest bırakılan parçayı alan bir nesne oluştur ve ona yazma izni ver, **öncekinin üzerine yazarak kullanıcı->şifre konumunu** değiştir. Kullanıcıyı **şifre kontrolünü atlatmak** için yeniden kullan.