SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 보통 경로를 입력 할 때 이런 오류가 생긴다. 텍스트 파일을 불러오는 과정이 포함된 파이썬 스크립트를 만들던 중 저런 오류가 생겼었다. 해결 방법은 이러하다. \ > / 로 바꿔주면 된다. 간단
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 파일별칭: # 파일에 ..
***hex(i)는 파이썬에서 사용되는 함수로, 정수 i를 16진수 문자열로 변환하는 데 사용된다. 예를 들어, 다음과 같이 사용할 수 있다 i = 255 hex_string = hex(i) print(hex_string) # 출력 결과: '0xff' hex(i) 함수는 정수를 16진수 문자열로 변환하고, 앞에 '0x' 접두사를 붙여주고 이를 통해 16진수 값을 표현할 수 있으며, 주로 디버깅이나 다양한 프로그래밍 작업에서 사용된다. *** hex(i)[2:]는 hex(i)에 [2:]를 붙인 형태로 16진수 문자열에서 '0x' 앞부분을 제거하여 순수한 16진수 문자열만 남길 수 있다. i = 255 hex_string = hex(i)[2:] print(hex_string) # 출력 결과: 'ff' 위 코..
커널❓ 운영체제 커널은 운영체제의 핵심 부분으로, 시스템의 기본 동작을 관리하고 제어하는 역할을 수행한다. 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하며 자원 관리, 프로세스 스케줄링, 디바이스 드라이버 관리 등 다양한 핵심 기능을 제공한다. 운영체제 커널은 다음과 같은 원리와 동작으로 시스템을 관리한다: 하드웨어 추상화: 커널은 하드웨어 추상화를 제공하여 응용 프로그램이 하드웨어를 직접 다루지 않고도 사용할 수 있도록 한다. 이를 통해 응용 프로그램은 플랫폼 변화에 대응하지 않고도 동작할 수 있다. 자원 관리: 커널은 시스템의 자원을 효율적으로 관리한다. 메모리 관리를 통해 프로세스에게 메모리를 할당하고, CPU 스케줄링을 통해 여러 프로세스가 공정하게 CPU를 이용할 수 있도록 한다. 프로세스..
리버스 쉘❓ 리버스 쉘은 컴퓨터 네트워크 보안 분야에서 사용되는 용어로, 공격자가 공격 대상 시스템에 백도어를 설치하거나 제어할 수 있는 환경을 구성하는 기술이며 리버스 쉘을 이용하면 공격자는 공격 대상 시스템에서 특정 포트로 연결 가능한 쉘을 실행시켜 원격으로 시스템을 제어할 수 있다. 리버스 쉘 작동 원리 공격자의 시스템 설정: 공격자는 백도어를 설치하려는 시스템에 대한 IP 주소와 포트를 선택한다. 공격 대상 시스템 감염: 공격자가 설정한 IP 주소와 포트로 연결을 시도하는 코드가 포함된 악성 파일을 공격 대상 시스템에 전달한다. 공격자의 시스템 리스닝: 공격자는 설정한 포트로 들어오는 연결을 리스닝하면서, 공격 대상 시스템으로부터의 연결을 기다린다. 리버스 쉘 실행: 공격 대상 시스템이 공격자의 ..
ctypes 이란? ctypes는 외부 C 라이브러리 함수를 Python에서 호출할 수 있도록 도와주는 모듈이다. C 데이터 타입을 Python 데이터 타입과 호환시켜주며, 다양한 플랫폼에서 동작하는데 사용된다. 이는 Python과 C 사이의 상호 운용성을 제공하여 Python에서 C의 강력한 기능을 활용할 수 있게 한다. ctypes는 C 라이브러리 함수의 함수 원형을 정의하고 호출할 수 있는 기능을 제공하며 C 함수의 매개변수와 반환값은 C 데이터 타입을 사용하며, ctypes를 통해 Python 데이터 타입으로 변환된다. 이렇게 변환된 데이터는 C 함수에 전달되어 C 라이브러리와 상호 작용할 수 있게 된다. ctypes 데이터 타입: ctypes는 C 데이터 타입을 Python 데이터 타입과 연결하..
리졸버 리졸버(Resolver)는 네트워크 환경에서 사용자가 입력한 도메인 이름을 실제 IP 주소로 변환해주는 중요한 역할을 수행한다. 이는 인터넷에서 특정 웹사이트나 서비스를 찾을 때 필요한 핵심 기능으로, 사용자가 의미있는 도메인 이름을 이해하기 쉬운 방식으로 입력하면, 리졸버가 해당 도메인의 IP 주소를 찾아주어 실제 통신이 가능하게 해준다. 순서 사용자 요청: 사용자가 웹 브라우저나 다른 애플리케이션에서 도메인 이름을 입력하면, 해당 요청이 컴퓨터 내부의 리졸버로 전달된다. 로컬 캐시 검색: 리졸버는 이전에 해석한 도메인 이름과 IP 주소의 쌍을 로컬 캐시에 저장해두었다면, 캐시에서 해당 정보를 검색하여 빠르게 반환할 수 있다. 루트 쿼리: 만약 캐시에 정보가 없다면, 리졸버는 루트 DNS 서버에..