다음 코드는 선형 방정식 해결사의 일부입니다. 이것은 파이썬 3 용으로 작성되었습니다. 프로그램을 실행하기 전에 마법 값을 imp.get_magic()
에서 예상 값과 비교하여 검사합니다.Python 3.5.0에서 예기치 않은 마법 번호가 표시됨
필자는 Fedora 25를 실행하는 시스템에 Python 3.5.0을 설치했습니다. 문제는 내 시스템에서 매직 번호에 다른 값을 얻는 것입니다. 예상
는 대신 b'\xf8\x0c\r\n'
, 내가 얻을 : 여기
b'\x16\r\r\n'
코드입니다
def _get_module():
del globals()['_get_module']
import imp
import base64
import marshal
magic = imp.get_magic()
if magic == b'\xf8\x0c\r\n': # Python 3.5
pycData = <certain value>
pycData = base64.decodebytes(pycData)
나는 마법의 숫자에 대해 다른 값을 얻을 수 있기 때문에,이 프로그램을 실행할 수 없습니다 프로그램.
이 코드는 책 Coding the Matrix의 자료입니다. "The Matrix"섹션에서 찾을 수 있으며 파일의 이름은 solver.py
(파일 다운로드)입니다.
이 작업을 수행 할 수있는 방법이 있습니까?
글쎄, 조건부를 true로 설정할 수는 없습니까? 어쨌든이 코드는 무엇이라고 생각합니까? – user1685095
오, 이런 스크립트는 파이썬 버전의 매직 넘버에 키가 삽입 된 바이트 코드를 포함하고 있습니다. 무엇이 잘못 될 수 있습니까? –
@MartijnPieters OS와 관련이 있습니까? – dpk