Я пытаюсь использовать двоичный (64-разрядный) метод цепочки гаджетов.Я должен передать адрес 0x00007ffff7e10cf8
, который содержит код для pop rax;ret
При передаче этого ввода в формате с прямым порядком байтов мой bash выдает предупреждение: bash: warning: command substitution: ignored null byte in input
и печатает только до 7f, игнорируя пустые байты.
Чтобы убедиться, что я правильно понял, что bash IGNORES и не прекращает синтаксический анализ при обнаружении первого NULL-байта.Я попытался echo $(printf "\x00\x55\x44\x33\x22\x00\x34")
, и результат был
bash: warning: command substitution: ignored null byte in input
UD3"4
Так что да, bash просто игнорирует NULL-байты и продолжает анализ до конца.
Есть ли способ фактически передать NULL-байтыв баш?Я использую Bash версии 5.0.3