# 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 %}