본문 바로가기

분류 전체보기

(86)
Note 보호되어 있는 글입니다.
[CVE-2017-5941] node-serialize [CVE-2017-5941][1] Node.js에 node-serialize 라이브러리에서 발견된 취약점으로 RCE(Remote Code Execution) 공격이 가능합니다. node-serialize: 0.0.4 버전에서 취약점이 발견되었으며, 현재까지도 패치되지 않은 것으로 알려져 있습니다. Serialization 일부 객체를 나중에 복원할 수 있는 데이터 형식으로 변환하는 과정입니다.[2] 이를 사람들은 객체를 저장소에 저장하거나 통신의 일부로 보내기 위해 객체를 직렬화하는 경우가 많습니다. Deserialization 해당 프로세스의 역순으로 일부 형식에서 구조화된 데이터를 가져와 객체로 재구성합니다. [2] 오늘날 데이터 직렬화에 가장 많이 사용되는 데이터 형식은 JSON이며, 예전에는 XM..
Prototype Pollution Object oriented Language : JavaScript JavaScript는 Java, Python과 같이 객체지향언어지만, 클래스(class)라는 개념이 없습니다. 대신에 기존의 객체를 복사하여 객체를 생성하는 프로토타입(prototype)을 제공합니다. 따라서, JavaScript는 프로토타입 기반의 언어입니다. Prototype JavaScript의 모든 객체는 최소한 하나 이상의 다른 객체로부터 속성(property)과 메서드(method)를 상속(inheritanc)을 받으며, 상속되는 정보를 제공하는 객체를 프로토타입(prototype)이라고 합니다. [1] 단, Object.prototype 객체는 전역 범위를 가진 Root Prototype로 어떠한 프로토타입(prototype..
[Operating System Concept] Processes - Chapter 3 이전 포스팅: Operating System Structure - Chapter 2 본 내용은 Operating System Concept 10th edition 책에 대한 내용을 담고 있습니다. https://www.os-book.com/OS10/ Operating System Concepts - 10th edition www.os-book.com Process Concept 프로세스는 실행 중인 프로그램을 의미하며 실행 파일이 메모리에 로드되면 프로그램은 프로세스가 됩니다. 프로세스의 현재 활동 상태는 Program counter 값과 Processor's registers의 내용에 의해 정해지고, 프로세스의 메모리 레이아웃은 여러 개의 섹션들로 나뉩니다. 프로세스는 기본적으로 실행 단위인 단일 스레..
[Operating System Concept] Operating System Structures - Chapter 2 운영체제 관련 책들 중 공룡책으로 유명한 Operating System Concepts 책을 정리하고자 합니다. 현재 정리하고자 하는 책은 10th edition이며 책에 나와있는 그림을 포함하고 있습니다. https://www.os-book.com/OS10/ Operating System Concepts - 10th edition www.os-book.com Opearting System Services 운영체제는 위 그림과 같이 구성되어있으며, 사용자에게 다양한 기능들을 제공합니다. 흔히 사용자들은 user interface인 GUI, touch screen, command line을 통해 서비스를 이용하며, 운영체제가 제공하는 서비스들에 직접 접근하여 사용하지 않고, system call을 통해 해..
[백준 17780 C++] 새로운 게임 새로운 게임 문제 링크 (BOJ 17780번 문제): https://www.acmicpc.net/problem/17780 17780번: 새로운 게임 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 문제 풀이 *실수하면 안되는 부분* 턴 한 번은 1번 말부터 K번 말까지 순서대로 이동시키는 것이다. 한 말이 이동할 때 위에 올려져 있는 말도 함께 이동하며, 가장 아래에 있는 말만 이동할 수 있다. 말의 이동 방향에 있는 칸에 따라서 말의 이동이 다르며 아래와 같다. 턴이 진행되던 중에 말이 4개 이상 쌓이는 순간 게임이 종료된다. 1. 바..
[백준 10021 C++] Watering the Fields Watering the Fields 문제 링크 (BOJ 10021번 문제): https://www.acmicpc.net/problem/10021 10021번: Watering the Fields Input Details There are 3 fields, at locations (0,2), (5,0), and (4,3). The contractor will only install pipes of cost at least 11. Output Details FJ cannot build a pipe between the fields at (4,3) and (5,0), since its cost would be only 10. He therefore b www.acmicpc.net 문제 설명 BOJ 10021번..
[백준 10986 C++] 나머지 합 백준 10986번 나머지 합 문제 링크 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 문제 풀이 백준 10986번 나머지 합 문제는 누적합을 이용한 문제로 [i, j] 구간 합이 M 으로 나누어 떨어지는 경우의 수를 세는 문제입니다. 해당 문제를 모든 구간 합을 구해서 M으로 나눌 경우, 시간 초과가 발생하게 됩니다. 그 이유는 N 값이 10^6 이기 때문에 O(N^2) 방법으로는 문제를 해결할..