# One Gadget {{#include ../../banners/hacktricks-training.md}} ## Basic Information [**One Gadget**](https://github.com/david942j/one_gadget) inaruhusu kupata shell badala ya kutumia **system** na **"/bin/sh". One Gadget** itapata ndani ya maktaba ya libc njia fulani ya kupata shell (`execve("/bin/sh")`) kwa kutumia tu **anwani** moja.\ Hata hivyo, kawaida kuna baadhi ya vizuizi, ambavyo ni vya kawaida na rahisi kuepukwa kama `[rsp+0x30] == NULL` Kwa kuwa unadhibiti thamani ndani ya **RSP** unahitaji tu kutuma thamani zaidi za NULL ili kuepuka kizuizi hicho. ![](<../../images/image (615).png>) ```python ONE_GADGET = libc.address + 0x4526a rop2 = base + p64(ONE_GADGET) + "\x00"*100 ``` Ili kufikia anwani iliyoonyeshwa na One Gadget unahitaji **kuongeza anwani ya msingi ambapo `libc`** imepakiwa. > [!TIP] > One Gadget ni **msaada mzuri kwa mbinu za Arbitrary Write 2 Exec** na inaweza **kurahisisha minyororo ya ROP** kwani unahitaji tu kuita anwani moja (na kutimiza mahitaji). {{#include ../../banners/hacktricks-training.md}}