RSS DEV 커뮤니티

Python에서 "Hello world!" 난독 화

이 Python 2.7 프로그램은 극단적인 난독화를 사용하여 "Hello world!"를 인쇄합니다. 문자열 리터럴을 피하고 최소한의 내장 함수를 사용합니다. 핵심 논리는 getattr 및 __import__를 사용하여 액세스하는 os.write를 통해 stdout에 쓰는 것과 관련이 있습니다. "os"와 "write" 문자열은 내장 클래스 이름의 일부로 구성됩니다. "Hello world!" 문자열은 ASCII 값을 나타내는 큰 정수로 인코딩됩니다. 재귀 람다 함수는 이 정수를 문자열로 다시 디코딩합니다. 디코딩에 사용되는 정수 256은 비트 시프트(1 << 8)로 표시됩니다. "Hello world!"를 나타내는 큰 정수도 비트 이동과 산술 연산으로 분해됩니다. 정수 리터럴은 함수의 인수 count 및 지역 변수 count에서 생성된 변수로 바뀝니다. 재귀 람다 함수는 1에서 8까지의 정수 시퀀스를 생성하여 정수 리터럴에 대한 난독 처리 된 대체를 제공합니다. 마지막 프로그램은 하나의 복잡한 람다 식입니다.
favicon
dev.to
Obfuscating “Hello world!” obfuscate on Python