MDK 9.1 a binarni aplikace z roku 98

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Leden 4 18:07:51 CET 2004


On Fri, 2 Jan 2004, Jaroslav Lukesh wrote:

> potreboval bych na MDK 9.1 spustit aplikace, ktera neni otevrena, ale 
> jeji binarka je z roku 98, prelozena GSS: (GNU) 2.8.1. Kdyz ji pustim, 
> rika mi "file not found". Totez (a nic vic)  mi rekne strace a ldd.

ELFove programy mohou mit v sobe odkaz na jiny program, tzv. interpreter.
Obsah teto hodnoty lze zjistit pomoci objdump -s -j .interp (nebo mene
elegatne zminenym strings). Pokud ma jadro spustit takovy program, pak
vezme obsah sekce .interp jako cestu k programu (obvykle je to dynamicky
linker), ktery spusti a nejakou cestou mu preda odkaz na puvodni spousteny
program. Pokud program odkazovany z .interp neexistuje nebo nejde spustit
z nejakeho jineho duvodu, zachova se jadro tak, jako by ten samy problem
mel puvodni spousteny soubor, cili napr. selze volani execve() s chybou
ENOENT. Je to trochu matouci, ale moc chytrejsich zpusobu, jak se v takove 
situaci chovat, asi neni.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux