Хитрость заключается в том, чтобы создать правильный ввод для программы.
Это трудно или невозможно сделать, просто набрав текст с клавиатуры.
Вы можете обратиться к таблице ASCII и некоторым приемам для ввода непечатных символов. .
Но проще всего сделать программу, которая будет правильно выводить данные, и направить ее в программу для мошенничества.
В зависимости от порядкового номера, либо этот код, либо код с переупорядоченными последними четырьмя символами (не считая перевода строки) должно помочь.
#include <stdio.h>
int main()
{ printf("1234567890123456789012345678901234567890\xef\xbe\xad\xde\n"); /* works for me */
/* or \xde\xad\xbe\xef */
return 0;
}
Обратите внимание, что «\ xnn» - это синтаксис для явной передачи шестнадцатеричного значения символа (в строке) для вывода.
Скомпилируйте его в выдающийся «вывод» и используйте его для подачи необходимого вывода в «целевой» исполняемый файл, например,
output | target
вывод (убрал открытую часть оболочки):
[buf]: 1234567890123456789012345678901234567890´¥¡Ì
[check] deadbeef
Yeah dude! You win!
Opening your shell...
Shell closed! Bye.
Заметьте, я сделал это на Windows, но я надеюсь, что "транспонировал" его достаточно хорошо в Nix.
Если вы вынуждены использовать предоставленную оболочку и не можете выполнять самостоятельно написанные программы (вероятно, t он указывает), вам нужно изучить свои варианты, чтобы получить этот вывод в программу для мошенничества. Использование некоторых настроенных echo
может помочь. Или, в конце концов, вам, в конце концов, придется делать ввод непечатаемой информации ASCII.
Не зная больше о доступной среде, я не могу окончательно решить проблему.
Вам придется экспериментировать и исследовать. Это, кстати, то, почему мне удобно помогать вам с вашим заданием так же, как я делал выше, потому что вы все равно должны делать то, что я считаю основой этого самостоятельно. По моему мнению, это соответствует принятому компромиссу для помощи с домашними заданиями / заданиями, как описано здесь:
Как мне задавать и отвечать на домашние вопросы?