jaemin8852의 등록된 링크

 jaemin8852로 등록된 티스토리 포스트 수는 283건입니다.

[백준 BOJ] 2420 사파리월드 [내부링크]

링크 www.acmicpc.net/problem/2420 2420번: 사파리월드 첫째 줄에 두 도메인의 유명도 N과 M이 주어진다. (-2,000,000,000 ≤ N, M ≤ 2,000,000,000) www.acmicpc.net 풀이 두 유명도 N, M이 주어지고, 그 차..

[백준 BOJ] 1212 8진수 2진수 [내부링크]

링크 www.acmicpc.net/problem/1212 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 풀이 8진수를 2진수로 변환하는 코드를 작성해야 한다. 8..

[백준 BOJ] 17496 스타후르츠 [내부링크]

링크 www.acmicpc.net/problem/17496 17496번: 스타후르츠 1, 11, 21, 31, 41 일에 스타후르츠 씨앗을 심으면 됩니다. 51일에 심으면 61일에 수확이 가능한데 여름은 60일까지 이므로 61일에는 수확할 수 없습니다..

[백준 BOJ][Python] 16170 오늘의 날짜는? [내부링크]

링크 www.acmicpc.net/problem/16170 16170번: 오늘의 날짜는? 지금 시각을 UTC+0(세계 표준시)을 기준으로 나타냈을 때의 연도, 월, 일을 한 줄에 하나씩 순서대로 출력한다. www.acmicpc.net 풀이 한국은 UTC+9..

[백준 BOJ] 15894 수학은 체육과목 입니다 [내부링크]

링크 www.acmicpc.net/problem/15894 15894번: 수학은 체육과목 입니다 성원이는 수학을 정말 못 하는 고등학생이다. 수학을 못하는 대신 근성과 팔 힘이 뛰어난 성원이는 수학 시험에서 수학 지식을 사용하지 않..

[백준 BOJ][Python] 15727 조별과제를 하려는데 조장이 사라졌다 [내부링크]

링크 www.acmicpc.net/problem/15727 15727번: 조별과제를 하려는데 조장이 사라졌다 3학년 1학기를 재학 중인 성우는 ‘빨간눈 초파리의 뒷다리 털의 개수와 파인애플 껍질의 이해’라는 과목을 수강 중이다. 기..

[백준 BOJ] 14652 나는 행복합니다~ [내부링크]

링크 www.acmicpc.net/problem/14652 14652번: 나는 행복합니다~ 첫째 줄에 관중석의 크기를 나타내는 N, M과 잃어버린 관중석 번호를 나타내는 K가 주어진다. (1 <= N, M <= 30,000, 0 <= K <= N*M-1) www.acmicp..

[백준 BOJ][Python] 8437 Julka [내부링크]

링크 www.acmicpc.net/problem/8437 8437번: Julka Wejście składa się z dwóch wierszy. Pierwszy wiersz zawiera liczbę wszystkich jabłek posiadanych przez dziewczynki, natomiast drugi - liczbę m..

[백준 BOJ] 8370 Plane [내부링크]

링크 www.acmicpc.net/problem/8370 8370번: Plane In the first and only line of the standard input there are four integers n1, k1, n2 and k2 (1 ≤ n1, k1, n2, k2 ≤ 1 000), separated by single..

[백준 BOJ] 6749 Next in line [내부링크]

링크 www.acmicpc.net/problem/6749 6749번: Next in line You know a family with three children. Their ages form an arithmetic sequence: the difference in ages between the middle child and youngest chi..

[백준 BOJ] 2475 검증수 [내부링크]

링크 www.acmicpc.net/problem/2475 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가..

[백준 BOJ][Python] 2338 긴자리 계산 [내부링크]

링크 www.acmicpc.net/problem/2338 2338번: 긴자리 계산 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출..

[백준 BOJ] 1550 16진수 [내부링크]

링크 www.acmicpc.net/problem/1550 1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정..

[백준 BOJ][Python] 1271 엄청난 부자2 [내부링크]

링크 www.acmicpc.net/problem/1271 1271번: 엄청난 부자2 첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수) www.acmicpc.net..

[백준 BOJ][DP] 2133 타일 채우기 [내부링크]

링크 www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 풀이 3XN 크기의 벽을 2X1, 1X2 크기의 타일로 채우..

[백준 BOJ] 14681 사분면 고르기 [내부링크]

링크 https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 풀이 x, y의 좌표를 받아서 어느 사분면에 속하는지 알아내는..

[백준 BOJ] 1011 Fly me to the Alpha Centauri [내부링크]

링크 https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에..

[백준 BOJ][DP] 2775 부녀회장이 될테야 [내부링크]

링크 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (..

[백준 BOJ] 2869 달팽이는 올라가고 싶다 [내부링크]

링크 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만,..

[백준 BOJ] 2292 벌집 [내부링크]

링크 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를..

[백준 BOJ] 2839 설탕 배달 [내부링크]

링크 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만..

[백준 BOJ] 4673 셀프 넘버 [내부링크]

링크 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자...

[백준 BOJ] 1065 한수 [내부링크]

링크 https://www.acmicpc.net/problem/1065 풀이 N이 1,000보다 작거나 같은 자연수이기 때문에 1,2,3자리수만 고려하면 됩니다. 1,000은 한수가 아니기 때문이죠. 여기서 1자리수 2자리수는 모두 한수이기 때문..

[교내 대회] 2019 1학기 교과 우수상 (자료구조, 독서와 문법, 확률과 통계) [내부링크]

우와~ 국어랑 수학을 받게 되어 기쁘네요! 마지막 교과 우수상이라 그런지 조금 아쉽긴 하지만 그래도 좋네요

[백준 BOJ] 3047 ABC [내부링크]

링크 https://www.acmicpc.net/problem/3047 풀이 A < B < C 라는 대소관계를 정해놓고 입력 받은 세 수를 A, B, C의 순서에 맞게 출력하는 문제입니다. 예제를 보면 ABC이기 때문에 1 3 5의 순서로 출력된 것을..

[백준 BOJ] 5585 거스름돈 [내부링크]

링크 https://www.acmicpc.net/problem/5585 풀이 큰 액수부터 지불할 수 있는지 검사하면서 count 해주시면 됩니다. 코드 //5585_거스름돈 #include int n, cnt, i, arr[6] = {500,100,50,10,5,1}; int main() {..

[백준 BOJ] 11399 ATM [내부링크]

링크 https://www.acmicpc.net/problem/11399 풀이 보시면 한 ATM 밖에 이용하지 못하는 상황입니다. 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 찾는 문제입니다. 각 사람이 돈을 인출하는데 걸리..

[백준 BOJ] 16433 주디와 당근농장 [내부링크]

링크 https://www.acmicpc.net/problem/16433 풀이 한 위치에 당근이 심어져 있고, 당근이 심겨 있는 땅의 변을 공유하는 칸들에는 당근을 심을 수 없습니다. 이때 최대한 많은 당근을 심었을 때 밭의 모양을 출..

[백준 BOJ] 10988 팰린드롬인지 확인하기 [내부링크]

링크 https://www.acmicpc.net/problem/10988 풀이 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말합니다. 저는 앞에서 뒤로 이동하는 커서와 뒤에서 앞으로 이동하는 커서가 가리키고 있는 문..

[백준 BOJ] 5598 카이사르 암호 [내부링크]

링크 https://www.acmicpc.net/problem/5598 풀이 카이사르 단어를 원래 단어로 고쳐 출력하는 문제입니다. 저는 ABC는 XYZ로(+23) 나머지는 -3해서 출력하는 방식을 사용했습니다. 하지만 파이썬에는 translate..

[백준 BOJ] 2231 분해합 [내부링크]

링크 https://www.acmicpc.net/problem/2231 풀이 가장 작은 생성자를 출력하는 문제이고 없는 경우에는 0을 출력해야 합니다. N이 1,000,000까지입니다. i를 0부터 증가시켜주면서 생성자를 찾으면 출력하고 빠..

[백준 BOJ] 1316 그룹 단어 체커 [내부링크]

링크 https://www.acmicpc.net/problem/1316 풀이 같은 문자가 한 단어 내에서 떨어져서 존재하면 안 됩니다. 쭉 훑으면서 이미 나왔던 문자인지 체크하는 배열을 만들어 줍니다. 그 배열을 arr이라고 한다면 !ar..

[백준 BOJ] 3052 나머지 [내부링크]

링크 https://www.acmicpc.net/problem/3052 풀이 10개의 숫자가 입력되고 42로 나누었을 때, 서로 다른 나머지의 개수를 출력하는 문제입니다. 입력 받았을 때 arr[입력된 숫자 % 42]++; 이렇게 해주면 arr에 카..

[백준 BOJ] 10757 큰 수 A+B [내부링크]

링크 https://www.acmicpc.net/problem/10757 풀이 숫자를 자릿수마다 배열에 담습니다. 반복문을 이용해서 한 자리씩 계산해줍니다. 여기서 carry bit를 만들어서 받아올림을 구현해줍니다. 마지막에 출력해줍니..

[백준 BOJ] 14490 백대열 [내부링크]

링크 https://www.acmicpc.net/problem/14490 풀이 동아리 선배를 문제에서 만날 수 있어서 좋았던 문제입니다. n:m 받는 방법 -> scanf("%d:%d", &n, &m); gcd 함수를 정의해서 최대공약수를 구해줍니다. (유클..

[백준 BOJ][deque] 2164 카드2 [내부링크]

링크 https://www.acmicpc.net/problem/2164 풀이 이 문제를 보고 자료구조 deque가 생각났습니다. 문제 그대로 시뮬레이션 해주면 됩니다. 코드 //2164_카드2 #include #include using namespace std; deque d;..

[백준 BOJ] 2312 수 복원하기 [내부링크]

링크 https://www.acmicpc.net/problem/2312 풀이 2~100,000의 수를 소인수분해 하는 프로그램입니다. 저는 2~100,000까지의 소수를 구하고 그 소수들로 n을 1이 될 때까지 나누어 소인수 분해를 했습니다. 코드..

[백준 BOJ] 1074 Z [내부링크]

링크 https://www.acmicpc.net/problem/1074 풀이 Z가 많이 그려져 있습니다. 이렇게 $2^{n}$를 기준으로 4등분 해서 (r,c)가 어디 있는지 알아냅니다. 분할 정복 알고리즘으로 크게 4등분으로 쪼개고 더 잘게..

[백준 BOJ] 1436 영화감독 숌 [내부링크]

링크 https://www.acmicpc.net/problem/1436 풀이 6이 연속으로 3번 이상 들어간 수를 찾는 문제입니다. 1부터 시작해서 증가시키며 종말의 숫자를 찾으면 됩니다. 종말의 숫자를 찾는 방법은 다음과 같습니다...

[백준 BOJ] 1018 체스판 다시 칠하기 [내부링크]

링크 https://www.acmicpc.net/problem/1018 풀이 8*8짜리 부분을 선택하고 체스판으로 만들면 되는 문제입니다. n, m은 50이하이고 자른 체스판은 8*8이기 때문에 모든 수를 고려해도 50*50*8*8로 시간 초과가..

[백준 BOJ] 11365 !밀비 급일 [내부링크]

링크 https://www.acmicpc.net/problem/11365 풀이 string을 받고 뒤집어 출력하면 됩니다. algorithm 헤더에 있는 reverse() 함수를 사용해서 문제를 해결했습니다. 코드 //11365_!밀비 급일 #include #include..

[백준 BOJ] 1476 날짜 계산 [내부링크]

링크 https://www.acmicpc.net/problem/1476 풀이 우리가 알고 있는 연도를 y년이라고 합니다. y는 15n + E, 28m + S, 19l + M으로 나타낼 수 있습니다. (n, m, l은 0 이상의 정수) 따라서 y에서 E를 뺀 것이 15..

[교내 대회] 2019 모의 해킹 방어 대회 은상 [내부링크]

팀원들 도움을 많이 받아서 전년도와 같이 모의 해킹 방어 대회에서 은상을 수상할 수 있었습니다! 감사합니다!!

[교내 대회] 2018 2학기 교과 우수상 (중국어1, 데이터베이스-SQL, 응용프로그래밍, 마케팅영어) [내부링크]

과목 우수상을 4과목 수상하게 되어 기쁘네요 하지만 일반 교과가 부족한 게 조금 아쉬움으로 남습니다ㅠㅠ 감사합니다!!

[교내 대회] 2018 정보보호 경시대회 (고등해커) 동상 [내부링크]

정보보호과로 바뀐만큼 정보보호 관련 대회가 1년에 2개 있는 게 바람직합니다. 너무 좋아요ㅎㅎ!

DFS 알고리즘, flood fill을 이용한 그림판 채우기 구현 [내부링크]

수행평가로 만든 그림판에 채우기 기능을 구현하고 싶었습니다. 주요 소스코드는 아래와 같습니다. flood fill로 왼쪽, 오른쪽, 위쪽, 아래쪽 모두 탐색하면서 색을 칠해나갑니다. paint 함수는 이렇게 정의되어..

[백준 BOJ] 5532 방학 숙제 [내부링크]

5532_방학 숙제 링크 https://www.acmicpc.net/problem/5532 풀이 방학 기간 - max(수학 푸는 데 걸리는 시간, 국어 푸는 데 걸리는 시간) OO 푸는 데 걸리는 시간 = 총량 / 하루 최대량 + (총량 % 하루 최대량 !..

[백준 BOJ][세그먼트 트리] 2336 굉장한 학생 [내부링크]

2336_굉장한 학생 링크 https://www.acmicpc.net/problem/2336 풀이 시험을 3번 치룹니다. 어떤 학생보다 대단한 학생이 없어야 그 학생이 굉장한 학생입니다. 학생은 1~N 순서대로 번호가 부여되기 때문에, 첫..

사이버 가디언즈 리그 워크숍 [내부링크]

사이버 가디언즈 리그 워크숍에 다녀왔습니다! 호텔 뷔페식 선린이 1등해서 자랑스럽고 다른 참가자들도 수고하셨습니다

[백준 BOJ] 16435 스네이크 버드 [내부링크]

16435_스네이크버드 링크 https://www.acmicpc.net/problem/16435 풀이 과일의 개수가 별로 안 되기 때문에 while + for로 먹을 수 있는 과일을 찾고, 다 탐색했을 때도 길이가 변하지 않는다면 break 하면 됩니..

[백준 BOJ] 16431 베시와 데이지 [내부링크]

16431_베시와 데이지 링크 https://www.acmicpc.net/problem/16431 풀이 베시는 대각선으로도 이동할 수 있습니다. 베시가 존과 가로로 떨어져 있는 만큼을 a, 세로로 떨어져 있는 만큼을 b라고 했을 때, 존이 이..

[백준 BOJ][DP] 16507 어두운 건 무서워 [내부링크]

16507_어두운 건 무서워 링크 https://www.acmicpc.net/problem/16507 풀이 http://jaemin8852.tistory.com/194  -  2차원 배열의 합 이 문제와 유사한 방법으로 풀 수 있습니다. (1,1)부터 (n,m)까지의 합을..

[백준 BOJ] 16504 종이접기 [내부링크]

16504_종이접기 링크 https://www.acmicpc.net/problem/16504 풀이 종이를 계속 접어서 겹치는 부분을 더해서 마지막 남는 수를 출력하는 문제입니다. 조건을 보시면 2의 m승으로 입력이 주어집니다. 반으로 계..

[백준 BOJ] 1138 한 줄로 서기 [내부링크]

1138_한 줄로 서기 링크 https://www.acmicpc.net/problem/1138 풀이 자기가 줄을 서는 사람의 입장이 되봅시다. 작은 사람부터 세운다고 생각하면 그 이후에 들어오는 사람들은 다 현재 사람보다 큰 사람이기 때..

[백준 BOJ] 1940 주몽 [내부링크]

1940_주몽 링크 https://www.acmicpc.net/problem/1940 풀이 재료들은 각각 고유한 번호를 가지고 있습니다. 시간 제한이 2초고 N이 15000이니 N^2으로 풀 수 있습니다. 이중 포문의 범위를 잘 지정해, 더해서 m..

[백준 BOJ] 2153 소수 단어 [내부링크]

2153_소수 단어 링크 https://www.acmicpc.net/problem/2153 풀이 소문자인지 대문자인지 철자별로 판별 후, 소문자면 (‘a’ – 1)을 빼고, 대문자면 (‘A’ – 27)을 빼면 됩니다. 그렇게 합을 구한 후, 소수..

[백준 BOJ] 1267 핸드폰 요금 [내부링크]

1267_핸드폰 요금 링크 https://www.acmicpc.net/problem/1267 풀이 영식은 t만큼 통화했을 때 10*(t/30+1)만큼 청구됩니다. 민식은 t만큼 통화했을 때 15*(t/60+1)만큼 청구됩니다. 이를 이용해서 출력 형식에..

[백준 BOJ] 1712 손익분기점 [내부링크]

1712_손익분기점 링크 https://www.acmicpc.net/problem/1712 풀이 손익분기점을 찾으려면 다음과 같은 식을 세울 수 있습니다. a + b*ans < c*ans 정리해보면 a < (c-b)*ans 그럼 a/(c-b) < ans가 나오는데요. a..

[백준 BOJ] 2903 중앙 이동 알고리즘 [내부링크]

2903_중앙 이동 알고리즘 링크 https://www.acmicpc.net/problem/2903 풀이 너무 깊게 생각하지 말고 점이 일정한 간격을 두고 채워져 있기 때문에 점을 이용해서 면적을 구한다고 생각해봅시다. 사각형들은 정사..

[백준 BOJ] 1919 애너그램 만들기 [내부링크]

1919_애너그램 만들기 링크 https://www.acmicpc.net/problem/1919 풀이 애너그램은 철자를 굉장히 중요하게 생각합니다. 그렇기 때문에 영단어를 철자로 나누어 기록합니다. 그 후, 소문자만 들어오기 때문에 a~..

[백준 BOJ][stack] 3015 오아시스 재결합 [내부링크]

3015_오아시스 재결합 링크 https://www.acmicpc.net/problem/3015 풀이 우선 스택을 사용해서 사람들을 내림차순으로 나열하고(같은 수도 포함), 이전보다 더 큰 수가 들어오면 스택을 지워나가며 ans를 구합니..

[백준 BOJ][stack] 6549 히스토그램에서 가장 큰 직사각형 [내부링크]

6549_히스토그램에서 가장 큰 직사각형 링크 https://www.acmicpc.net/problem/6549 풀이 이 문제는 스택을 이용해서 풀 수 있는 문제입니다. 각 칸에서 왼쪽과 오른쪽으로 각각 어느 칸까지 뻗어 나갈 수 있는지..

[백준 BOJ][stack] 2493 탑 [내부링크]

2493_탑 링크 https://www.acmicpc.net/problem/2493 풀이 각 레이저가 왼쪽으로 얼마나 뻗을 수 있는지 체크하기 위해서 스택을 사용해 풀 수 있습니다. 이 문제에서는 내림차순 스택을 사용하면 되는데요. 시작..

[백준 BOJ] 16204 카드 뽑기 [내부링크]

16204_카드 뽑기 링크 https://www.acmicpc.net/problem/16204 풀이 O가 적혀 있는 카드가 M개, 내가 O를 적은 카드가 K개라고 한다면, K가 M보다 많을 때 M개 맞힐 수 있고, 그렇지 않을 때는 K개 맞힐 수 있습..

[백준 BOJ] 2355 시그마 [내부링크]

2355_시그마 링크 https://www.acmicpc.net/problem/2355 풀이 처음에 부호 고려해서 상쇄되는 부분 잘라내고 했는데, 그냥 long long으로 두고 n(a+l)/2로도 풀리는 문제였습니다. 첫째 항과 마지막 항은 대소비..

[백준 BOJ] 1297 TV 크기 [내부링크]

1297_TV 크기 링크 https://www.acmicpc.net/problem/1297 풀이 너비 높이 비율을 이용해서 피타고라스로 대각선 비율 구하고, 대각선 비율과 실제 대각선 길이를 비교하여 너비와 높이를 찾아내면 됩니다. 코드..

[백준 BOJ] 9506 약수들의 합 [내부링크]

9506_약수들의 합 링크 https://www.acmicpc.net/problem/9506 풀이 자신을 제외한 약수를 반복문으로 구한 뒤 더해서 완전수이면 약수들의 합으로 나타내어 출력합니다. 완전수인지 판별, 출력 이렇게 반복문 두..

[백준 BOJ] 1629 곱셈 [내부링크]

1629_곱셈 링크 https://www.acmicpc.net/problem/1629 풀이 b가 21억까지기 때문에 곱하고 나머지 구하기를 반복하다 보면 시간을 초과하게 됩니다. 그래서 지수법칙을 이용하기로 했습니다. 제곱한 걸 다시 제..

[백준 BOJ] 1964 오각형, 오각형, 오각형... [내부링크]

1964_오각형, 오각형, 오각형… 링크 https://www.acmicpc.net/problem/1964 풀이 단계마다 더 추가되는 점들에 집중하면 됩니다. 우선 1단계에서 5개가 추가됩니다. 그리고 그 단계에서는 동그라미로 표현한 꼭..

[백준 BOJ] 2864 5와 6의 차이 [내부링크]

2864_5와 6의 차이 링크 https://www.acmicpc.net/problem/2864 풀이 모든 6을 5로 헷갈렸을 때 최솟값을, 모든 5를 6으로 헷갈렸을 때 최댓값을 갖습니다. A와 B가 양수이기 때문이죠. 문자열 변환만 잘 처리해..

STAC 스택 2018 생활부문 특별상 - 모꼬지 [내부링크]

이 대회를 준비하면서 귀한 경험들을 하였습니다. 수고한 팀원들에게 고맙다는 말을 전해주고 싶습니다!

[백준 BOJ] 1100 하얀 칸 [내부링크]

1100_하얀 칸 링크 https://www.acmicpc.net/problem/1100 풀이 8*8의 체스판을 입력 받으면서 i%2가 0일 때, j%2도 0이면 하얀 칸, i%2가 1일 때, j%2도 1이면 하얀 칸이라는 것을 이용해서 풀면 됩니다. 코드 1..

MYSQL 정의어(DDL), 조작어(DML), 제어어(DCL) 조사 [내부링크]

웹프_정의어, 조작어, 제어어 조사 정의어(DDL) -      정의(뜻, 목적) SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용한다. 주로 데이터베이스 관리자나 데이터베이스 설계자가..

[백준 BOJ] 1076 저항 [내부링크]

1076_저항 링크 https://www.acmicpc.net/problem/1076 풀이 세 색을 각각의 값으로 변환해줍니다. 그리고 앞의 두 값을 first*10 + second 한 후 10^third를 곱해주면 됩니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12..

[백준 BOJ] 1075 나누기 [내부링크]

1075_나누기 링크 https://www.acmicpc.net/problem/1075 풀이 뒤 두 자리를 적절히 바꿔서 나누어 떨어지게 만든다. 가능한 것이 여러 가지면, 뒤 두자리를 가능하면 작게 만드려고 한다. (가능한 경우가 없을..

[백준 BOJ][dfs] 1012 유기농 배추 [내부링크]

1012_유기농 배추 링크 https://www.acmicpc.net/problem/1012 풀이 문제는 최소의 배추흰지렁이 마리 수를 요구합니다. 배추흰지렁이는 상하좌우 네 방향으로만 생각해야하기 때문에 dx배열과 dy배열을 만들어줍..

[백준 BOJ] 11497 통나무 건너뛰기 [내부링크]

11497_통나무 건너뛰기 링크 https://www.acmicpc.net/problem/11497 풀이 통나무 건너뛰기의 최소 난이도를 구하는 문제입니다. 난이도는 인접한 통나무의 높이차의 최댓값으로 결정됩니다. 그렇다면 어떻게 통..

[백준 BOJ] 15553 난로 [내부링크]

15553_난로 링크 https://www.acmicpc.net/problem/15553 풀이 친구들은 집에 1초씩 있다가 나갑니다. 친구들이 오고 가고 하는 동안 난로를 끄고 켜고 하는 것을 다 고려하긴 좀 힘듭니다. 그렇다면 어떻게 쉽게..

[백준 BOJ] 1057 토너먼트 [내부링크]

1057_토너먼트 링크 https://www.acmicpc.net/problem/1057 풀이 토너먼트이기 때문에 8과 9를 2로 나누면 동일한 4를 갖는 성질을 이용해서 풀 수 있습니다. 만약 1, 2, 3  3명이 경기를 할 때, n인 3+1을 2로..

[백준 BOJ][그리디] 1049 기타줄 [내부링크]

1049_기타줄 링크 https://www.acmicpc.net/problem/1049 풀이 브랜드마다 6개 세트의 가격, 낱개의 가격이 주어지고 최소 가격으로 구매할 방법을 찾는 문제입니다. 그렇다면 6개 세트의 가격, 낱개의 가격이 모..

[백준 BOJ] 1032 명령 프롬프트 [내부링크]

1032_명령 프롬프트 링크 https://www.acmicpc.net/problem/1032 풀이 우선 예제를 보면 문제를 더 쉽게 이해할 수 있습니다. 최소한의 '?'를 사용해서 나타내야 합니다. 그러면 모든 문장의 i번째 문자가 다 같..

[백준 BOJ] 1026 보물 [내부링크]

1026_보물 링크 https://www.acmicpc.net/problem/1026 풀이 배열의 원소의 곱의 합의 최솟값을 구해야 합니다. 그렇다면 큰 수는 작은 수와 곱해서 더하는 방식으로 구현하면 됩니다. B에 있는 수는 재배열이 안..

[백준 BOJ] 1009 분산처리 [내부링크]

1009_분산처리 링크 https://www.acmicpc.net/problem/1009 풀이 문제를 읽어보면 수의 마지막 자리만 알아내면 됩니다. 항상 a^b로 주어지니 b를 1씩 줄이면서 a를 곱하고 10으로 나눈 나머지를 구하면 됩니다...

[백준 BOJ] 1002 터렛 [내부링크]

1002_터렛 링크 https://www.acmicpc.net/problem/1002 풀이 이 문제는 GPS 원리를 이용한 문제입니다. 2차원 평면이기 때문에 원래 3개의 터렛이 존재한다면 위치를 구할 수 있겠지만, 2개의 터렛만 있습니다...

[서버구축 및 운영] 2018년도 2학기 중간고사 Windows 운영체제의 역사 [내부링크]

서구 교과서 내용 교과서(52p~56p) MS-DOS/Windows 9.X 기반 1.     Windows 1.0 1985년에 발표됨. MS-DOS 명령을 입력하는 대신 화면 또는 창에서 마우스만 이용하여 원하는 작업을 클릭하기만 하면 됨. 드롭..

[네트워크 보안] 2018년도 2학기 중간고사 iptables 정리 [내부링크]

1. iptables 테이블 종류와 각 역할. - 테이블은 패킷 필터링이나 네트워크 주소 변환과 같은 iptables에서 제공하는 기능의 큰 범주를 기술하는 말로서 “iptables의 구성 요소 정도의 의미로 이해하면 된다.” -..

싱글톤 getInstance() null 반환할 때 [내부링크]

이렇게 해결할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 public class ClassName {         private static ClassName instance;     private ClassName () {}         public static Clas..

모꼬지: 남북을 하나로 이어줄 소통의 공간 [내부링크]

https://play.google.com/store/apps/details?id=com.company.stack.mokkozi 우리의 소원은 통일, 꿈에도 소원은 통일. 말로만 들어도 가슴이 벅차오르는 단어, 통일! 하지만 이렇게 가슴 설레는 통일을 당장 맞이..

[교내 대회] 2018 선린 정보올림피아드 동상 [내부링크]

조금만 더 생각했으면 은상 탈 수 있었는데 아쉽습니다ㅜㅜ 그래도 이렇게 상을 받아서 너무 기분이 좋네요! (한국 아시안게임 축구 금메달!)

[백준 BOJ][DP] 2167 2차원 배열의 합 [내부링크]

2167_2차원 배열의 합 링크 https://www.acmicpc.net/problem/2167 풀이 DP[i][j] (1 <= i, j <= 300)을 구간 [1, 1] ~ [i, j]의 합이라고 정의합니다. DP[1][4]입니다. DP[3][2]입니다. 그렇다면 DP[i][j]를..

[교내 대회] 2018 선린 알고리즘 페스티벌 동상 [내부링크]

작년에 같은 팀으로 힘겹게 본선 올라와서 6등까지 상인데 7등을 했었다. 그 때는 정말 아쉬웠다ㅜㅜ 올해는 이렇게 상을 탈 수 있어서 만족스럽다. (물론 조금 더 집중했다면 은상까지 노려볼 수 있지 않았나 싶..

[백준 BOJ][DP] 9465 스티커 [내부링크]

9465_스티커 링크 https://www.acmicpc.net/problem/9465 풀이 만약 별에서 시작했다면 1이나 2를 갈 수 있습니다. 하지만 2는 1을 거쳤다 갈 수 있기 때문에 1로 가야합니다. 이 상황도 마찬가지로 1로 가는..

[백준 BOJ][DP] 1149 RGB거리 [내부링크]

1149_RGB거리 링크 https://www.acmicpc.net/problem/1149 풀이 집 i의 이웃은 집 i-1과 i+1이고, 이웃은 같은 색으로 칠할 수 없습니다. DP[i][j] (집 i를 j색으로 칠했을 때까지의 최소 비용, j = 0 R, 1 G, 2..

[백준 BOJ][map] 1764 듣보잡 [내부링크]

1764_듣보잡 링크 https://www.acmicpc.net/problem/1764 풀이 STL의 map을 사용하면 python의 dictionary처럼 사용할 수 있습니다. 듣보잡 문제처럼 문자열을 인덱스로 사용해야 할 때, 아주 유용하게 사용할 수..

[백준 BOJ][queue] 2075 N번째 큰 수 [내부링크]

2075_N번째 큰 수 링크 https://www.acmicpc.net/problem/2075 풀이 오름차순 priority_queue를 이용해서 정렬해주면 됩니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28..

[백준 BOJ][stack] 10799 쇠막대기 [내부링크]

10799_쇠막대기 링크 https://www.acmicpc.net/problem/10799 풀이 이 문제는 Stack을 사용해서 풀 수 있습니다. 일단 쇠막대기의 오른쪽 끝과 레이저를 구분해서 두 가지의 경우로 나누어 풀면 됩니다. 여는 괄..

[백준 BOJ][stack] 9012 괄호 [내부링크]

9012_괄호 링크 https://www.acmicpc.net/problem/9012 풀이 괄호 문제는 Stack으로 구현할 수 있습니다. 여는 괄호를 push, 닫는 괄호를 pop이라고 생각해줍니다. pop을 하기 전에 empty 체크를 해서 비어 있는..

[백준 BOJ][queue] 10845 큐 [내부링크]

10845_큐 링크 https://www.acmicpc.net/problem/10845 풀이 하나하나 사용해주면 됩니다. 코드 주석으로 설명하겠습니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29..

[백준 BOJ][stack] 10828 스택 [내부링크]

10828_스택 링크 https://www.acmicpc.net/problem/10828 풀이 기능 하나하나 구현해주면 됩니다. 설명은 코드 주석에 있습니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27..

[LeagueOfGuardians 2] Return to Life [내부링크]

[LeagueOfGuardians 2] Return to Life 64bit, No canary, NX enabled puts로 libc_base leak 후 one_shot gadget으로 돌리면 됩니다. leak 하고 나면 chaning이 끝나니 main으로 다시 돌아와서 exploit 해야합..

[LeagueOfGuardians 2] register_you [내부링크]

[LeagueOfGuardians 2] register_you 바이너리는 64bit고 NX가 걸려있습니다. v6에 malloc으로 동적 할당을 하고 v6 + 3 (v6은 *형이고 64bit이기 때문에 +3은 +24임)에 hello 함수를 넣습니다. 즉, v6 + 3은 함..

[LeagueOfGuardians 2] EnteredFLAG [내부링크]

[LeagueOfGuardians 2] EnteredFLAG 64bit 바이너리입니다. 입력을 받고 아무 출력을 하지 않고 꺼집니다. 사실 이 문제는 팀원들이 “angr 문제다”라고 하자마자 잡은 문제입니다. 어제 이 대회를 준비하면서..

[LeagueOfGuardians 2] FOR [내부링크]

[LeagueOfGuardians 2] FOR 바이너리는 32bit이고 NX가 걸려있습니다. main은 간단합니다. WriteReview 함수에 취약점이 있을 것 같네요. BOF 취약점이 발생합니다. s에 0x6C(108) + 4(SFP)만큼 dummy를 넣어..

[백준 BOJ][sort] 11651 좌표 정렬하기 2 [내부링크]

11651_좌표 정렬하기 2 링크 https://www.acmicpc.net/problem/11651 풀이 좌표를 먼저 y 좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순으로 정렬하는 문제입니다. 우선 좌표를 표현하기 좋은 자..

[백준 BOJ][sort] 11650 좌표 정렬하기 [내부링크]

11650_좌표 정렬하기 링크 https://www.acmicpc.net/problem/11650 풀이 좌표를 먼저 x 좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순으로 정렬하는 문제입니다. 우선 좌표를 표현하기 좋은 자료..

[백준 BOJ][sort] 1181 단어 정렬 [내부링크]

1181_단어 정렬 링크 https://www.acmicpc.net/problem/1181 풀이 sort() 함수의 세 번째 인자에 들어갈 compare 함수의 정의가 필요합니다. 첫 번째 조건은 길이가 짧은 것부터, 이 조건은 compare 함수의 인자..

[백준 BOJ][sort] 11931 수 정렬하기 4 [내부링크]

11931_수 정렬하기 4 링크 https://www.acmicpc.net/problem/11931 풀이 수를 내림차순으로 정렬해야 합니다. sort(arr, arr+n) -> 오름차순 정렬. 3번째 인자에 비교 함수를 넣어줘야 합니다. functional 헤더를..

[백준 BOJ][sort] 10989 수 정렬하기 3 [내부링크]

10989_수 정렬하기 3 링크 https://www.acmicpc.net/problem/10989 풀이 오름차순 정렬이지만 N의 범위가 10,000,000입니다. 그렇다면 배열에 담으면 메모리 초과가 나겠네요. 그래서 뒤의 조건인 ‘이 수는 10,0..

[백준 BOJ][sort] 2750 수 정렬하기 [내부링크]

2750_수 정렬하기 링크 https://www.acmicpc.net/problem/2750 풀이 수를 오름차순으로 정렬하면 됩니다. N은 1 <= N <= 1000이고, STL sort를 이용해서 정렬한 후 출력하면 됩니다. 코드 1 2 3 4 5 6 7 8 9 10 1..

[백준 BOJ][DP] 9251 LCS [내부링크]

9251_LCS 링크 https://www.acmicpc.net/problem/9251 풀이 처음에 편의를 위해서 0행과 0열을 0으로 세팅해줍니다. DP[i][j]를 LCS(i까지의 string2, j까지의 string1)라고 정의합시다. LCS로 비교하는 string..

[교내 대회] 2018 모의 해킹 방어 대회 은상 [내부링크]

2018 선린인터넷 고등학교 모의해킹 방어대회에서 2위를 하여 은상을 받았습니다. 처음으로 동, 장려상이 아닌 은상을 받게 되어 기쁩니다!!

[백준 BOJ][DP] 2156 포도주 시식 [내부링크]

2156_포도주 시식 링크 https://www.acmicpc.net/problem/2156 풀이1 A[i]를 i번째 포도주의 양, DP[N][L]을 N번째 마신 포도주의 양, 연속 L번째라고 정의하겠습니다. 우선 i번째에 0번 연속으로 먹는다(이번에..

[백준 BOJ][DP] 1463 1로 만들기 [내부링크]

1463_1로 만들기 링크 https://www.acmicpc.net/problem/1463 풀이 우선 DP[N]을 정수 N을 1로 만드는 데 필요한 최소 연산 횟수라고 정의합시다. N은 N-1에서 1을 더해 만들 수 있고, N/2에서 2를 곱해 만들 수..

[Codegate 2016] watermelon [내부링크]

[Codegate 2016] watermelon 32bit 바이너리이고, Canary와 NX가 걸려있습니다. 바이너리를 실행하면 우선 이름을 입력 받습니다. 그 후 옵션을 입력 받네요. 이름을 scanf %s 입력 제한 없이 bss 영역에 받고..

[백준 BOJ][DP] 11052 붕어빵 판매하기 [내부링크]

11052_붕어빵 판매하기 링크 https://www.acmicpc.net/problem/11052 풀이 붕어빵을 N개 팔아서 얻을 수 있는 최대 이익을 DP[N]이라고 정의하고, 붕어빵 N개 팔 때의 가격을 P[N]이라고 정의하겠습니다. 그리고..

[백준 BOJ][DP] 11057 오르막 수 [내부링크]

오르막 수는 계단 수와 유사합니다. 그 다음 수를 가기 위한 조건이 있기 때문에 마지막 자리를 저장해줘야 합니다. DP[N][10] 이렇게 선언해주면 0~9의 마지막 숫자를 저장해 줄 수 있습니다. 그리고 0으로 시작..

[백준 BOJ][DP] 1912 연속합 [내부링크]

1912_연속합 링크 https://www.acmicpc.net/problem/1912 풀이 간단하게 풀 수 있는 문제입니다. 우선 가장 큰 값을 구해야 하기 때문에 max를 선언합니다. 연속합의 최댓값의 최솟값(-1000)-1로 초기화 합니다...

[백준 BOJ][DP] 2193 이친수 [내부링크]

2193_이친수 링크 https://www.acmicpc.net/problem/2193 풀이 조건을 보면 0으로 시작하지 않고, 1이 연속으로 올 수 없습니다. 그럼 마지막 자리(0, 1)를 담을 수 있는 DP[N][2]를 만든다고 가정합시다. N이 1..

[백준 BOJ][DP] 9461 파도반 수열 [내부링크]

9461_파도반 수열 링크 https://www.acmicpc.net/problem/9461 풀이 그림으로 설명하겠습니다. P1 = 1, P2 = 1, P3 = 1, P4 = 2, P5 = 2, P6 = 3, P7 = 4, P8 = 5, P9 = 7, P10 = 9 빨간색 3은 P6이고 구성은 P5..

[백준 BOJ][DP] 2294 동전 2 [내부링크]

2294_동전 2 링크 https://www.acmicpc.net/problem/2294 풀이 위 문제의 예제로 어떻게 풀어낼 수 있을 지 생각해 봅시다. 일단 0을 제외한 모든 배열의 인덱스를 10001로 초기화 해야합니다. 왜냐하면 최솟값을..

[백준 BOJ][DP] 2293 동전 1 [내부링크]

2293_동전 1 링크 https://www.acmicpc.net/problem/2293 풀이 일단 k원을 만들 수 있는 경우의 수를 담을 배열 DP[10001]과 가치를 가진 동전을 담을 배열 coin[101]을 만들어 줍니다. 그리고 DP[0]은 동전을 가..

[백준 BOJ][DP] 10844 쉬운 계단 수 [내부링크]

10844_쉬운 계단 수 링크 https://www.acmicpc.net/problem/10844 풀이 잠깐 생각해보면, n-1까지의 계단 수에 어떤 걸 더해서 n까지의 계단 수의 경우의 수를 구할 수 있을 것 같지만 조건이 부족합니다. 계단..

[백준 BOJ][DP] 1932 정수 삼각형 [내부링크]

1932_정수 삼각형 링크 https://www.acmicpc.net/problem/1932 풀이 우선 어떤 정수로 올 수 있는 방법을 알아봅시다. 양 끝 대각선에 있는 정수로 올 수 있는 방법은 단 한 가지입니다. 이렇게 말이죠. 그럼 양..

[백준 BOJ][DP] 9095 1, 2, 3 더하기 [내부링크]

9095_1, 2, 3 더하기 링크 https://www.acmicpc.net/problem/9095 풀이 정수 n을 1, 2, 3의 조합으로 나타내는 방법을 찾아야 합니다. 그 방법은 n-1까지의 조합 + 1과 n-2까지의 조합 + 2와 n-3까지의 조합 + 3..

[백준 BOJ][DP] 11727 2xn 타일링 2 [내부링크]

11727_2xn 타일링 2 링크 https://www.acmicpc.net/problem/11727 풀이 점화식을 세우기 위해서 그림을 그려보겠습니다. 이렇게 되어 2*n까지 타일을 채우는 방법은 f(n-1) + 2*f(n-2)라는 것을 알 수 있습니다..

[백준 BOJ][DP] 11726 2xn 타일링 [내부링크]

11726_2xn 타일링 링크 https://www.acmicpc.net/problem/11726 풀이 점화식을 세우기 위해서 그림을 그려보겠습니다. 이렇게 되어 2*n까지 타일을 채우는 방법은 f(n-1) + f(n-2)라는 것을 알 수 있습니다. 점..

[pwnable.kr] Rookiss - fsb [내부링크]

[pwnable.kr] Rookiss – fsb 문제는 32bit 바이너리입니다. 코드를 보면, key에 8자리 숫자를 가져옵니다. 그리고 alloca라는 함수를 사용해서 스택에 공간을 할당하고 fsb라는 함수를 호출합니다. fsb 함수..

[장학생] 선린 인터넷 고등학교 장학생 [내부링크]

장학생으로 뽑히게 되어 영광입니다.. 앞으로 더 열심히 하겠습니다!

[백준 BOJ] 1152 단어의 개수 [내부링크]

1152_단어의 개수 링크 https://www.acmicpc.net/problem/1152 풀이 이 문제는 생각보다 정답 비율이 낮습니다. 단어는 공백으로 구분할 수 있고 공백이 연속해서 나오는 경우는 없다고 했기 때문에, 공백의 개수..

[백준 BOJ] 14584 암호 해독 [내부링크]

14584_암호 해독 링크 https://www.acmicpc.net/problem/14584 풀이 1)    문자열을 1씩 올리면서 문자열에 주어진 단어들이 있는지 탐색합니다. 2)    있으면 문자열을 출력하고 종료. 문자열 탐색 방법 1..

[백준 BOJ] 10250 ACM 호텔 [내부링크]

10250_ACM 호텔 링크 https://www.acmicpc.net/problem/10250 풀이 일단 이렇게 사람들이 배정을 받는다는 사실은 눈치 챘을 것입니다. 단순하게 예제만 본다면 402의 4는 10%6이고 뒤에 2는 10/6+1이고, 1203의..

[백준 BOJ] 1933 분수찾기 [내부링크]

1193_분수찾기 링크 https://www.acmicpc.net/problem/1193 풀이 규칙을 찾아보면 이렇게 된다는 것을 알 수 있습니다. 군수열처럼 이렇게 두고, 군(i)과 항(offset)을 찾아내서 풀면 됩니다. 홀수 군일 때는 i..

[교내 대회] 2018 과학 UCC 대회 동상 [내부링크]

고등학교 2학년이 된 후 받은 첫 상입니다.ㅎㅎ 영상 편집을 이거 하면서 처음으로 다뤄봤는데, 퀄리티는 낮지만 성공적으로 마쳐 다행이네요! 스타트 잘 끊었으니 이제 중간고사 잘 보자...ㅎ

[Codegate 2018] catshop [내부링크]

[Codegate 2018] catshop 32bit 바이너리이고, Canary와 NX가 걸려있습니다. main 함수의 코드는 이렇습니다. 숫자를 입력 받을 때, scanf %d, 혹은 read로 입력 받은 후 atoi로 변환하는 것이 아니라, 그냥 rea..

[Codegate 2018] DaysNote [내부링크]

[Codegate 2018] DaysNote 바이너리는 32bit이고 보호 기법은 걸려있지 않습니다. 실서버 ASLR 또한 꺼져 있습니다. 연도와 내용을 입력 받습니다. 그리고 CountDays 함수를 통해서 그 연도의 일수를 return 하..

[Codegate 2018] betting [내부링크]

[Codegate 2018] betting 64bit 바이너리이고, canary와 NX가 걸려있습니다. 그리고 바이너리에 기분 좋게 helper라는 쉘을 띄워주는 함수가 있습니다. 보시면 s는 bp-0x20에 있고 입력은 s에 0x28만큼 받습니..

CODEGATE 2018 본선, 컨퍼런스 후기 [내부링크]

2018.4.4(수) 코드게이트 본선이 열렸습니다. 국제 대회이고 큰 대회여서 기대도 되고 떨리기도 많이 떨렸습니다. (하아 한국 임재민ㅜㅜ) 그리고 코드게이트 후드집업도 받았습니다! 본선은 11시간? 동안 진행..

[pwnable.kr] Rookiss - echo1 [내부링크]

[pwnable.kr] Rookiss – echo1 64bit 바이너리이고, 보호기법들이 모두 꺼져있는 걸 볼 수 있습니다. 실행을 하면 이름을 입력 받고, 메뉴를 출력합니다. 1번 BOF echo만 사용할 수 있습니다. 1번 menu인 ec..

[pwnable.kr] Toddler's Bottle - unlink [내부링크]

[pwnable.kr] Toddler’s Bottle – unlink 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 #include #include #include ty..

[securinets CTF 2018] Boobs [내부링크]

[securinets CTF 2018] Boobs 이번에 풀어볼 문제는 2018 3 25 ~ 2018 3 26까지 진행되었던 securinets CTF의 pwn 중 가장 높은 배점을 가지고 있는 문제입니다. 바이너리는 32bit입니다. flag를 얻기 위해서는..

[pwnable.kr] Toddler's Bottle - memcpy [내부링크]

[pwnable.kr] Toddler’s Bottle – memcpy 이 문제를 풀기 위해서 어떤 exploit 스킬을 쓰는 게 아닌 것 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32..

[TAMUctf 2018] pwn1 ~ pwn5 [내부링크]

[TAMUctf 18] pwn1 32bit 바이너리입니다. gets로 s에 입력 받기 때문에, v5를 0xF007BA11로 덮어줍시다. 그럼 flag가 출력될 것입니다. 1 2 3 4 5 6 7 8 9 10 from pwn import * s = remote("pwn.ctf.tamu..

[CTF] TAMUctf 18 pwn 올클 [내부링크]

진행되고 있는 TAMUctf 18 pwn 분야 문제를 다 풀었다. 물론 다 스택 문제지만, 기분이 좋다. 얼른 힙도 공부해야 하는데... 라이트업은 대회가 끝나면 올리도록 하겠습니다.

[OpenCTF 2016] tyro_heap [내부링크]

[OpenCTF 2016] tyro_heap NX가 걸려있는 32bit 바이너리입니다. 이 부분이 main 함수의 중요 기능 부분입니다. create heap object : 힙 오브젝트 생성 malloc으로 36byte 할당해줍니다. 객체는 총 32개를 생성..

[Codegate 2018] BaskinRobins31 [내부링크]

[Codegate 2018] BaskinRobins31                                                                                    ..

[교내 수상] 1학년 성적 우수상 [내부링크]

상 받았습니다! 종업식에 이런 거 받으니 기분이 좋네요ㅎㅎ

[CTF] Codegate 2018 예선 (본선 진출!) [내부링크]

Codegate2018 예선 주니어부가 종료되었습니다. 저는 저 앞에 solver 많은 두 문제를 풀었는데요. 27등으로 마무리 했습니다. 닉네임으로 들어갈 줄 알았는데 팀이름으로 올라가서 조금 당황했습니다ㅠㅠ. 그리..

[Codegate 2014] nuclear [내부링크]

[codegate_2014] nuclear (이 문제는 예전에 풀다가 놓고 다시 잡은 문제라서 코드나 여러 부분에서 불편함을 느끼실 수 있습니다. 양해 부탁드립니다. ) 바이너리는 이렇습니다. 무슨 문제였을 지는 모르지만,..

[pwnable.kr] Toddler's Bottle - asm [내부링크]

[pwnable.kr] Toddler’s Bottle – asm how to make shellcodes… 일단 들어가보면 긴 파일 이름을 가진 flag 파일이 있습니다. 가짜 플래그이고 asm_pwn 디렉터리에도 실제로 저런 이름을 가지고 있다고 합니..

[pwnable.kr] Toddler's Bottle - uaf [내부링크]

[pwnable.kr] Toddler’s Bottle - uaf UAF (Use After Free) 문제입니다. 코드가 cpp이여서 c++ 공부와 UAF 공부를 했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2..

[HDCON 2013] luckyzzang [내부링크]

[HDCON 2013] luckyzzang Binary는 이렇습니다. canary는 없네요. 포트는 7777번으로 연결해줍니다. 들어가면 MSG를 입력 받고 종료됩니다. 입력 받는 부분을 보면 BOF가 터집니다. 하지만 v2 % 100의 숫자가..

[Codegate 2014] angry_doraemon [내부링크]

[Codegate 2014] angry_doraemon angry_doraemon 문제입니다. main 함수에서 8888 포트로 연결하네요. 이렇게 6가지의 Attack menu가 나옵니다. 여러 메뉴들을 입력해봤는데, 5. Fist attack에서 r을 입력하면..

[Codegate 2017] babypwn [내부링크]

[Codegate 2017] babypwn 일단 소켓 연결을 하는데 포트번호를 8181번으로 연결해줍니다. 그리고 바이너리에는 canary와 nx가 걸려있습니다. 들어가보면 Echo 기능은 입력을 받고 그대로 출력하는 것입니다. Re..

[티스토리 초대장] 9장 배포! (완료) [내부링크]

i n v i t a t i o n 티스토리 초대장 + 남은 초대장 수 : 00 안녕하세요! 티스토리에 보금자리를 마련하시려는 여러분께 초대장을 배포해 드리려고 합니다. 나만의, 내 생각을, 내 기억을 담는 소중한 블로그를..

[C++] 상속 [내부링크]

<클래스 상속> 이미 정의된 클래스의 멤버를 새롭게 정의할 클래스의 멤버로 참조케 하는 것을 말합니다. 즉, 이미 작성한 클래스의 멤버를 물려받는 것입니다. 부모 클래스/기반 클래스 와 자식 클래스/파생 클래..

[C++] 파일 입출력 fstream [내부링크]

사용하기 위해서 #include 을 해야합니다. 파일 출력 클래스 ofstream. 출력할 내용을 파일 객체로 전달하면 됩니다. ofstream 파일출력객체; 파일출력객체.open("출력파일이름"); 파일출력객체 << 출력 내용; 파..

[C++] string 클래스 [내부링크]

string 클래스는 문자열 클래스이고, 이미 정의되어 있는 클래스입니다. 사용하기 위해서 #include 을 해줘야 합니다. string s_name="임재민"; == string s_name("임재민"); //연산자 오버로딩 덕분에 가능합니다..

[C++] this [내부링크]

객체 자신을 가리키는 포인터입니다. 모든 객체는 this 포인터를 가지고 있습니다. 멤버 함수 내에서 매개변수와 멤버 변수의 이름이 동일할 경우 객체의 멤버 변수임을 명시하기 위해서 사용합니다. 1 2 3 4 5 6..

[C++] 객체 포인터 [내부링크]

<객체 포인터> 동일 클래스의 객체 주소를 저장합니다. 객체 포인터의 멤버 참조 연산자는 -> 입니다. (구조체와 동일) 클래스이름 객체; 클래스이름 *객체포인터; 객체포인터 = &객체; 객체포인터 -> 멤버; 이렇..

[C++] 소멸자 [내부링크]

<소멸자> 객체가 소멸할 때 자동으로 실행되는 함수입니다. 소멸자 이름은 생성자 이름에 "~" 기호를 앞부분에 붙인 형태입니다. ex) ~Student(); //소멸자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2..

[C++] 생성자 [내부링크]

<생성자> 생성자는 객체가 생성될 때 자동으로 호출되는 멤버 함수입니다. 클래스 이름과 같아야 하고, 함수의 반환값은 없습니다. public 접근 속성을 가져야 하고, 객체 생성과 동시에 멤버 변수들을 초기화 할..

[C++] 클래스와 객체 [내부링크]

클래스 정의 -> 객체 생성 클래스는 하나의 추상적 개념체입니다. 실체인 객체를 만들기 위한 틀이죠. 사람이라는 클래스가 있고, 그에 따른 실제 객체인 나, 친구, 엄마 등을 만들 수 있는 것입니다. 그래서 클래..

[C++] 함수 오버로딩 [내부링크]

C언어에서 같은 이름의 함수는 정의하지 못했습니다. 하지만 C++에서는 함수의 이름이 같아도 매개변수를 다르게 하여 함수를 재정의하는 것이 가능합니다. 이게 바로 함수 오버로딩입니다. 매개변수가 다르다는..

[C++] 디폴트 매개변수 [내부링크]

함수 선언에서 함수의 매개변수에 초기값을 정하고, 함수 호출에서 매개변수를 전달하지 않았을 경우 초기값으로 함수의 인수 값을 설정해줍니다. 1 2 3 4 5 6 7 8 9 10 11 12 #include using namespace std; vo..

[C++] 함수 [내부링크]

함수는 어떤 기능을 하거나, 어떠한 입력 값을 줬을 때 그에 따른 출력 값을 뱉어내는 것입니다. 반환자료형 함수이름(매개변수){ 함수 내용 } 이렇게 정의합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..

[C++] 구조체 [내부링크]

구조체 태그 : 구조체 식별자 구조체 멤버 : 구조체를 구성하는 항목 구조체를 정의하고 나중에 구조체 변수 선언. struct [태그이름] { 구조체 멤버 선언; }; struct [태그 이름] 변수이름1, 변수이름2; 구조체를..

[C++] 동적 할당 [내부링크]

C언어에서 동적 할당은 malloc(), calloc(), realloc() 등의 함수를 이용해서 공간을 할당해줬습니다. 그리고 free() 라는 함수로 해제해줬습니다. C++에서는 다릅니다. 기억공간 할당 : new 기억공간 해제 : dele..

[C++] 명시적 형변환 [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include using namespace std; int main() {     int a = 20, b = 3;     double div;     div = (double)a / b;              ..

[C++] std::cin? [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include using namespace std; int main() {     int num1, num2;     cout << "정수1 입력 : ";     cin >> num1;     cout << "..

[C++] std::cout, std::endl? [내부링크]

C언에서 출력을 하고 싶을 때, 우리는 printf() 함수를 이용했습니다. C++에서는 std::cout을 이용합니다. 헤더 파일은 C++ 헤더인 iostream을 include 해줍니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #..

[Pico CTF 2013] rop4 [내부링크]

[PicoCTF-2013] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include #include #include char exec_string[20]; void exec_the_string() ..

[pwnable.kr] Toddler's Bottle - input [내부링크]

[pwnable.kr] Toddler’s Bottle - input 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 5..

[Pico CTF 2013] rop3 [내부링크]

[PicoCTF-2013] rop3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #undef _FORTIFY_SOURCE #include #include #include void vulnerable_function()  {     char buf[128];     read(..

[Pico CTF 2013] rop2 [내부링크]

[PicoCTF-2013] rop2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #undef _FORTIFY_SOURCE #include #include #include char * not_used = "/bin/bash"; int not_called()..

[Pico CTF 2013] rop1 [내부링크]

[PicoCTF-2013] rop1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #undef _FORTIFY_SOURCE #include #include #include int not_called() {     return system("/bin/bash");..

[Pico CTF 2013] overflow5 [내부링크]

[PicoCTF-2013] overflow5 이번에는 NX가 걸려있어서 셸코드를 올려서 실행하는 건 힘들 것 같습니다. vuln 함수입니다. v2의 시작 주소는 ebp-0x40c이고, strcpy 함수의 BOF 취약점으로 인해 return address까..

[Pico CTF 2013] overflow4 [내부링크]

[PicoCTF-2013] overflow4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include #include #include #include #include "dump_stack.h" /*  * Goal: Get the program to ru..

[Pico CTF 2013] overflow3 [내부링크]

[PicoCTF-2013] overflow3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include #include #include #include #include "dump_stack.h" /*  * Goal: Get the pro..

[교내 대회] 2017 블로그 포트폴리오 공모전 장려상 [내부링크]

일단 타과 대회에서 상을 탔다는 것만으로도 만족한다. 이래저래 블로그를 관리하는데 내 스펙으로 만들고 싶다는 욕심이 생겨서 열심히 하다보니 상을 탔다. 대회 참가도 가서 블로그 주소만 적고오면 돼서 편했..

[교내 대회] 2017 서버 구축대회 동상 [내부링크]

서버에 대해 무지했었는데, 대회 때문에 공부하면서 살짝 서버가 뭔지 정도는 깨달은 것 같다. 컴실 컴퓨터 상황이 좋지 않아서 실을 이동하고 해서 불편했지만, 상도 타고 기분이 좋다.

[교내 대회] 2017 2학기 프로그래밍 경시대회 장려상 [내부링크]

짧은 시간동안 많은 문제를 풀어야 해서 집중했다. 1학기 때 대회 때문에 프로그래밍 경시대회를 못 나갔어서, 더 열심히 했던 것 같다.

[HandRay] while문, for문 패턴, WinMain API? [내부링크]

while: #include int main(){ int i = 0; while(i < 10){ printf(“Hello\n”); i++; } return 0; } <어셈블리> 원하는 곳 초기화 비교문과 jmp 종속 명령과 증감식 jmp mov 명령으로 int i = 0; 실행. (어셈블리..

[Pico CTF 2013] overflow2 [내부링크]

[PicoCTF-2013] overflow2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include #include #include #include #include #include "dump_stack.h" void vuln(int win..

[교내 대회] 2017 선린 정보올림피아드 동상 [내부링크]

교내 대회로 받은 첫 상이다! 대회 하다가 마지막 1시간이 너무 졸려서 먼저 나온 게 아쉽다..

[pwnable.kr] Toddler's Bottle - leg [내부링크]

[pwnable.kr] Toddler’s Bottle – leg 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 int main(){     int key=0;     printf("Daddy has very strong arm! : ");     scanf("%d", &key);  ..

[티스토리 초대장] 9장 배포! (완료) [내부링크]

i n v i t a t i o n 티스토리 초대장 + 남은 초대장 수 : 00 안녕하세요! 티스토리에 보금자리를 마련하시려는 여러분께 초대장을 배포해 드리려고 합니다. 나만의, 내 생각을, 내 기억을 담는 소중한 블로그를..

[Pico CTF 2013] overflow1 [내부링크]

[PicoCTF_2013] overflow1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include #include #include #include #include #include "dump_stack.h" void vuln(int ..

[HandRay] if문 패턴, switch-case문 패턴 [내부링크]

if: ==일 때, cmp로 비교. JNZ로 거짓일 때 점프. !=일 때, cmp로 비교. JE로 거짓일 때 점프. 부호 있을 때: >일 때, cmp로 비교. JLE로 거짓일 때 점프. <일 때, cmp로 비교. JGE로 거짓일 때 점프. >=일 때, cm..

[HandRay] 함수 호출 패턴, 구조체 패턴, 코드 패치 [내부링크]

함수 호출 패턴 함수를 호출하는 쪽 : Caller 호출되는 함수 : Callee 인자의 개수, 인자의 타입, 리턴 값을 보면 어떤 함수인지 찾기 쉬움. CALL 명령은 돌아가야할 주소를 stack에 push하고 함수로 jmp한다. __c..

[HandRay] Main 함수 parameter, pointer 패턴 [내부링크]

Main Func Arguments int argc, char *argv[], char *envp[] argc - main 함수에 전달되는 인자의 개수 argv - 넣은 문자열의 포인터 배열 envp - 환경 변수 보통 3개의 인자를 넣고 호출하면 main 함수라는 것을..

[HandRay] OllyDbg 사용법과 Data Expression [내부링크]

Window XP를 쓰는 이유 : ASLR이 없기 때문임. Assembly : 기계어와 1대 1 대응. 프로그래밍 언어 중 가장 기계어와 가까움 (저급 언어) OllyDbg code 영역 : 코드가 기계어와 어셈블리 명령으로 보임. Register..

[HandRay] 핸드레이와 레지스터 [내부링크]

프로그램의 제작 원리 .c -> [compile] -> .obj -> [link] -> .exe 디컴파일 : .exe -> .c  실행 파일을 디버거로 돌려서 소스코드로 복원하는 것. 핸드레이 : 디컴파일을 손으로 하는 것. ALU. 연산 장치. 전기..

[Plaid CTF 2013] ropasaurusrex [내부링크]

[plaidCTF-2013 ropasaurusrex] 32bit binary이고 NX가 걸려있습니다. main 함수에서는 어떤 함수를 호출하고 WIN을 출력합니다. 함수를 따라 들어가보면, bp-0x88에 위치한 buf에 read 함수로 0x100만큼 입력을..

[pwnable.kr] Toddler's Bottle - coin1 [내부링크]

[pwnable.kr] Toddler’s Bottle – coin1   N개의 동전 중 1개의 위조 동전이 껴 있는데, C번의 기회 안에 위조 동전을 알아내야합니다. 처음에는 한 번만 맞추면 되는 줄 알았습니다. 그래서 수작업을 시도..

[pwnable.kr] Toddler's Bottle - cmd2 [내부링크]

[pwnable.kr] Toddler’s Bottle – cmd2 cmd1처럼 환경 변수를 사용하지 못 합니다. flag 문자열은 와일드 카드 *을 이용해서 우회하면 되지만, PATH를 바꿔 놓고, /도 필터링합니다. ‘ /bin/cat f* ’ 이렇..

Linux 환경 변수 '?' [내부링크]

쉘의 환경 변수 '?'를 알아보도록 하겠습니다. '?'라는 환경 변수는 바로 전 프로그램의 return 값을 가지고 있습니다. 보시면 어떤 정수를 return 해주는 함수를 만들었습니다. 그리고 호출할 때마다 '?' 환경..

[제 1회 Root CTF] EGG - (863 point) [내부링크]

ltrace로 열어서 아무 문자열이나 넣어주면, 어떤 값과 xor해서 저 문자열이랑 비교합니다. 저 문자열을 복붙해서 다시 넣으면, flag가 나옵니다. ltrace는 leviathan 문제를 겨우 분석해서 풀었는데, ltrace..

[제 1회 Root CTF] Stage Game - (229 point) [내부링크]

level 1 ~ 10 시간을 늘려가면서 Sleep을 때립니다. 여기가 Y/N 받는 부분인데 밑에 일정하게 함수가 있는 걸 보니 Stage인 것 같습니다. Y를 1로 받기 때문에 1을 넣으면 밑에 Stage 함수로 갈 수 있습니다...

[제 1회 Root CTF] Point to pointer! - (529 point) [내부링크]

기대를 안고 문제를 풀기 시작했습니다. main 함수 소스입니다. String을 봤는데 “/bin/sh”도 있습니다. 막 찾던 도중, 여기서 쓰이는 걸 발견했습니다. 다시 main함수를 보면 buf를 0x30(48)byte만큼 잡고..

[CTF] 제 1회 서울 디지텍 고등학교 청소년 해킹 방어 대회 후기 (7등) [내부링크]

[제 1회 서울디지텍고등학교 청소년 해킹방어대회 후기] 157명이 참가한 서울 디지텍 고등학교 청소년 해킹방어대회에서 7등을 했습니다. 대회는 2017-12-22 AM 9:00 ~ 2017-12-23 PM 9:00 36시간동안 진행되었고..

[pwnable.kr] Toddler's Bottle - shellshock [내부링크]

[pwnable.kr] Toddler’s Bottle – shellshock 디렉터리에 bash 쉘도 있습니다. bash 쉘에 대한 충격적인 뉴스라고 하네요. 그래서 bash shellshock에 대해서 검색해봤습니다. version을 보니 shellshock 취..

[pwnable.kr] Toddler's Bottle - mistake [내부링크]

[pwnable.kr] Toddler’s Bottle – mistake 힌트는 연산자 우선순위입니다! 코드입니다. password 파일에서 10byte만큼 password를 읽고, pw_buf에 넣습니다. scanf로 10byte만큼 사용자의 입력을 받고, pw_b..

[pwnable.kr] Toddler's Bottle - cmd1 [내부링크]

[pwnable.kr] Toddler’s Bottle – cmd1 환경 변수를 이용하는 문제인 것 같다. system에 사용자의 입력을 인자로 전달해서 실행하는데, flag, sh, tmp가 있으면 안 됩니다. 일단 환경 변수 PATH가 바뀌었으..

[pwnable.kr] Toddler's Bottle - lotto [내부링크]

[pwnable.kr] Toddler’s Bottle - lotto 나머지, main과 help 함수는 분기와 출력 밖에 없어서 가져오지 않았습니다. 우선 6byte를 입력합니다. 그리고 /dev/urandom에서 난수를 가져와서 범위를 1~45로 만듭니..

[pwnable.kr] Toddler's Bottle - blackjack [내부링크]

[pwnable.kr] Toddler’s Bottle - blackjack millionares. 백만장자에게 flag를 준다고 합니다. 들어가면 화려한 아스키아트를 볼 수 있습니다. 게임 진행, 룰 확인, 게임 나가기 3가지 기능이 있습니다. 룰을..

FTZ level20 -> clear Write up(Python) [내부링크]

FTZ 20 Level printf에 bleh라는 문자열을 바로 집어 넣으면서 FSB 취약점이 생기게 됩니다. printf에서 %x를 쓰면 ebp-8부터 -4씩 감소하면서 인자를 읽어 오게 됩니다. 여기서 확인할 수 있는 것은 bleh 배열..

FTZ level19 -> level20 Write up(Python) [내부링크]

FTZ 19 Level ebp-40, buf의 시작 주소입니다. level19_parents.py 입니다. code에 setreuid 함수가 없기 때문에, setreuid가 걸린 셸코드를 사용했습니다. 환경 변수를 등록하고 level19_2.py를 실행합니다...

FTZ level18 -> level19 Write up(Python) [내부링크]

FTZ 18 Level ebp-100, string의 시작 주소입니다. ebp-104, check의 주소입니다. level18_1.py 입니다. count를 -4로 만들고 check의 값을 변조합니다. level18_2.py 입니다.

FTZ level17 -> level18 Write up(Python) [내부링크]

FTZ 17 Level ebp-56, buf의 시작 주소. ebp-16, call 함수 포인터의 주소. level17_parents.py 입니다. putenv 함수는 자식 프로세스에서 영향을 미치기 때문에, 제일 위에서 프로그램이 돌고 있도록 만들었..

FTZ level16 -> level17 Write up(Python) [내부링크]

FTZ 16 Level ebp-56, buf의 시작 주소. ebp-16, call 함수 포인터 주소. shell 함수 주소. level16_1.py 입니다. level16_2.py 입니다.

소개 [내부링크]

- 2017.12.14 저는 선린인터넷 고등학교 정보통신과 재학 중인 17학번 임재민입니다. 블로그를 운영하면서, 한 번 배운 지식을 넘어가는 것이 아니라 정리하게 되었습니다. 그러니 더욱 이해도 잘 되고 쌓여가는..

FTZ level15 -> level16 Write up(Python) [내부링크]

FTZ 15 Level ebp-56, buf의 시작 주소. ebp-16, *check의 주소. 두 번 참조하는 것을 볼 수 있다. 0xdeadbeef를 가지는 메모리 주소. level15_1.py 입니다. level15_2.py 입니다.

FTZ level14 -> level15 Write up(Python) [내부링크]

FTZ 14 Level ebp-56 버퍼 시작 주소. ebp-16 check 주소 level14_1.py 입니다. level14_2.py 입니다.

FTZ level13 -> level14 Write up(Python) [내부링크]

FTZ 13 Level gdb로 확인해보면 ebp까지 0x418(1048) 떨어져 있고, 변수 i는 ebp-12에 위치합니다. 스크립트를 짜고 돌려봅시다.

FTZ level12 -> level13 Write up(Python) [내부링크]

FTZ 12 Level level12_1.py입니다. payload를 짜고 gets로 입력을 받기 때문에 print를 해줍니다. level12_2.py입니다. 여기서 실행을 반복해서 수작업을 줄여줍니다. 이 상태에서 Enter를 여러 번 입력하면,..

FTZ level11 -> level12 Write up(Python) [내부링크]

FTZ 11 Level os.execv는 프로그램을 종료하고 인자를 실행하기 때문에, 손수 돌리지 않고 반복문을 이용하려던 목적을 잃게 된다. 그래서 해결책으로 os.system을 이용하였다. 처음으로 파이썬 스크립트를 이..

[pwnable.kr] Toddler's Bottle - random [내부링크]

[pwnable.kr] Toddler’s Bottle – random 코드는 이렇습니다. rand 함수는 난수를 생성하는 함수입니다. rand 함수는 seed표의 값에 따라 발생하는 난수의 값이 달라지는데, srand 함수로 seed 값을 정해줄..

[pwnable.kr] Toddler's Bottle - passcode [내부링크]

[pwnable.kr] Toddler’s Bottle – passcode 내용을 보아하니 there was some compiler warning. 컴파일러에서 경고가 나는 듯 합니다. ssh로 접속해서 code를 열어봅니다. warning을 확인해보기 위해 code를..

[pwnable.kr] Toddler's Bottle - flag [내부링크]

[pwnable.kr] Toddler’s Bottle – flag 바이너리 파일 하나를 줍니다. 리버싱 문제인 것 같고 packed present라는 걸 보면 바이너리가 패킹 되어 있을 거라고 생각됩니다. (그래서 패킹에 글들을 읽어보고 왔..

[pwnable.kr] Toddler's Bottle - bof [내부링크]

[pwnable.kr] Toddler’s Bottle – bof 코드를 확인하겠습니다. key를 0xdeadbeef로 넣어줬는데 그 값이 gets()함수로 인해서 overflowme[32]에서 overflow가 발생하고, 그걸 이용해서 key를 0xcafebabe로 변..

[pwnable.kr] Toddler's Bottle - collision [내부링크]

[pwnable.kr] Toddler’s Bottle – collision 접속해서 파일을 확인합니다. 코드를 열어보면, 해석해보면 20byte만큼 문자열을 argv[1]에 입력 받습니다. 그리고 그걸 4byte씩 나눠서(int *) 다 더합니다. 20..

[pwnable.kr] Toddler's Bottle - fd [내부링크]

[pwnable.kr] Toddler’s Bottle – fd 접속해서 파일을 확인합니다. 코드를 열어보면, 이렇게 argv[1]에 인자를 받고 그 값에서 0x1234를 뺀 값을 fd에 저장합니다. 그리고 read 함수로 읽은 값을 buf에 저장..

LOB nightmare -> xavius Write up [내부링크]

LOB nightmare -> xavius ID : nightmare Passwd : beg for me 접속해서 ls 명령어로 파일을 확인합니다. 으악 복잡합니다. 일단 주소의 상위 2바이트가 \x08, \xbf 이면 종료, library 영역도 막고 있는 것 같..

LOB succubus -> nightmare Write up [내부링크]

LOB succubus -> nightmare ID : succubus Passwd : here to stay 접속해서 ls 명령어로 파일을 확인합니다. code를 보니 첫 번째 Return Address는 strcpy() 함수에 걸어줘야 하고 두 번째 Return Address는 AA..

LOB zombie_assassin -> succubus Write up [내부링크]

LOB zombie_assassin -> succubus ID : zombie_assassin Passwd : no place to hide 접속해서 ls 명령어로 파일을 확인합니다. 소스코드가 굉장히 기네요. 연속 함수 호출 문제인데, strcpy() 부분에서 overflo..

LOB assassin -> zombie_assassin Write up [내부링크]

LOB assassin -> zombie_assassin ID : assassin Passwd : pushing me away 접속해서 ls 명령어로 파일을 확인합니다 code를 보면 이렇습니다. 전 단계 giant처럼 strcpy()가 아닌 strncpy()를 사용하고 있습니..

LOB giant -> assassin Write up [내부링크]

LOB giant -> assassin ID : giant Passwd : one step closer 접속해서 ls 명령어로 파일을 확인합니다. code를 열어보면 stack과 library 영역을 막고 있네요. code 영역으로 공격해보겠습니다. strcpy()에서..

LOB bugbear -> giant Write up [내부링크]

LOB bugbear -> giant ID : bugbear Passwd : new divide 접속해서 ls 명령어로 파일을 확인합니다. cat으로 code를 열어보면 소스가 긴데요. 간단히 해석하자면, library에 있는 execve 함수의 주소를 execve_a..

프로그래밍 보고서(정적 변수, 외부 변수, 레지스터 변수) [내부링크]

정적 변수(static variable) 정적 변수는 선언 시 형 앞에 static 이라는 키워드를 사용한다. ex) static int a = 10; 정적 변수의 초기화는 프로그램 컴파일 시에 단 한 번만 하게 된다. 정적 변수는 함수 내, 외..

프로그래밍 보고서(전처리기, 헤더파일, 기계어, 어셈블리어, 고급 언어, 컴파일 단계) [내부링크]

전처리기 전처리기(preprocessor)란, 컴파일러가 소스 파일을 컴파일하기 전에 사용자가 지시한 작업을 먼저 처리하는 것이다. 즉, 컴파일러보다 먼저 작업을 처리해준다. 그래서 중요한 작업은 전처리기가 하는..

네트워크 기초 고1 2학기 중간고사 정리 [내부링크]

정적 라우팅 프로토콜  라우터 운영자가 라우터의 경로를 직접 입력하여 라우팅 테이블을 구성하는 방법.  주로 스텁(stub) 라우팅에서 많이 사용하는 방법.  여기서 스텁이란 오직 하나의 경로만을 통해서 외..

[Conference] 2017 사이버 가디언즈 컨퍼런스 정리 및 후기 [내부링크]

2017.11.04(토) 오늘 사이버 가디언즈 컨퍼런스에 다녀오게 되었습니다. 좋은 발표를 들을 수 있는 기회를 얻게 되어 기쁘고, 경품은 타지 못 했지만 빵빵한 경품들 준비해주셔서 감사의 말씀 드립니다. 오늘 들..

LOB darkknight -> bugbear Write up [내부링크]

LOB darkknight -> bugbear ID : darkknight Passwd : new attacker 접속해서 ls 명령어로 파일을 확인합니다. cat 명령으로 code를 열어봅니다. RTL을 이용합니다. RTL은 Return To Library로 ret 명령을 만나..

LOB golem -> darkknight Write up [내부링크]

LOB golem -> darkknight ID : golem Passwd : cup of coffee 접속해서 ls 명령어로 파일을 확인합니다. cat 명령으로 코드를 열어봅니다. FPO를 이용하라고 합니다. FPO는 sfp를 조작하는 기법입니다. FPO는 Fr..

LOB skeleton -> golem Write up [내부링크]

LOB skeleton -> golem ID : skeleton Passwd : shellcoder 접속해서 ls 명령어로 파일을 확인합니다. cat 명령으로 code를 열어봅니다. main 함수의 Return Address 부분을 제외한 buffer 상위 주소의 모든 부..

LOB vampire -> skeleton Write up [내부링크]

LOB vampire -> skeleton ID : vampire Passwd : music world 접속해서 ls 명령어로 파일을 확인합니다. cat 명령으로 code를 열어봅니다. Return Address를 스택으로 변조해야 합니다. 환경 변수 사용 못 하고,..

LOB troll -> vampire Write up [내부링크]

LOB troll -> vampire ID : troll Passwd : aspirin 접속해서 ls 명령어로 파일을 확인합니다. cat 명령으로 code를 열어봅니다. egghunter가 없으니 공격은 환경 변수로 하면 될 것 같습니다. 하지만 환경 변수..

LOB orge -> troll Write up [내부링크]

LOB orge -> troll ID : orge Passwd : timewalker 접속해서 ls 명령어로 파일을 확인합니다. cat 명령으로 code를 열어봅니다. darkelf에서 추가됐던 argv[0] 길이 체크가 사라지고, argc가 2개 (파일명 + 인자..

LOB darkelf -> orge Write up [내부링크]

LOB darkelf -> orge ID : darkelf Passwd : kernel crashed 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령으로 code를 열어봅니다. 추가된 코드의 내용은 파일 경로 + 파일명인 argv[0]의 길이..

LOB wolfman -> darkelf Write up [내부링크]

LOB wolfman -> darkelf ID : wolfman Passwd : love eyuna 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령으로 code를 확인합니다. 추가된 보호 기법이 argv[1]의 길이를 48byte까지로 두는 것..

LOB orc -> wolfman Write up [내부링크]

LOB orc -> wolfman ID : orc Passwd : cantata 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령어로 code를 확인합니다. buffer 부분을 0으로 초기화 하는 코드가 있지만 goblin에서 buffer를 쓰..

LOB goblin -> orc Write up [내부링크]

LOB goblin -> orc ID : goblin Passwd : hackers proof 접속해서 ls 명령어를 이용해서 파일과 디렉터리를 확인합니다. cat 명령어를 이용해서 code를 확인합니다. egghunter 기법 때문에 우리는 환경 변수를..

LOB cobolt -> goblin Write up [내부링크]

LOB cobolt -> goblin ID : cobolt Passwd : hacking exposed 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령을 이용해서 코드를 확인합니다. gremlin에서는 strcpy를 이용해서 buffer에 복사 했..

LOB gremlin -> cobolt Write up [내부링크]

LOB gremlin -> cobolt ID : gremlin Passwd : hello bof world 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령으로 코드를 확인해봅시다. 코드를 보면 gate에서는 256byte 였는데 지금은 셸코드..

LOB gate -> gremlin Write up [내부링크]

LOB gate -> gremlin ID : gate Passwd : gate 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령을 이용해서 코드를 확인합니다. 버퍼에 셸코드를 박고 Return Address를 버퍼의 주소로 변조하겠습..

FTZ level20 -> clear Write up [내부링크]

FTZ 20 Level ID : level20 Passwd : we are just regular guys 접속해서 ls 명령으로 파일과 디렉터리를 확인합니다. cat 명령으로 hint를 열어봅니다. fgets에서 크기 제한을 두어 Buffer Overflow는 통하지..

FTZ level19 -> level20 Write up [내부링크]

FTZ 19 Level ID : level19 Passwd : swimming in pink 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령으로 hint를 열어봤는데 level18과는 다르게 매우 짧은 코드입니다. ‘그런데 완전 BOF 기..

FTZ level18 -> level19 Write up [내부링크]

FTZ 18 Level ID : level18 Passwd : why did you do it 접속해서 ls 명령으로 파일과 디렉터리를 확인합니다. 코드를 보면 입력을 받고 x에 하나하나 저장한 후 switch-case문으로 돌리네요. 그리고 check의..

FTZ level17 -> level18 Write up [내부링크]

FTZ 17 Level ID : level17 Passwd : king poetic      접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령으로 hint를 열어봅니다. level16과는 다르게 쉘을 띄워주는 shell 함수는 없네요. 그..

FTZ level16 -> level17 Write up [내부링크]

FTZ 16 Level ID : level16 Passwd : about to cause mass 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령으로 hint를 열어보면 코드가 있는데요. call이라는 이름을 가진 함수 포인터에 printit..

FTZ level15 -> level16 Write up [내부링크]

FTZ 15 Level ID : level15 Passwd : guess what 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령어로 hint를 열어보면 level14와 다른 점이 하나 있습니다. level14에서는 check 변수가 int형이..

FTZ level14 -> level15 Write up [내부링크]

FTZ Level 14 ID : level14 Passwd : what that nigga want? 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령어로 hint를 열어봅니다. buf에 fgets로 크기 제한을 두고 값을 입력 받습니다. 하지..

FTZ level13 -> level14 Write up [내부링크]

FTZ 13 Level ID : level13 Passwd : have no clue 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령어로 hint를 열어보면 i를 0x1234567로 초기화하고 buf를 선언하고 argv[1] 값을 buf에 복사하..

FTZ level12 -> level13 Write up [내부링크]

FTZ 12 Level ID : level12 Passwd : it is like this 접속해서 ls 명령어로 파일과 디렉터리를 확인합니다. cat 명령어로 hint를 열어보면 level11과는 달리 level12에서는 문자열을 gets 함수로 받고 있습니다..

FTZ level11 -> level12 Write up [내부링크]

FTZ 11 Level ID : level11 Passwd : what!@#$? 접속해서 ls 명령어를 이용해서 디렉터리와 파일을 보면 attackme라는 실행 파일과 hint라는 파일이 있습니다. attackme를 보면 level12의 setuid가 걸려있는 걸..

170501 - 네트워크 사용목적에 따른 분류 [내부링크]

네트워크 사용목적에 따른 분류 - 사용되는 목적이나 특성에 따라 인트라넷, 익스트라넷, VAN, ISDN 등으로 구분 인트라넷(Intranet) - 인터넷에서 사용되는 회선과, 기반 기술들을 이용하여 구축하는 사설 네트워..

170501 - Internet [내부링크]

Internet - 전 세계의 컴퓨터가 서로 연결되어 있는 네트워크 Web이라고도 부름 - 인터넷에서 주로 사용하는 서비스는 웹 서비스이며, 클릭하면 연결된 문서로 이동할 수 있는 하이퍼 텍스트 기능을 이용하여 쉽게..

170501 - LAN의 전송방식, WAN [내부링크]

근거리통신망(LAN) - Local Area Network 비교적 가까운 거리의 컴퓨터와 각종 통신기기 등을 통신형태로 연결한 형태 - 표준 LAN으로는 이더넷과 FDDI가 있음 - 구조는 버스형과 링형이 사용되며, 매체 접근 제어..

170501 - 매체 접근 제어 방식 [내부링크]

매체 접근 제어 방식 - 충돌을 막기 위해서 누가, 언제 사용하도록 하는가를 결정하는 것이 중요 - CSMA/CD, CSMA/CA, 토큰 링, 토큰 버스 등이 있음 CSMA/CD (Carrier Sense Multiple Access / Collision Detecti..

170501 - 교환 기술 [내부링크]

교환 기술 - 교환기 : 멀리 떨어져 있는 단말기들이 통신할 수 있도록 중간에서 회선을 연결해 주는 장치 - 교환 방식에는 회선 교환 방식과 패킷 교환 방식 등이 있음 회선교환(circuit switching) 방식 - 2개의..

170501 - 다중화 전송방식 [내부링크]

다중화 전송방식 - 신호를 보낼 때 여러 개의 신호를 묶어서 하나의 복합 신호 형태로 보내고, 이를 받는 쪽에서 각각의 신호를 분리해 내는 방법 - FDM (주파수 분할 다중 방식)과 TDM (시분할 다중 방식) 등이..

170501 - 아날로그 전송과 디지털 전송 [내부링크]

아날로그 전송과 디지털 전송 - 데이터가 전송 매체를 통해 전송되기 위해서는 우선 적잘한 형태의 전기 신호로 변환되어야 함 - 전기 신호는 아날로그 신호와 디지털 신호로 구분 아날로그 전송 - 어떤 양을 표시..

170501 - 동기식 전송과 비동기식 전송 [내부링크]

동기식 전송과 비동기식 전송 - 두 시스템 간에 컴퓨터의 속도차이가 있기 때문에 송신과 수신을 하기 위해서는 타이밍을 맞추는 것이 중요함 - 동기화는 데이터 통신에서 정확한 수신을 위해 필요한 기술 - 전송..

170501 - 직렬전송과 병렬전송 [내부링크]

직렬전송과 병렬전송 - 머리부터 1비트씩 차례로 보내는 직력 전송 방식, 한 문자 8비트를 동시에 보내는 병렬 전송 방식 직렬 전송 - 하나의 전송선을 통해서 데이터를 순차적으로 전송 - 코드화된 문자의 비트를..

170501 - 정보통신 방식 [내부링크]

정보통신 방식 - 네트워크에서 두 가지 단말기 상호간에 데이터를 송수신하는 경우 데이터의 흐름에 따라 통신 방식이 결정됨 - 단방향 통신 방식, 전이중 통신 방식, 반이중 통신 방식으로 구분 단방향(simplex)..

170501 - 네트워크 토폴로지 [내부링크]

네트워크 토폴로지 - 데이터 통신망의 여러 가지 구조(물리적인 형태) - 데이터 통신망에서 여러 가지 장치들이 서로 연결된 모양이나, 통신 채널이 통신망에 연결되는 형태 등을 그림으로 표현한 것 성형 - 중앙..

170404 - TCP/IP [내부링크]

TCP (Transmission Control Protocol) IP (Internet Protocol) TCP/IP : 오늘날 컴퓨터 통신망의 실질적인 표준이 되고 있는 프로토콜 7계층 : 응용계층-- 6계층 : 표현계층  |  => 응용계층 5계층 : 세션계층--..

170501 - 네트워크 장비 [내부링크]

네트워크 장비 - 랜 카드, 허브, 리피터, 브리지, 라우터, 게이트웨이 등이 있음 랜 카드 - 컴퓨터를 LAN에 연결시키는 장비로, NIC라고도 함 - 일반적으로 컴퓨터 내부에 장치하고, 케이블을 이용하여 LAN에 연결..

170501 - 네트워크의 목적과 필요성, 구성요소, 전송매체 [내부링크]

컴퓨터를 서로 연결하여 데이터를 교환하며, 자원들을 공유할 수 있도록 하는 방법을 네트워크라고 함 네트워크를 구성하여 사용하는 목적 - 프로그램이나 데이터를 공유 - 프린터 또는 스캐너 등의 주변장치를 공..

170421 - 서브네팅(Subnetting) [내부링크]

서브네팅이란? IP 주소의 수가 한정되어 있으므로 각 기관에서는 배정받은 하나의 네트워크 주소(클래스 A, 클래스 B, 클래스 C)를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것을 서브네팅이라고 한다. 서..

170414 - IP 주소 [내부링크]

IP 주소의 개요 -IP(Internet Protocol) 주소는 인터넷 상의 고유 이름이다. -중복되면 안된다. -NIC는 국제적으로 IP 주소를 관리하는 기관이다. -한 기관에서 세계의 모든 IP를 다 관리하는 것이 어려운 일이다...

170331 - OSI 7 계층 [내부링크]

OSI 참조모델 OSI 참조 모델의 규정에 따르는 네트워크는 서로 다른 기술로 구성된 네트워크라 할지라도 통신을 할 수 있다. (ISO가 제안) 네트워크 모델 표준안 : 효율적인 정보 전달을 위해 통신 제어 기능을 비..

170331 - 프로토콜의 기본구성 [내부링크]

프로토콜 : 통신 규칙이나 방법 프로토콜의  주요 요소 구문 : 데이터의 형식 (아날로그, 디지털),  부호화 (UNICODE, ASCII), 신호크기 (0, 1을 어떻게 표현, 0, 1 전압세기 결정) 의미 : 전송 제어(동기화, 패..

170329(수) [내부링크]

C언어 -함수란? -사용자 정의 함수 (선언과 구현, 호출) -함수 원형 선언 --------------------------------------------------------------------------------------------- 1. 함수란? 기능을 구현하는 부분을..

170324(금) [내부링크]

C언어 -전위 연산과 후위 연산의 차이점 -이중 for문 -배열의 선언과 초기화와 사용법 -2차원 배열 -codeup 문제 풀이 1409, 1093, 1503, 1504, 1505 ----------------------------------------------------------..

170322(수) [내부링크]

C언어 -자료형과 서식 지정자 (int, unsigned int, char, float, double),  (%d, %u, %c, %f, %lf) -if, else if , else -for문과 전역 변수 지역 변수 그리고 for(;;) -while문 -break문 -continue문 -codeup..

Intent.ACTION_DIAL, Intent.ACTION_CALL 차이점 [내부링크]

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); startActivity(intent); -ACTION_DIAL은 전화걸기 앱에 전화번호만 표시해준다. Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(ur..

170320(월) [내부링크]

xshell 다운로드 경로 : nefus.kr/youngjoo/tool/xshell5.exe nefus 서버 접속 : ssh [email protected] Program Shell -> 운영체제의 커널과 사용자 사이를 이어주는 역할 (윈도우의 cmd와 비슷) Kernel -> 컴퓨터..