Hozzászólások
A kérdés adott, van ilyen progi ami meg mondja kapásból, hogy adott program milyen formában lett lefordítva? Tudom nézzem meg a csomag nevét, de néha ez nem egyértelmű :-)
- A hozzászóláshoz be kell jelentkezni
[quote:12ea8e2a7a="_Polesz_"]A kérdés adott, van ilyen progi ami meg mondja kapásból, hogy adott program milyen formában lett lefordítva? Tudom nézzem meg a csomag nevét, de néha ez nem egyértelmű :-)
"file".
a file mindent megmond, mindent tud és valójában a delphoi jósdában is az egész dolog hátterében egy unix gép állt amin a file nevű progit futtatták.
a mai fiatalok persze elnéznek fölötte, nekik már csak objdump kell, mert menőznek és nem tisztelik a múltat... mivé lett ez a világ! *sóhaj*
röszpekt.
- A hozzászóláshoz be kell jelentkezni
[quote:76da2d4a22="wry"][quote:76da2d4a22="_Polesz_"]A kérdés adott, van ilyen progi ami meg mondja kapásból, hogy adott program milyen formában lett lefordítva? Tudom nézzem meg a csomag nevét, de néha ez nem egyértelmű :-)
"file".
a file mindent megmond, mindent tud és valójában a delphoi jósdában is az egész dolog hátterében egy unix gép állt amin a file nevű progit futtatták.
a mai fiatalok persze elnéznek fölötte, nekik már csak objdump kell, mert menőznek és nem tisztelik a múltat... mivé lett ez a világ! *sóhaj*
röszpekt.
ÓÓÓÓ jósok jósa és azt is elárulnád, hogy hogyan tudom meg belőle, hogy a bináris i386, i486, i586, i686? mert ezt nem találom sem a helpjében sem a manjában :roll:
- A hozzászóláshoz be kell jelentkezni
thuglife ircen közben jól megaszonta, hogy sértőnek hangzott a hozzászólásom.. bocs ha annak tűnt - semmi esetre sem annak szántam, merő iróniának annál inkább.
közben már azt sem tudom egyáltalán jól értettem a kérdést vagy sem... bináris futtathatókról beszélsz, ugye?
meg kellene mondania, hogy milyen gépre fordult, ha egyszerűen a filenak első paramétereként a bináris exe-t adod meg.
pl:
wry@kupak:/tmp:$ file `which cp`
/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped
- A hozzászóláshoz be kell jelentkezni
[quote:9c2d590ebb="wry"]thuglife ircen közben jól megaszonta, hogy sértőnek hangzott a hozzászólásom.. bocs ha annak tűnt - semmi esetre sem annak szántam, merő iróniának annál inkább.
közben már azt sem tudom egyáltalán jól értettem a kérdést vagy sem... bináris futtathatókról beszélsz, ugye?
meg kellene mondania, hogy milyen gépre fordult, ha egyszerűen a filenak első paramétereként a bináris exe-t adod meg.
pl:
wry@kupak:/tmp:$ file `which cp`
/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped
Ezt tudom ezzel nincs gond, engem az érdekelne, hogy maga a bináris milyen kódra lett optimalizálva. Tehát egy i686-ra fordított binárist ne akarjak mondjuk egy 486-os gépen futtatni. Tudom ki lehet próbálni, de ezt lenne jó kikerülni.
- A hozzászóláshoz be kell jelentkezni
[quote:d6980ab16f="_Polesz_"][quote:d6980ab16f="wry"]thuglife ircen közben jól megaszonta, hogy sértőnek hangzott a hozzászólásom.. bocs ha annak tűnt - semmi esetre sem annak szántam, merő iróniának annál inkább.
közben már azt sem tudom egyáltalán jól értettem a kérdést vagy sem... bináris futtathatókról beszélsz, ugye?
meg kellene mondania, hogy milyen gépre fordult, ha egyszerűen a filenak első paramétereként a bináris exe-t adod meg.
pl:
wry@kupak:/tmp:$ file `which cp`
/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped
Ezt tudom ezzel nincs gond, engem az érdekelne, hogy maga a bináris milyen kódra lett optimalizálva. Tehát egy i686-ra fordított binárist ne akarjak mondjuk egy 486-os gépen futtatni. Tudom ki lehet próbálni, de ezt lenne jó kikerülni.
közben elkezdtem nézelődni és úgy tűnik a file mégsem képes megmondani, hogy egy bináris exe milyen kódra lett optimalizálva - vagy legalábbis ami eseteket eddig néztem nem úgy tűnik mintha a helyzet magaslatán lenne, de keresem tovább :) amint megtudom mondom, engem is érdekel.
- A hozzászóláshoz be kell jelentkezni
a dolgokat alaposabban átolvasva úgy tűnik, hogy azért nem ad ki semmi infót a file mert a binárisok amiken tesztelem i386-ra lettek készítve. ezekután forgattam pár saját programot is amelyeket optimalizáltan és -march=pentium4-gyel forgattam és a program mindig ugyanúgy nézett ki attól független melyik arch-ra forgattam.
az objdumppal, filelal, readelffel elvileg meg lehetne tudni milyen arch-ra lett forgatva a program, de nekem mindig i836-ot mond mindegyik.
ha megtudod mindenképp oszd meg itt is :)
- A hozzászóláshoz be kell jelentkezni
Szerintem mindenkeppen valami fordito specifikus dololggak kene probalkozni. Csinalj 2 par darab binarist mondjuk gcc -vel mindegyiket mas -march kapcsoloval aztan fogd objdump(1) ot es nezegesd meg a .text reszt mindegyiknek es probalj valami olyasmit talalni amibol megallapithato. Peldaul csak i686 nal elofordulo opcodeokat.
De ha jol tudom GCC nek vannak olyan symboljai ami pont erre hivatottak es ezeket a kododban hasznalhatod is. De lehet csak egy alomban lattam.
- A hozzászóláshoz be kell jelentkezni
[quote:809b83dcf5="thuglife"]Szerintem mindenkeppen valami fordito specifikus dololggak kene probalkozni. Csinalj 2 par darab binarist mondjuk gcc -vel mindegyiket mas -march kapcsoloval aztan fogd objdump(1) ot es nezegesd meg a .text reszt mindegyiknek es probalj valami olyasmit talalni amibol megallapithato. Peldaul csak i686 nal elofordulo opcodeokat.
De ha jol tudom GCC nek vannak olyan symboljai ami pont erre hivatottak es ezeket a kododban hasznalhatod is. De lehet csak egy alomban lattam.
ezt tettem én is és nem találtam semmi erre utaló jelet.
ugyan az ELF szabvány meghatároz egy e_machine-t, a szabvány leírása alapján ott csak olyan van, hogy "i386", tehát az, hogy mely al-architektúrára lett optimalizálva max az opkódokból derül ki - vagy legalábbis eddig ez a benyomásom.
- A hozzászóláshoz be kell jelentkezni