프롤로그ELITE HACKER Bootcamp 3rd 3주차 수업 공부 내용aws 우분투 서버 하나 파서 연습함수의 개념, 용도, 선언, 정의(프로토타입), 매개변수, 반환값, 가변인자, 스코프, 재귀 함수, 가변인자 함수의 스코프스코프..scope... 해석하자면 "범위" 라는 의미이다.뭐 전역 변수(global scope), 지역 변수(local scope), 블록 변수(block scope) 막 이런식으로 얘기하는데 헷갈리지 않는 방법이 있다.{ } 이 중괄호 사이 안에서 선언한 변수는 딱 거기서만 사용할 수 있다.전역 변수 같은 경우는 중괄호 {} 안에 있는 게 아니라 바깥에 있기 때문에 어느 곳에서나 사용할 수 있다.그런데, 일반 함수를 선언하고 그 안에서 변수가 사용되면, 해당 함수는 { }..
전체 글
성밍쟁 공붕방프롤로그ELITE HACKER Bootcamp 3rd 3주차 수업 공부 내용aws 우분투 서버 하나 파서 연습함수의 개념, 용도, 선언, 정의(프로토타입), 매개변수, 반환값, 가변인자, 스코프, 재귀 함수, 함수 포인터, 가변인자 함수중고등학생 때에도 함수에 대해서 많이 배웠다.y = f(x)수학적용어로 함수라고 하는 것은, x의 값에 따라 y의 값이 하나로 나오는 관계를 함수라고 한다.좀 더 전문적으로 말하면...정의역의 원소마다 공역의 원소가 오직 하나씩 대응대는 관계..그래서 만약에 f(x) 가 3x+1이라고 하면y = 3x+1이러한 함수에서, x에 값에 어떠한 값을 넣어도 y는 무조건 하나만 나오게 된다.이 수학적 함수가 코드에서도 거의 비슷하다. 코드 세계에서 함수란, 어떠한 기능을 하는/특..
프롤로그bandit 문제풀이저번 비밀번호는 dtR173fZKb0RRsDFSGsg2RWnpNVj3qRr 이다. 문제다음 레벨로 가는 비밀번호는 data.txt 파일에 저장이 되어있다. 소문자 a-z, 대문자 A-Z까지 단어를 13칸 회전시켜서 만들어졌습니다.ROT13 기법이니 잘 찾아서 해봐라. ROT13일종의 암호화 기법인데, Rotate by 13의 줄임말이다. 별도의 열쇠값이 없이 영어 알파벳을 13칸씩 밀어내는 방식으로 암호화를 한다.1234567891011121314151617181920212223242526abcdefghijklmnopqrstuvwxyznopqrstuvwxyzabcdefghijklm이렇게 a를 1번이라고 했을 때 13칸 뒤의 있는 알파벳은 14번째의 n이다. b는 13칸뒤에..
프롤로그ELITE HACKER Bootcamp 3rd 3주차 수업 공부 내용점수 처참해서;; 빡세게 공부해보자.aws 우분투 서버 하나 파서 연습배열, 배열 선언 방법 , 배열의 인덱스 참조 방법, 배열의 메모리 구조, 2차원 배열 , n차원 배열 (n > 2) 배열같은 형태의 데이터, 동일한 자료형의 데이터를 한데 묶어 연속된 메모리 공간에 저장하는 데이터 구조이다. 미리 크기를 정의하고, 인덱스를 통해서 각 요소에 접근할 수 있다.배열의 특징이 있다면 다음과 같은데 고정된 크기: 배열의 크기는 선언할 때 정해지며, 프로그램 실행 중에는 변경할 수 없다.인덱스: 배열의 인덱스는 0부터 시작한다. 첫 번째 요소는 인덱스 0에, 두 번째 요소는 인덱스 1에 위치한다.연속된 메모리: 배열 요소는 메모리상..
프롤로그bandit 문제풀이저번 비밀번호는 FGUW5ilLVJrxX9kMYMmlN4MgbpfMiqey 이다. 문제다음 레벨로 가는 비밀번호는 data.txt 파일 안에 저장되어있는데, 그 파일은 base64 인코딩된 데이터가 포함되어있다. base64란?바이너리 데이터를 텍스트 형식으로 인코딩하는 방법 중 하나. 주로 이진 데이터를 텍스트로 변환하거나, 아니면 네트워크 전송 및 데이터 저장을 할 때 사용된다. 왜 base64냐? 아스키 코드 중에서 [a-z], [A-Z], [0-9] , +, /까지 총 26+26+10+2= 64개, 즉 기본적인 것만 사용한다고 해서 base64라고 불린다. 그래서 base64 인코딩이라고 한다는 것은, 원래 바이너리 데이터를 Base64 형태로 변환한다는 의미이고, ..
프롤로그ELITE HACKER Bootcamp 3rd 2주차 수업 공부 내용aws 우분투 서버 하나 파서 연습조건문 if, else if, else, switch/case문 조건문조건문은 프로그램의 흐름을 제어하는 데 사용된다.. 조건문은 특정 조건이 참(true)인지 거짓(false)인지에 따라 코드 블록을 실행하거나 건너뛴다. (1) if문가장 기본적인 조건문if (조건식) { // 조건식이 참일 때 실행되는 코드}이렇게 사용한다.예시를 들면#include int main(){ int score = 95; if (score >=90) { printf("A\n"); }}A가 95 이상이기 때문에 A라는 것이 출력이 된다. 그러나, A값을 90 미만으로 바꾸게 ..
프롤로그ELITE HACKER Bootcamp 3rd 2주차 수업 공부 내용aws 우분투 서버 하나 파서 연습출력함수, 포멧 스트링, 이스케이프시퀀스, C언어의 입력함수, 문자열 출력 함수이전 글들을 슥 돌아보면, 결과값들을 출력하기 위해서 주로 printf를 사용하였었다. 그 외에 몇 개 더 있는데, 알아보도록 하자.(1) printf()일반적으로 문자열을 포맷팅하여 출력하는 가장 많이 사용되는 함수이다.printf("안녕");이런식으로 많이 쓰인다. (2) putchar단일문자를 출력하는 함수이다.putchar('A');이런식으로 사용한다. (3) puts문자열을 출력하고 자동으로 줄 바꿈을 한다.puts("Hello, World!");이런식으로 사용한다. 실제로 한 번 써보자.#include in..
프롤로그ELITE HACKER Bootcamp 3rd 2주차 수업 공부 내용aws 우분투 서버 하나 파서 연습연산자 종류, 산술연산자, 비트연산자, 논리연산자, 증감연산자, 형변환 연산자연산자란 값이나 변수에 특정 작업을 수행하는 데 사용되는 기호를 말한다. 흔히 우리가 아는 사칙연산 +, - 이런 것들도 값 또는 변수에 "특정 작업"을 수행하기에 이 또한 포함된다.다양한 연산자가 있는데 아래 쭉 살펴보자. 산술연산자산술연산자, 사칙연산이라고 생각을 하면 된다. 우리가 아는 그 사칙연산 +-*/ 맞다.+더하기a+b-빼기a-b*곱하기a*b/나눗셈 (몫)a / b%나눗셈 (나머지) , 모듈러라고도 함a % b보면은 나눗셈이 / 도 있고 %도 있는데, 아래 코드로 확인해보자.#include int main..
프롤로그aws 우분투 서버 하나 파서 연습C언어의 상수, 변수, 자료형, 오버플로우와 언더플로우, 변수 선언 방법/규칙, 주석처리 상수와 변수수학적인 개념으로 상수와 변수를 알아보자.4x-3 = 1이렇게 있을 때, -3은 변하지 않는 값, x는 변하는 값이다.x의 값은 1, 2, 3, 4, 5, ....1.1, 1.2,....pi...등 여러 개의 값들이 올 수 있고, x에 값에 따라서 해당 식이 참이 될 수도, 거짓이 될 수도 있다.이렇기에 x는 변하는 수, 즉 변수라고 한다.반면에 -3 같은 경우에, 해당 식에서 절대로 변하지 않는다. 1도 마찬가지다. 이를 상수라고 한다.그렇다면 x 앞의 4는? 저건 계수라고 하는데, 일단 상수와 변수의 값만 볼 것이니까... 이게 C언어 뿐만 아니라 다른 프로그램..
프롤로그ELITE HACKER Bootcamp 3rd 2주차 수업 공부 내용aws 우분투 서버 하나 파서 연습C언어, 컴파일러, gcc C언어란?UNIX 운영체제 개발을 위해 설계한 범용 프로그래밍 언어하드웨어와 밀접하게 작업할 수 있는 저수준 프로그래밍 부터 고수준 프로그래밍 까지 갖추고 있다. 절차적 프로그래밍 언어: C는 프로그램이 순차적으로 실행되는 절차적 구조이다. 메모리 접근 제어: C 언어는 포인터를 통해 메모리 주소로 직접 참고 -> 하드웨어에 용이컴파일러 기반 언어: C 프로그램은 소스 코드를 컴파일하여 실행 파일로 변환한 후 실행. gcc 사용포터블(이식성): 대부분의 운영체제에서 C 컴파일러를 사용하면 동일한 C 코드가 쉽게 이식되어 다른 플랫폼에서 실행 가능 컴파일러 vs 인터..
프롤로그bandit 문제풀이저번 비밀번호는 4CKMh1JI91bUIZZPXDqGanal4xvAg0JM 이다. 문제다음 레벨로 가는 비밀번호는 data.txt 인 파일에 있다. 그리고 사람이 읽을 수 있는 문자열이고, 몇개의 = 문자 뒤에 있다. strings바이너리 파일이나 이진 데이터 내에 포함된 사람이 읽을 수 있는 텍스트 문자열을 추출하는 데 사용된다. 일반적으로 바이너리 파일은 사람이 직접 읽기 어려운 형식으로 되어 있으므로, strings 명령어는 그 안에서 ASCII나 유니코드 문자열을 찾아 출력한다.-n : 최소 길이 맞추기strings -n 8 program #8글자 이상 가져오기- e : 특정 인코딩 strings -e S binaryfile #UTF-16- t : 특정 오프셋 gr..
프롤로그bandit 문제풀이저번 비밀번호는 dfwvzFQi4mU0wfNbFOe9RoWskMLg7eEcuniq, sort, | 문제다음 단계로 가는 비밀번호는 data.txt 파일에 저장되어 있는데, 딱 한 번만 발생하는 유일한 라인에 저장되어 있다(?) sort파일의 내용을 정렬하는 데 사용된다. 기본적으로 sort는 텍스트 파일의 줄을 기준으로 정렬하며, 다양한 옵션을 사용하여 정렬 방식을 세부 조정할 수 있다.sort [옵션] [파일명]이렇게 사용할 수 있는데, 옵션을 좀 보자.-n : 숫자대로 정렬한다.sort numbers.txt #기본 정렬sort -n numbers.txt #숫자 정렬원래는 텍스트 기반 정렬이라서 숫자가 있을 시 애매해졌는데, 숫자 정렬만 할 거라면 -n 을 켜줘야한다. -r..