DreamHack에 있는 SystemHakcing 트랙의 Stage 7의 문제인 ROP 실습의 설명을 보고 정리해보았습니다. ※ 로컬영역에서는 아래 전체코드가 실행이 되지 않을 수 있습니다. puts 다음, read함수가 실행이 될때, edx값이 0이 되면 안되는데 0이 되면서 read함수가 오류를 일으킬 수 있습니다. 이는 Ubuntu 버전에 따라 다릅니다. 물론 저도 로컬에서는 아직 실행하지 못해서 방법을 찾고 있습니다. 만약 찾아지게 되면 추가적으로 올리겠습니다. 먼저 간단하게 메모리 보호 기법에 대해 정리해보면, 프로그램이 실행될 때 왼쪽과 같이 프로그램이 실행되면서 메모리에 적제되는데, 이 메모리에 할당되지 않는 영역의 메모리에 접근하는 것을 막기 위해 사용된다. 먼저 코드를 살펴보면, puts..
사용언어) C++ GitHub) https://github.com/Hong-Study/MineSweeper GitHub - Hong-Study/MineSweeper Contribute to Hong-Study/MineSweeper development by creating an account on GitHub. github.com 게임의 전체적인 과정은 다 만들었다. 그런데 친구에게 게임을 보여주니까, 빠른 속도로 이동할 때 화면이 끊기는 깜빡임이 발생해서 아쉽다는 얘기를 들었다. 그래서 친구가 깜빡임을 없애기 위해서 더블 버퍼링이라는 기술을 한번 추가해 보는게 어떻겠냐고 추천을 해서, 넣어보게 되었다. 깜빡임 발생 이유는? 보통 CMD 에서 우리가 std::cout 로 출력을 하게 되면 하나의 화면에 ..
사용언어) C++ 문제) 전화번호부에 적힌 전화번호를 담은 배열 phone_book이 solution함수의 매개 변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 풀이) 문제 내용 자체는 풀만 했었지만, 내가 sort의 원리를 잘못 이해하고 있어서 한 시간 정도 노가다를 하고 있었다.. 여기서 오해한 부분은 sort가 길이별로 정렬될 줄 알았는데, 크기 순으로 정렬이 되어서 문제가 풀리지 않았다. 풀이는 sort로 정렬해서 뒤의 크기를 앞 문자열 크기만큼 잘라서 비교해서 넘어가면 된다. 사용 코드) #include #include #include #include using namespace s..
개발 언어 ) C++ Github) https://github.com/Hong-Study/MineSweeper.git GitHub - Hong-Study/MineSweeper Contribute to Hong-Study/MineSweeper development by creating an account on GitHub. github.com 어언 2학년.. C++ 공부를 마치고 무얼 할까 생각을 하고 있었다. 그러다가 문득 게임을 만들어보고 싶어졌고, 한번 간단한 게임을 만들어보자는 취지에서 지뢰찾기 개발 프로젝트를 시작하였다. 게임을 만들기 앞서, 난 한가지 목표를 정했다. 그것은 최소한의 구글링을 통해서 게임을 직접 구현할 것. 그래야 내 실력이 어느정도 성장할 수 있을 것 같았다. 첫 번째로, 게임..
사용언어 ) C++ 백준 : https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제) 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 풀이) 이 문제는 두가지 방식으로 풀 수 있는데, 단순하게 배열을 만들어서 정렬해서 푸는 방식이 있고, C++의 STL중 하..
사용언어 ) C++ 백준 : https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제) N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진..
- Total
- Today
- Yesterday
- 더블버퍼링
- 정보보안
- 야경
- 학교
- 레지스터
- c++
- 스레드풀
- 고양이
- Select모델
- 링크드 리스트
- 백준
- 워셜알고리즘
- 보안
- 개발
- 시스템보안
- 드림핵
- Dreamhack
- 컨퍼런스
- 멀티쓰레드
- 지뢰찾기
- queue
- 자료구조
- 인제대학교
- STL
- BFS
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |