# WWW2Exec - .dtors & .fini\_array
{% hint style="success" %}
Jifunze na zoea AWS Hacking:[**Mafunzo ya HackTricks AWS Timu Nyekundu Mtaalam (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Jifunze na zoea GCP Hacking: [**Mafunzo ya HackTricks GCP Timu Nyekundu Mtaalam (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
* **Jiunge na** π¬ [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** π¦ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
## .dtors
{% hint style="danger" %}
Leo ni **kigeni sana kupata faili ya binary na sehemu ya .dtors!**
{% endhint %}
Waharibifu ni kazi ambazo zina **tekelezwa kabla ya programu kukamilika** (baada ya kazi ya `main` kukamilika).\
Anwani za kazi hizi zimehifadhiwa ndani ya sehemu ya **`.dtors`** ya binary na kwa hivyo, ikiwa utaweza **kuandika** anwani ya **shellcode** katika **`__DTOR_END__`** , hiyo itatekelezwa kabla ya programu kukamilika.
Pata anwani ya sehemu hii na:
```bash
objdump -s -j .dtors /exec
rabin -s /exec | grep β__DTORβ
```
Kawaida utapata alama za **DTOR** **kati** ya thamani `ffffffff` na `00000000`. Kwa hivyo ikiwa unaona thamani hizo tu, inamaanisha kwamba **hakuna kazi iliyoandikishwa**. Kwa hivyo **badilisha** **`00000000`** na **anwani** ya **shellcode** ili kuitekeleza.
{% hint style="warning" %}
Kwa hakika, kwanza unahitaji kupata **mahali pa kuhifadhi shellcode** ili baadaye uitee.
{% endhint %}
## **.fini\_array**
Kimsingi hii ni muundo na **kazi ambazo zitaitwa** kabla ya programu kukamilika, kama **`.dtors`**. Hii ni ya kuvutia ikiwa unaweza kuita **shellcode yako kwa kuruka kwenye anwani**, au katika hali ambapo unahitaji kurudi **kwenye `main`** tena ili **kutumia udhaifu mara ya pili**.
```bash
objdump -s -j .fini_array ./greeting
./greeting: file format elf32-i386
Contents of section .fini_array:
8049934 a0850408
#Put your address in 0x8049934
```
#### Mzunguko wa milele
Ili kutumia **`.fini_array`** kupata mzunguko wa milele unaweza [**angalia kilichofanyika hapa**](https://guyinatuxedo.github.io/17-stack\_pivot/insomnihack18\_onewrite/index.html)**:** Ikiwa una angalau vitu 2 katika **`.fini_array`**, unaweza:
* Tumia andika yako ya kwanza kuita **kazi ya andika isiyo na mpangilio** tena
* Kisha, hesabu anwani ya kurudi kwenye stakabadilishwa na **`__libc_csu_fini`** (kazi inayoitwa na `.fini_array` zote) na weka huko **anwani ya `__libc_csu_fini`**
* Hii itafanya **`__libc_csu_fini`** kuita yenyewe tena ikitekeleza kazi za **`.fini_array`** tena ambayo itaita kazi ya WWW isiyo na kinga mara 2: moja kwa **andika isiyo na mpangilio** na nyingine kwa kubadilisha tena **anwani ya kurudi ya `__libc_csu_fini`** kwenye stakabadilisha kuita yenyewe tena.
{% hint style="danger" %}
Tambua kwamba na [**Full RELRO**](../common-binary-protections-and-bypasses/relro.md)**,** sehemu ya **`.fini_array`** inafanywa kuwa **soma-tu**.
Katika toleo jipya, hata na [**Partial RELRO**] sehemu ya **`.fini_array`** inafanywa kuwa **soma-tu** pia.
{% endhint %}
{% hint style="success" %}
Jifunze & zoezi la Udukuzi wa AWS:[**Mafunzo ya HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Jifunze & zoezi la Udukuzi wa GCP: [**Mafunzo ya HackTricks GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
* **Jiunge na** π¬ [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** π¦ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}