LINUX.ORG.RU

анализ двоичного кода


0

0

имеется:

двоичный файл.

необходимо:

анализируя двоичный код, прийти к выводу о (не)возможности его исполнения в пользовательском режиме процессора.

вопрос:

такое в принципе возможно ?

и, если да, то как ? strings ?

Ответ на: комментарий от xnix

оговорено не было.

т.е. необходим ли коду привилегированый режим для исполнения или нет.

meshkcah
() автор топика
Ответ на: комментарий от xnix

Не покатит:

/usr/local/mysql/lib/mysql/libmysqlclient.so.15.0.0

Segmentation fault

Хотя вполне ничего бинарный исполняемый файл

В то же время:

/lib/ld-linux.so.2

Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] You have invoked `ld.so', the helper program for shared library executables. This program usually lives in the file `/lib/ld.so', and special directives in executable files using ELF shared libraries tell the system's program loader to load the helper program from this file. This helper program loads the shared libraries needed by the program executable, prepares the program to run, and runs it. You may invoke this helper program directly from the command line to load and run an ELF executable file; this is like executing that file itself, but always uses this helper program from the file you specified, instead of the helper program file specified in the executable file you run. This is mostly of use for maintainers to test new versions of this helper program; chances are you did not intend to run this program.

--list list all dependencies and how they are resolved --verify verify that given object really is a dynamically linked object we can handle --library-path PATH use given PATH instead of content of the environment variable LD_LIBRARY_PATH --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names in LIST

Лучший способ это наверное задисассемблить и уж если дисассемблировано без ошибок, то смотреть на процессорные команды, которые он использует, и решить, нужен ли привелигерованный режим

magellan
()
Ответ на: комментарий от meshkcah

В общем случае вообще анализ не возможен. Больше того, в общем случае даже выполнение файла-бинарника не даст нужного знания.

Например, в бинарнике могут быть два пути исполнения, на одном из которых нужен привелегированный режим, а на втором - нет. Выбор между путями может зависеть от чего угодно - от состояния памяти, например :)

ИМХО это очевидно. Или вопрос в другом?..

jek_
()
Ответ на: комментарий от jek_

как раз в этом, я, в принципе, так и хотел в лабе записать, но подумал, а мало ли...

meshkcah
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.