Поэтому я создал программу для создания отчетов. Я помещаю учетные данные в скрипт Python. Я хочу распространить это среди пользователей без Python, поэтому я преобразовал его в .exe с помощью pyinstaller. Мне не удалось найти учетные данные, просматривая .exe-файл в блокноте, поскольку он не читается человеком. Однако я хотел спросить, можно ли узнать учетные данные?
Как? Мне интересно. Кроме того, есть ли способ скрыть его в исполняемом файле?
Это элементарный вопрос обратного проектирования.
тогда предложите какой-нибудь источник или помогите мне выполнить это элементарное действие? Я бы даже хотел предложить этот файл, чтобы посмотреть, сможете ли вы извлечь из него имя пользователя и пароль.
pyinstaller имеет открытый исходный код, но я не смотрел и не собираюсь. Пусть эксперт объяснит, как это сделать.
Когда вы запускаете файл .exe
, созданный с помощью Pyinstaller, он создает временную папку, содержащую необходимые библиотеки, любые файлы, которые вы могли скопировать, и скомпилированную версию вашего исходного кода в файлах .pyc
.
Эти файлы можно декомпилировать, пусть и не так легко, поэтому злоумышленник в принципе может получить доступ к вашим учетным данным.
Подробнее об этом читайте здесь и здесь.
Спасибо за информацию. Похоже, я мог бы скомпилировать в Cython, если захочу скрыть его дальше, но теоретически его все равно можно обнаружить. Похоже, что мне пришлось приложить немало усилий, чтобы увидеть мое имя пользователя и пароль, и учетная запись, которую я использую, специально разработана для простого запуска отчетов, плюс она просто предоставляется людям, которых я знаю (они могут поделиться ею). Думаю, я всегда мог бы просто удалить его и попросить пользователя ввести имя пользователя и пароль. Хотя очень ценю информацию.
Глядя на это дальше, кажется, что это может быть довольно легко. Декомпилятор выглядит так, как будто он не декомпилирует текущую версию Python, но я предполагаю, что в какой-то момент он будет поддерживать версию, в которой я создаю свои программы.
Да, их можно обнаружить, наверное, без особого труда.