On Thu, Sep 30, 2004 at 12:53:24PM +0300, Vasil Kolev wrote: > На чт, 2004-09-30 в 12:33, Aleksander Valchev записа: > > Възможно ли е програмно (С/С++) да определиш дали даден файл е "binary > > executable"? > > Имам на предвид нещо като file(1). В `man file` пише, че всеки "binary > > executable" файл има "magic number" някъде в началото на файла и по това се > > определя дали е изпълним. Ако някой може да даде някакъв линк... > > Има един файл, magic (man 5 magic), който поне при мен стои в > /usr/share/misc/magic, в който можеш да прочетеш различните признаци, > по които file разпознава файла и за какво се бори. Също така можеш да > пробваш да свалиш source на file и съпътстващите го неща, и да го > разровиш. > > Самия ELF executable си има бая документи, които го описват, питай > директно google за нещо като "ELF executable format".
Само като допълнение, правилният начин да разпознаеш един файл като изпълним файл във формат ELF е първите му четири символа да са 0x7F, 'E', 'L', 'F'. Иначе идеята за разглеждаме на magic-файла на file(1), на различните файлове в сорса на file(1), от които се построява в крайна сметка файла magic, и на стандартите за ELF, е много, много добра :) Поздрави, Петър -- Peter Pentchev [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 What would this sentence be like if pi were 3?
pgp1xQU0ZFx7z.pgp
Description: PGP signature
