22회 해킹캠프 후기 (feat.성실한 해커상 받은 썰)
2021. 2. 23. 13:13
ETC
안녕하세요~! 공부 블로깅 말고 이런건 처음 올려보는데 신기하네요^_^ 저는 저번 주말(2.20~2.21)에 개최한 제 22회 해킹캠프에 참가했었습니다. 코로나 때문에 오프라인이 아닌 온라인으로 진행된 점이 아쉬웠지만, 정말 유익한 시간이었어요! 이틀 동안 다양한 주제를 바탕으로 한 발표도 듣고, 주최 측에서 준비한 퀴즈와 이벤트도 참여하고, 마지막으로 제 생애 첫 CTF까지 출전하게 되었습니당!! (그리고 성실한 해커상까지 수상하게 되었어요 짝짝짝짝짝) 그럼 지금부터 제가 재밌게 들었던 발표들 위주로 짤막짤막하게 해킹캠프 후기를 남겨보도록 하겠습니다. 안소희- 악성코드로 알아보는 사이버 크라임갱(부제: 코인 떡상과 발표자의 피땀눈물) 소희님께서는 악성코드 분석에 관해 발표해주셨는데요. 크게 악성코드(m..
[Assembly] 어셈블리 구구단 출력
2021. 2. 23. 12:37
Programming Languages/Assembly
실행 환경 - cpu : intel(32bit) - 컴파일러 : nasm - 리눅스 : ubuntu 20.04 LTS 설치방법 - sudo apt-get install build-essential gcc-multiplib nasm mul-test.c #include void mul(int n) { for (int i = 1; i < = 9; i++) printf("%d * %d = %d \n", n, i, n * i); return; } int main(void) { int num_array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; for (int i = 1; i < 9; i++) mul(num_array[i]); return 0; } mul-test.asm extern pri..
[Assembly] 어셈블리 Hello world! 100번 출력
2021. 2. 23. 12:29
Programming Languages/Assembly
실행 환경 - cpu : intel(32bit) - 컴파일러 : nasm - 리눅스 : ubuntu 20.04 LTS 설치방법 - sudo apt-get install build-essential gcc-multiplib nasm 컴파일 - nasm -f elf32 파일명.asm -o --> 목적 파일을 만든다. - ld -m elf_i386 -o 파일명 파일명.o --> 실행 파일을 만든다. hello_100.c hello_100.asm hello_100.s
[Assembly] 어셈블리 Hello World 출력
2021. 2. 23. 12:19
Programming Languages/Assembly
실행 환경 - cpu : intel(32bit) - 컴파일러 : nasm - 리눅스 : ubuntu 20.04 LTS 설치방법 - sudo apt-get install build-essential gcc-multiplib nasm 컴파일 - nasm -f elf32 파일명.asm -o --> 목적 파일을 만든다. - ld -m elf_i386 -o 파일명 파일명.o --> 실행 파일을 만든다. hello.asm
[P4C] C언어 코딩 도장 : UNIT 32 ~ UNIT 33
2021. 2. 21. 22:28
Programming Languages/C
Unit 32. goto로 프로그램의 흐름을 원하는 대로 바꾸기 goto 제어문 : 프로그램을 작성하다보면 중간의 코드는 무시하고 원하는 부분으로 건너뛰어야 할 때 사용한다. 32.1 goto와 레이블 사용하기 goto는 레이블을 지정해서 사용한다. 레이블은 : (콜론)을 붙이며 레이블 이름을 짓는 규칙은 변수와 같다. - goto 레이블; - 레이블: goto에 레이블을 지정하면 중간에 있는 코드는 무시하고 해당 레이블로 즉시 이동한다. 32.2 중첩루프 빠져나오기 #include int main() { int num1 = 0; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (num1 == 20) // num1이 20이라면 goto ..
[P4C] C언어 코딩 도장 : UNIT 29 ~ UNIT 31
2021. 2. 21. 11:26
Programming Languages/C
Unit 29. do while 반복문으로 최소 한 번은 실행하기 초기식 do // ↓ 루프 본체(loop body) 및 변화식 { 반복할 코드 변화식 } while (조건식); // ↑ 루프 선언문(loop statement) 먼저 초기식의 값과는 상관 없이 do { } 부분의 코드와 변화식을 무조건 실행한다. 그 다음 조건식을 판별하여 참이면 코드를 계속 반복하고 거짓이면 반복문을 끝낸 뒤 다음 코드를 실행한다. 즉, do while은 while과 달리 코드를 최소 한 번은 실행한다. 29.1 do while 반복문 사용하기 #include int main() { int i = 0; do // 처음 한 번은 아래 코드가 실행됨 { printf("Hello, world! %d\n", i); // Hel..
[P4C] C언어 코딩 도장 : UNIT 26 ~ UNIT 28
2021. 2. 20. 22:03
Programming Languages/C
Unit 26. switch 분기문으로 다양한 조건 처리하기 switch 분기문은 형식이 균일하며 처리해야 할 조건이 많을 때 사용한다. switch (변수) { case 숫자1: 코드1 break; case 숫자2: 코드2 break; default: 코드3; break; } switch 분기문은 항상 case와 함께 사용하는데 변수의 값이 case에 지정한 값과 일치하면 해당 코드를 실행하게 된다. 그리고 아무 case에도 해당되지 않으면 default의 코드를 실행한다. -> switch 분기문은 조건이 많아도 손쉽게 처리할 수 있다. 26.1 사용자가 입력한 값에 따라 문자열 출력하기 #define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지 #i..
[P4C] C 언어 코딩 도장 : 문제 풀이3
2021. 2. 19. 18:18
Programming Languages/C
23.8 심사문제 : 비트 논리 연산자 사용하기 문제 : 표준 입력으로 두 정수(unsigned int)가 입력됩니다. 입력된 두 정수의 비트 연산 결과를 각 줄에 출력하는 프로그램을 만드세요. 정답 : #include int main(void){ unsigned int num1, num2; scanf("%d %d",&num1,&num2); printf("%u\n",num1^num2); printf("%u\n",num1|num2); printf("%u\n",num1&num2); printf("%u\n",~num1); return 0; } 23.9 심사문제 : 시프트 연산자 사용하기 문제 : 표준 입력으로 정수가 입력됩니다. 입력된 정수를 왼쪽으로 20번, 오른쪽으로 4번 시프트 연산하여 결과를 출력하는 ..