JJANG-JOON
반응형
with open() , hex() , zfill(), upper() , f.read()
언어/PYTHON 2023. 11. 8. 13:14

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 파일별칭: # 파일에 ..

article thumbnail
[파이썬] hex(i) , upper(i) , zfill(i)
언어/PYTHON 2023. 11. 6. 10:21

***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' 위 코..

article thumbnail
C언어 타입 캐스팅(type casting)
언어/C 2023. 10. 30. 00:16

🍖 C언어 type casting 🍖 C 언어에서 type casting은 데이터의 자료형을 다른 자료형으로 변환하는 과정이며 크게 두가지 유형의 형변환이 있다. 이런 타입 캐스팅 과정은 CTF 문제를 풀 때 코드를 이해하는데에 있어서 기본이다. 묵시적 형변환 묵시적 형변환은 데이터 타입이 서로 호환되는 경우 자동으로 수행되는 형변환이다. 예를 들어, int형 변수와 float형 변수를 더하는 경우, int형 변수는 자동으로 float형으로 형변환된다. int a = 10; float b = 2.5; // 묵시적 형변환 printf("%f\n", a + b); // 12.5 명시적 형변환 명시적 형변환은 개발자가 직접 데이터 타입을 변환하는 것을 말하며 (자료형)값과 같은 형식으로 수행된다. 예를 들어,..

article thumbnail
[C] 전처리기 ? 알아볼게요 ( with. code )
언어/C 2023. 8. 29. 01:45

전처리기❓ C 언어의 전처리기(Preprocessor)는 코드 컴파일 이전에 소스 코드에 대한 특별한 처리를 수행하는 역할을 한다 주로 # 기호를 사용하여 전처리 지시문을 정의하고 전처리기에게 명령을 내리는데 아래에 C 언어의 전처리 지시문과 예시 코드를 살펴보자 예시코드 헤더 파일 포함 (Include) #include 이 지시문은 헤더 파일을 현재 소스 파일에 포함시키며 표준 입력/출력 함수인 printf와 관련된 정의를 제공한다. 매크로 정의 (Define) #define MAX_VALUE 100 이 지시문은 MAX_VALUE를 100으로 정의하며 이후 코드에서 MAX_VALUE를 사용하면 컴파일러는 이를 100으로 대체한다. 조건부 컴파일 (Conditional Compilation) #ifdef..

article thumbnail
[PYTHON] python에서 c를 사용하게 해주는 ctypes 모듈
언어/PYTHON 2023. 8. 17. 10:20

ctypes 이란? ctypes는 외부 C 라이브러리 함수를 Python에서 호출할 수 있도록 도와주는 모듈이다. C 데이터 타입을 Python 데이터 타입과 호환시켜주며, 다양한 플랫폼에서 동작하는데 사용된다. 이는 Python과 C 사이의 상호 운용성을 제공하여 Python에서 C의 강력한 기능을 활용할 수 있게 한다. ctypes는 C 라이브러리 함수의 함수 원형을 정의하고 호출할 수 있는 기능을 제공하며 C 함수의 매개변수와 반환값은 C 데이터 타입을 사용하며, ctypes를 통해 Python 데이터 타입으로 변환된다. 이렇게 변환된 데이터는 C 함수에 전달되어 C 라이브러리와 상호 작용할 수 있게 된다. ctypes 데이터 타입: ctypes는 C 데이터 타입을 Python 데이터 타입과 연결하..

article thumbnail
[C] gdb 를 이용한 디버깅
언어/C 2023. 8. 8. 16:15

디버깅 C 언어 코드를 디버깅하는 과정은 코드 내에 발생하는 오류나 버그를 찾아내고 수정하는 과정을 자세히 보여주며 디버깅은 프로그램이 원하는 대로 동작하지 않을 때 유용하며, 이를 통해 코드의 동작을 분석하고 수정할 수 있다. 아래는 C 언어 코드를 디버깅하는 과정과 예시를 설명한 것이다. 디버깅 과정: 버그 발견: 먼저 프로그램이 원하는 대로 동작하지 않는 부분을 발견한다. 이는 예상치 못한 동작, 오류 메시지, 크래시 등으로 나타날 수 있다. 버그 재현: 버그를 재현하기 위해 조건을 특정하거나 입력을 조작한다. 버그가 발생하는 조건을 명확히 이해하는 것이 중요하다. 디버깅 환경 설정: 코드를 실행하면서 디버깅을 도와주는 도구를 사용하기 위해 디버거를 활성화한다. 대표적인 C 언어 디버거로는 GDB가..

article thumbnail
[C] 꼭 알아야 하는 포인터 개념
언어/C 2023. 8. 8. 15:16

포인터 C언어에서 포인터(Pointer)는 메모리 주소를 저장하는 변수이다. 이 주소는 다른 변수나 데이터 구조의 위치를 가리키는 역할을 하며 포인터를 사용하여 메모리의 특정 위치에 접근하거나 수정할 수 있고 C언어에서 메모리 관리와 동적 할당에 매-우 중요한 역할을 한다. 아래는 포인터 코드 예시이다. #include int main() { int num = 42; // 정수 변수 num을 선언하고 42로 초기화 int *ptr; // 정수 포인터 ptr을 선언 ptr = # // 포인터 ptr에 변수 num의 주소를 할당 printf("Value of num: %d\n", num); // num 변수의 값 출력 printf("Value of ptr: %p\n", ptr); // ptr 변수의 ..

728x90
반응형
profile on loading

Loading...