![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cd5ccs/btsEkRKVrOQ/qG3XQFRVcn2nymUrpG0g9k/img.png)
if 조건문 사용하기 if 조건문은 if에 조건식을 지정하고 :(콜론)을 붙이며 다음 줄에 실행할 코드가 온다. 이때 실행할 코드는 반드시 들여쓰기를 해야 한다. if 조건식: 코드 만약 if 다음 줄에서 들여쓰기를 하지 않으면 들여쓰기 에러가 발생한다. if 조건문의 기본 형태와 실행 흐름 알아보기 파이썬에서 if 조건문은 if 조건식: 형식으로 사용하며 그다음 줄에는 들여쓰기를 한 뒤 조건식이 만족할 때 실행할 코드를 넣는다. 특히 이 조건식이 만족할 때 실행할 코드를 if 본문(if body)이라고 부른다. if 조건문의 실행 흐름을 그림으로 표현하면 다음과 같은 모양이 된다. 보통 if의 조건식이 만족하면 참( True), 만족하지 않으면 거짓(False)이라고 부른다. if 조건문에서 코드를 생..
딕셔너리 사용하기 리스트와 튜플은 값 여러 개를 일렬로 저장할 뿐 값끼리 연관 관계가 없었다. 파이썬에서는 연관된 값을 묶어서 저장하는 용도로 딕셔너리라는 자료형을 제공한다. 딕셔너리는 값마다 이름을 붙여서 저장하는 방식이다. 즉, 사전(dictionary)에서 단어를 찾듯이 값을 가져올 수 있다고 하여 딕셔너리라고 부른다. 딕셔너리 만들기 딕셔너리는 { }(중괄호) 안에 키: 값 형식으로 저장하며 각 키와 값은 ,(콤마)로 구분해준다. 딕셔너리 = {키1: 값1, 키2: 값2} >>> lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72} >>> lux {'health': 490, 'mana': 334, 'melee': 550, 'armor'..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dcKSn4/btsEkzi1tBp/GsdA87FzcNtfIBk4wUBTU0/img.png)
불과 비교 연산자 사용하기 불(boolean)은 True, False로 표현하며 1, 3.6, 'Python'처럼 값의 일종이다. 파이썬에서는 비교 연산자와 논리 연산자의 판단 결과로 True, False를 사용한다. 즉, 비교 결과가 맞으면 True, 아니면 False이다. 숫자가 같은지 비교하기 두 숫자가 같은지 비교할 때는 ==(equal), 다른지 비교할 때는 !=(not equal)을 사용한다. >>> 10 == 10 # 10과 10이 같은지 비교 True >>> 10 != 5 # 10과 5가 다른지 비교 True 문자열이 같은지 비교하기 문자열은 비교할 때 대소문자를 구분한다. 다음과 같이 단어가 같아도 대소문자가 다르면 다른 문자열로 판단한다. >>> 'Python' == 'Python' T..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bxhysA/btsEeLYNA52/EgmDwc3cHaHGSuU83veCXK/img.png)
주석 한 줄 주석: # # Hello, world! 출력 print('Hello, world!') 들여쓰기 파이썬은 들여쓰기 자체가 문법이다. 예를 들어 if 다음 줄은 항상 들여쓰기를 해야 한다. 들여쓰기를 하지 않으면 문법 에러이므로 코드가 실행되지 않는다. if a == 10: print('10입니다.') # 들여쓰기 문법 에러 코드 블록 코드 블록은 특정한 동작을 위해서 코드가 모여 있는 상태를 뜻하며 파이썬은 들여쓰기를 기준으로 코드 블록을 구성한다. 단, 같은 블록은 들여쓰기 칸 수가 같아야 하고, 공백과 탭 문자를 섞어 쓰면 안 된다. 파이썬의 숫자 자료형 사칙연산 1. 덧셈: + 2. 뺄셈: - 3. 곱셈: * 4. 나눗셈(정수끼리 나눗셈을 해도 실수가 나옴): / 5. 나눗셈 후 나머지:..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bW5Kub/btsEbDevCXH/HfFAHZHAez2dpKGDHrtZl1/img.png)
print('Hello, world!') 파이썬은 코드를 한 줄 실행하여 결과를 얻는 인터프리터(interpreter) 방식이다. IDLE처럼 파이썬 코드를 직접 입력해서 실행하는 프로그램을 파이썬 셸(Python Shell)이라고 하며 >>> 부분을 파이썬 프롬프트(Python prompt)라고 부른다. 즉, 파이썬 셸을 통해서 파이썬 코드를 해석(interpret)해주는 인터프리터를 사용하게 된다. 파이썬 셸은 파이썬 인터프리터와 대화하듯이 코드를 처리한다고 해서 대화형 셸(interactive shell) 또는 인터렉티브 모드(interactive mode)라고도 부른다. 특히 이런 방식을 코드를 읽고, 평가(계산, 실행)하고, 출력한다고 해서 REPL(Read-Eval-Print Loop)이라고 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b7Yq5s/btsD1aqUaze/DwfH8x7ltbHUK5O5lC7qM1/img.png)
기본 명령어 · su : Switch User · sudo : SuperUser DO sudo [명령어] : superuser 권한으로 명령어 실행 설치 및 파일 수정할 때 superuser 권한이 필요 · sudo su : superuser 계정으로 전환 · whoami : 현재 사용자 확인 · exit : superuser 계정이었다면 이전의 계정으로 이동 · pwd : Print Working Directory, 현재 위치한 디렉토리를 보여줌 · sudo apt-get install [설치할 프로그램명] superuser 권한으로 설치 터미널 켰을 때나 설치 후에 한 번씩 sudo apt-get update 해주기 자매품으로 sudo apt-get upgrade도 있음 · cd : Change Di..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bRkTD1/btsD4TubEkK/hpU3O1PDYrTaQHh7lTk1FK/img.png)
David Wheeler는 EDSAC를 개발하면서 어셈블리 언어(Assembly Language)와 어셈블러(Assembler)라는 것을 고안했다. 어셈블러 : 개발자들이 어셈블리어로 코드를 작성하면 컴퓨터가 이해할 수 있는 기계어로 코드를 치환해줌. 역어셈블러 : 기계어를 어셈블리 언어로 번역해줌. 1. 어셈블리 언어 (Assembly Language)와 x86-64 어셈블리 언어 (Assembly Language) : 컴퓨터의 기계어와 치환되는 언어. 기계어도 여러 종류가 있기 때문에 어셈블리어도 여러 종류가 있다. x64 어셈블리 언어 x64 어셈블리 언어는 동사에 해당하는 명령어(Operation Code, Opcode)와 목적어에 해당하는 피연산자(Operand)로 구성된다. 명령어 명령 코드 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/9NEzl/btsD3df5deu/yXXyO6K4mKXkPxJmS1iKQ1/img.png)
메모리 오염 CPU의 동작과 메모리 사이에는 밀접한 연관이 있다. 만약 공격자가 메모리를 악의적으로 조작할 수 있다면 조작된 메모리 값에 의해 CPU도 잘못된 동작을 할 수 있다. 이를 메모리가 오염됐다고 표현하며, 이를 유발하는 취약점을 메모리 오염(Memory Corruption) 취약점이라고 부른다. 시스템 해킹에 다양한 공격기법들이 있지만, 많은 공격기법이 메모리 오염을 기반으로 하고 있다. 1. 세그먼트 리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트(Segment) 로 구분한다. 세그먼트란 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것인데, 크게 코드 세그먼트, 데이터 세그먼트, BSS 세그먼트, 힙 세그먼트, 그리고 스택 세그먼트로 구분한다. 운영체제가 메모리를 용도별로 나누면,..