C'è qualche possibilità di sapere come è stato costruito un binario, sotto Linux? (e o altro Unix) Compilatore, versione, ora, flag ecc ... Ho guardato readelfe non ho trovato molto, ma potrebbero esserci altri modi per analizzare il codice binario / sezione ecc ... Qualcosa che sai come estrarre?
In una discussione sulla retrocompatibilità nel kernel Linux e nelle ABI della GUI , Alan Cox osserva che "il mio kernel 3.6rc eseguirà ancora un binario Rogue creato nel 1992. X è tornato compatibile con app molto più vecchie di Linux " . Quindi, quanto sono compatibili con le versioni …
Ma danno istruzioni come cd downloaded_program ./configure make install Questo crea l'ELF necessario e probabilmente alcuni file .so. Perché non mettere quelli all'interno di un file zip per il download, come con le app di Windows? C'è qualche motivo per cui devono essere compilati dall'utente?
Ho già visto discussioni sulla magia ELF, più recentemente i commenti in questa domanda di scambio di stack di sicurezza . L'ho già visto menzionato prima e l'ho visto nei miei log di avvio. Ma non sono sicuro di cosa si tratti. La pagina man su elf è un po …
Ho trovato il termine " eseguibile LSB " o " oggetto condiviso LSB " nell'output del filecomando in Linux. Per esempio: $ file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4637713da6cd9aa30d1528471c930f88a39045ff, stripped Cosa significa "LSB" in questo contesto?
Ogni volta che eseguo un file su un binario ELF ottengo questo output: [jonescb@localhost ~]$ file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped Mi sto solo chiedendo cosa è cambiato in Linux 2.6.9 …
Dato un kernel Linux 2.6.xo più recente e un'area utente esistente in grado di eseguire sia i binari ELF32 che ELF64 (vale a dire ben oltre Come faccio a sapere che la mia CPU supporta i sistemi operativi a 64 bit su Linux? ) Come posso determinare se un determinato …
Sto cercando di saperne di più sul controllo delle versioni delle librerie in Linux e su come far funzionare tutto. Ecco il contesto: - Ho due versioni di una libreria dinamica che espongono lo stesso set di interfacce, diciamo libsome1.soe libsome2.so. - Un'applicazione è collegata libsome1.so. - Questa applicazione usa …
Ho un file binario eseguibile; chiamiamolo a.out. Vedo che il binario contiene stringhe $ strings a.out ... /usr/share/foo .... Devo cambiare la stringa /usr/share/fooin /usr/share/bar. Posso semplicemente sostituire la stringa con sed?: sed -i 's@/usr/share/foo@/usr/share/bar@' a.out Sembra una cosa sicura da fare. Funzionerà anche quando le stringhe non hanno la …
È possibile verificare se un determinato programma è stato compilato con la strumentazione GNU gprof, cioè con il flag '-pg' passato sia al compilatore che al linker, senza eseguirlo per verificare se genererebbe un gmon.outfile?
Ho compilato un piccolo programma C (2 righe di codici) con gcc per cercare di capire il formato del file ELF. Facendo readelf -hsul file oggetto, ho nell'intestazione: OS/ABI: UNIX - System V Sto usando Fedora, quindi perché non è Linux? Modifica : ho compilato int main(){ int x = …
Quello che già so: Un eseguibile ELF ha un numero di sezioni, ovviamente le sezioni .text e .data vengono caricate in memoria poiché queste sono le parti principali del programma. Ma affinché un programma funzioni, ha bisogno di più informazioni, soprattutto se collegato in modo dinamico. Quello che mi interessa …
Un eseguibile ELF minimo richiede solo l'intestazione ELF e almeno un'intestazione del programma per essere funzionale. Tuttavia, quando eseguo strip su un breve eseguibile, decide di non eliminare la tabella delle intestazioni di sezione o la sezione stringhe di sezione, mantenendoli in giro anche se non hanno scopo (per quanto …
Quando sono sul mio Linux Box, utilizzo bash come shell. Ora mi chiedevo come bash gestisca l'esecuzione di un file ELF, cioè quando scrivo ./program e il programma è un file ELF. Ho grepped bash-4.3.tar.gz, non sembra esserci una sorta di parser di numeri magici per scoprire se il file …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.