Смущает команда печати python -c "\ xef \ xbe \ xad \ xde", что это значит? - PullRequest
0 голосов
/ 01 октября 2018

Я читаю «Playbook 2 Хакера» и немного читал о бинарной эксплуатации, пробую ssh-игру с небольшим количеством кода на C, и если вы воспользуетесь ими, вы получите пароль на следующий уровень.Однако я был очень смущен командой печати на python, используемой владельцем книги, надеясь, что вы, ребята, объясните.Проверьте это:

код C и требования игры

запутанное утверждение о печати на питоне

Я пыталсяОбъясните это как можно лучше, добавив две картинки, и, как вы можете видеть, часть, которая меня смущает: "\ xef \ xbe \ xad \ xde"

Надеюсь, я былясно, и спасибо в ответ:)

1 Ответ

0 голосов
/ 01 октября 2018

В строках Python вы можете указывать символы, задавая их порядковые значения ASCII, ISO Latin-1 или Unicode в шестнадцатеричной (base-16) нотации.Для этого вы включаете в строку подстроки вида "\xHH", где HH - это число в шестнадцатеричном формате.Например, чтобы включить символы возврата каретки (CR) и перевода строки (LF) в строку, вы должны написать "My string\x0D\x0A".0D в шестнадцатеричном формате соответствует 13 десятичному числу, которое является кодом ASCII для возврата каретки, а 0A соответствует 10, что является переводом строки.

В этом случае автор книги указывает код Latin-1очки "\xEF" (шестнадцатеричный EF = десятичный 239), "\xBE" (190), "\xAD" (173) и "\xDE" (222).Они явно выбраны для комического значения, так что результат его махинаций может быть показан как "DEADBEEF".

...