Перевод исходного кода python в бинарный

297 просмотра
0
0 Комментариев

Пытаюсь перевести код в бинарные данные, потом выполнить его.

Исходный код:

exec(print(123))

Переведенный код:

\x65\x78\x65\x63\x28\x22\x70\x72\x69\x6e\x74\x28\x31\x32\x33\x29\x22\x29

При записи этой строки в переменную, выполнение кода не происходит.

Переводил так:

a = 'exec("print(123)")'
print('\\x'.join([codecs.encode(bytes(x, 'utf8'), 'hex').decode('utf8') for x in a]))

Что не так? Правильно ли я перевожу?

Python  3


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

Дело в том, что словосочетание «бинарный код» не всегда обозначает то, что можно выполнить как программу.

В данном случае «бинарная строка» — это просто указание на то, что с данными нужно работать просто как с последовательностью байтов.

То есть, это просто такая специфическая разновидность строки. Никакого отношения к бинарному программному коду оно не имеет, и выполнить это нельзя.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up