Zahada neexistujiciho souboru

Tomas Konir tomas.konir na gmail.com
Sobota Květen 11 20:14:23 CEST 2013


Spíš zkuste na 64bit systému nepoužívat 32bit binárky, pokud to není
nezbytně nutné.

Tom
Dne 11.5.2013 19:40 "Leonardo" <leo na matrix-leo.cz> napsal(a):

> Dne So 11. května 2013 16:35:31 Pavel Kankovsky napsal(a):
> > On Sat, 11 May 2013, Leonardo wrote:
> > > Dne So 11. května 2013 13:18:53 Pavel Janík napsal(a):
> > >> head -1 /usr/firefox/firefox?
> > >
> > > ELF4~4  (444  TTT???y???y???y???       ???       4t???z???
> > >
> > > Tak z toho moc moudrý nejsem.
> >
> > Zkuste ještě tento příkaz:
> >
> > $ objdump -j .interp -s /usr/firefox/firefox
>
> file format elf32-i386
>
> Contents of section .interp:
>  8048154 2f6c6962 2f6c642d 6c696e75 782e736f  /lib/ld-linux.so
>  8048164 2e3200
>
> Pravděpodobně se vám jedná o /lib/ld-linux.so
> Jen tak zkusmo, jsem si stáhl jiný firefox přímo od výrobce
> (http://www.mozilla.org/en-US/firefox/all/ ) a výsledek je naprosto
> stejný.
> >
> > (Hmm... proč vlastně objdump -p vypisuje všechno možné, ale ne obsah
> > .interp?)
> >
> > Dynamicky linkované ELFové programy jsou trochu jako skripty. V sekci
> > .interp (*) může být odkaz na jiný program tzv. interpreter, což je
> > obvykle dynamický linker, a jádro se pak de facto pokouší spustit tento
> > interpreter, což může ale skončit s chybou (jako např. ENOENT), která je
> > pak vrácena tomu, kdo provedl execve(), aniž by bylo možno rozlišit, zda
> > se týká původního programu, nebo až interpreteru.
> Ted jsem se kouknul chybý mi /lib/ld-linux.so, to by mohlo vysvětlovat,
> proč
> některé programy x86, které jsou na tomtéž filesystemu vykazují stejnou
> chybu.
> Děkuji všem za pomoc a vysvětlení příčiny, asi se budu muset naučit
> kompilovat
> firefox nebo se spokojit s iceweassel :-(
> Na štěstí oba programy zas tak nutně nepotřebuji, protože běžně používám
> chromium.
> >
> > (*) Nebo přesněji v segmentu PT_INTERP, protože program má dvě
> > alternativní struktury: segmenty (jejich tabulka se jmenuje program
> > header), které popisují strukturu z hlediska toho, kdo chce program
> > spustit a potřebuje vědět, co kam namapovat do paměti, a sekce, které
> > reprezentují spíš logický pohled na věc. Obvykle je rozdělení souboru do
> > sekcí zjemněním rozdělení na segmenty. Tabulka sekcí (section header)
> > může v principu ve spustitelném soubboru chybět. Nebo by čistě
> hypoteticky
> > přítomna být mohla, ale ukazovat na jiná místa než tabulka segmentů, a
> pak
> > by objdump -j .interp ukazovalo špatná data. Pokud máte dojem, že po Vás
> > jdou, tak to můžete zkontrolovat porovnání obou tabulek v objdump -x.
> Děkuji za vysvětlení.
> --
>  Leonardo
> ------
>  „Teoretické znalosti dnes už nestačí.
>  Člověk musí překročit jejich hranice a umění se stane neumělým uměním,
> které
> vyrústá z nevědomí“
>              Daitsu Suzuki ( 1870 – 1966 )
> ---------
>  Feder ajsi romňi, so buter manušňi sar džuvli.
>         Cikánské přísloví
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux


Další informace o konferenci Linux