jak podstrcit ethernet adresu ?
Jirka Kosina
jikos na jikos.cz
Čtvrtek Srpen 15 18:03:07 CEST 2002
On Thu, 15 Aug 2002, Petr Skoda wrote:
> Myslite, ze se da nejak zaridit pomoci LD_PRELOADu,
> aby aplikace volajici
> ioctl(cislo,SIOCGIFHWADDR,xxxxx)
> kde cislo je otevreny datagramovy socket
> dostala jine cislo, nez ma doopravdy ethernetova karta ?
Myslim, ze pomoci LD_PRELOAD to jde skutecne velmi jednoduse.
test.c:
int ioctl(int d, int request, ...) { /* tady naplnit to co chcete */ }
$ gcc -shared test.c -o test.o
A muzete preloadovat test.o
Pokud ta aplikace vola jeste jina ioctl(), nez jen SIOCGIFHWADDR, tak si
jeste budete muset uvnitr toho Vaseho ioctl() v test.c pomoci dlopen() a
dlsym() vytahnout z libc pointer na skutecny ioctl(), a ten pak, na
zaklade podminky na druhy argument volat.
Priznam se, ze jsem to nezkousel, ale IMHO by to melo fungovat.
--
JiKos.
Další informace o konferenci Linux