JJANG-JOON
반응형

 

 

 

 

with open('flag.png','rb') as f:

        plain_s = f.read()

 

파일 'flag.png'을 이진(binary) 모드로 ('rb'는 read binary의 약자) 연다. 'rb' 모드는 파일을 이진 데이터로 열기 위한 모드로, 파일 내용을 읽을 때 각 바이트를 이진 형식으로 다룬다. 'with' 문은 파일을 열고 사용한 후 자동으로 닫아준다.

 

열린 파일에서 데이터를 읽어와서 변수 plain_s에 저장한다. 이 코드는 파일 내용을 읽어 plain_s 변수에 이진 데이터로 저장하는 역할을 한다. 이진 데이터는 바이트의 연속으로 이루어져 있으며, 주로 이미지, 오디오, 비디오 및 기타 이진 파일 형식에서 사용된다.

 

with open('파일명', '모드') as 파일별칭:
    # 파일에 대한 작업을 수행합니다
    # 파일은 이 블록을 빠져나가면 자동으로 닫힙니다

 

 

 

with open('파일.txt', 'r') as f:
    내용 = f.read()
    print(내용)  # 파일의 내용이 출력됨

 

 

f.read() 는 현재 열린 파일 객체 f에서 데이터를 읽고 해당 데이터를 반환한다.

 

 

 

 

plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s]

 

 

  1. hex(i): 이 부분은 10진수 정수 i를 16진수 문자열로 변환한다. 예를 들어, 10진수 255는 0xFF로 변환된다.
  2. [2:]: 이 부분은 16진수 문자열에서 0x를 제외한 숫자 부분만을 선택한다. 즉, '0x'를 제외한다.
  3. .zfill(2): 이 부분은 문자열을 왼쪽에서 0으로 채워 2자리로 만들어준다. 만약 값이 한 자리 숫자라면 왼쪽에 0을 추가하여 2자리로 만든다.
  4. .upper(): 이 부분은 문자열을 대문자로 변환한다.

 

따라서 plain_s에 있는 각 바이트를 16진수 문자열로 변환하고, 각 16진수 값이 2자리로 표현되도록 하며, 이를 모두 대문자로 표시하여 변환한 후, 그 결과를 리스트 plain_list에 저장한다.

 

 

 

 

 


 

 

 

 

 

 

위의 함수들은 별도 import 없이 python 내장기능으로 편리하게 사용가능하다.

반응형
profile

JJANG-JOON

@JJANG-JOON

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...