Есть ли способ запустить исполняемый двоичный файл в Linux, в котором не установлен бит выполнения? chmod +x
это не вариант.
Например, это могут быть r--r--r--
только разрешения .
Выполнение сценариев возможно без установки бита выполнения и добавления шебанга путем передачи источника интерпретатору, например, bash script.sh
или python script.py
.
Так что-нибудь подобное execute abinaryfile
загрузит объектный код в память и запустит его?
Ответы:
Вы можете использовать /lib/ld*.so как ELF-интерпретатор, например так:
Фактическое имя отличается от архитектуры к архитектуре. Некоторые имена включают в себя
/lib/ld-linux.so.2
,/lib/ld-linux-x86-64.so.2
и/lib/ld-2.7.so
. Вы, вероятно, можете найти это как/lib/ld*
.источник
ld
- программа-компоновщик / загрузчик. Он находит и загружает разделяемые библиотеки, используемые программой, а затем выполняет ее.ld-linux
обрабатывает двоичные файлы ELF./lib/ld-linux.so.2
не выполнимо (это вообще возможно?).so
могут загружаться только исполняемые файлы s, иld-linux
это очень важно./lib64/ld-linux-x86-64.so.2
Нет. По крайней мере, не так. Вы по-прежнему выполняете двоичный файл, когда делаете Python. Питон + х. Вам нужно будет скомпилировать что-то, что может загрузить файл и выполнить его.
TiCL должен сделать свой ответ ответом, потому что это лучший путь.
источник
exec
Системный вызов в Linux ядра не удается с ,EACCES
если файл не является исполняемымХотя вы можете это сделать
sh myprog.sh
, пытаясь запустить программу как./myprog.sh
не может работать, так как, когда вы делаете это:./myprog.sh
exec
системным вызовом ядра Linux, как описано по адресу: /programming/2429511/why-do-people-write-the-usr-bin-env-python-shebang-on -The-первой линии в своем -Пыть / 40938801 # 40938801Это можно проверить с помощью
main.c
:и
myprog.sh
:Если
myprog.sh
это не исполняемый файл, происходитmain
сбой с:Проверено в Ubuntu 17.10
gcc -std=c99
.POSIX 7 упоминает, что в:
Дополнительную информацию можно найти по адресу: /security/66550/unix-execute-permission-can-be-easily-bypassed-is-it-superfluous-or-whats-the
источник