프롤로그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..
프롤로그bandit 문제풀이저번 비밀번호는 morbNTDkSW6jIlUc0ymOdMaLnOlFVAaj 였다grep, sed 문제다음 레벨로 가는 비밀번호는 data.txt에 저장되어 있는데, 비밀번호는 millionth 단어 뒤에 있습니다. grep텍스트 검색에 사용되는 명령어로, 파일이나 명령어의 출력에서 특정 패턴을 검색하고, 그 패턴이 포함된 줄을 출력한다. 정규 표현식을 사용하여 복잡한 것도 검색이 가능하다.-i : 대소문자 구분 Xgrep -i 'pattern' filename-r / -R : 하위 디렉토리 까지 검색grep -r 'pattern' /path/to/dir- l : 패턴이 포함된 파일 이름만 출력grep -l 'pattern' *- n : 해당 패턴이 포함된 줄 번호까지 출력gr..
프롤로그bandit 문제풀이저번 비밀번호는 HWasnPhtq9AVKe0dmk45nxy20cvUa6EG 이다.find, cat, /dev/null, xargs, | 문제다음 단계로 가는 비밀번호는 서버 어딘가에 저장되어 있다. 특징은 다음과 같다.- 소유자는 bandit7- 소유그룹은 bandit6- 33바이트의 크기 findfind에 관련된 정보는 저번글에 적어놨고,2024.11.10 - [bandit] - [2024/bandit] bandit level5 -> level6 Write-up level6 Write-up" data-og-description="프롤로그bandit 문제 풀이저번 비밀번호는 4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw 문제다음 레벨로 가는 비밀번호는 inher..
프롤로그bandit 문제 풀이저번 비밀번호는 4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw 문제다음 레벨로 가는 비밀번호는 inhere디렉터리 내부에 있는데, 이게 어딘가에 있다. 이것의 특징은- 사람이 읽을 수 있고-1033바이트 크기이고- 실행할 수 없다. find이전에는 file로 파일이 특징을 알아봤다면, 이번에는 find로 찾아야 한다. 왜냐? inhere가 어디있는지 모르니까, 이것의 위치를 찾든 뭐든 찾아야 하지 않겠나...그래서 파일을 찾을 때에는 find 명령어를 써야하는데find [경로] [옵션] [검색 조건] [후속 작업]그래서 만약에 어딘가에 존재한다면... 경로를 / 로 설정해야한다.옵션을 살짝 보자.-name : 대소문자를 구분해서, 검색조건에 이름에 일치하는 파..