[코딩테스트] 백준 1068번 트리
·
CS/Algorithm
문제 : https://www.acmicpc.net/problem/1068문제 노드를 지우면, 자식노드까지 전부 삭제하는 문제이다입력 & 출력5-1 0 0 1 11즉, 이 트리는 루트노드는 아무런 부모를 가지고 있지 않고, 1번 / 2번 노드는 0번 노드 (루트 노드)를 부모 노드로 가지고 있으며3번 /4번 노드는 1번 노드를 부모 노드로 가지고 있다.따라서 1번 노드를 지우게 되면 루트노드와 2번 노드만 남으므로최종 남는 리프노드의 개수는 1개이다.1 이 출력된다. 풀이#include using namespace std;int tree[51];int N;void deleteA(int x){ tree[x] = -2; for(int i = 0; i delateA라는 함수를 통해 어떠한 노드를 삭..
Network | 네트워크 (용어 및 동작)
·
CS/Computer Network
용어네트워크데이터 전송과 데이터 처리를 유기적으로 결합하여 어떤 목적이나 기능을 수행하는 시스템데이터 전송 : 컴퓨터에 의해 처리된 정보를 전송하는 것데이터 처리 : 컴퓨터에서 정보를 처리하는 것LAN(Local Area Network)LAN은 일반적으로 300m 이하의 통신 회선으로 연결된 PC 메인 프레임, 워크 스테이션들의 집합종단 시스템을 가장자리 라우터에 연결하는데 사용됨프로토콜 (Protocol) 서로 다른 시스템에 있는 두 개의 엔티티가 통신하려면 서로 동일 약속이 필요함. 이러한 통신 규약들을 의미함인터넷 정보의 송 수신을 제어한다.ex) TCP / IP패킷 (packet)송신 중단 시스템에서 수신 종단 시스템(목적지)로 보내지는 것송신 종단 시스템이 보내고자 하는 데이터를 세그먼트로 나누..
정보 보안 개론 | 보안 기초
·
Hacking
보안의 중요성유비쿼터스 (Ubiquitous) : 언제, 어디서나 네트워크를 통해 컴퓨터 시스템에 접근하여 원하는 정보를 얻고 원하는 서비스를 사용할 수 있는 컴퓨팅 환경IOT (Internet of Things) : 모든 사물이 인터넷으로 연결되어 자동으로 동작하며 능동적으로 제어할 수 있는 환경  이러한 시대에 통제의 부재로 인해 위험한 일이 발생할 수 있음 해킹Definition | 정의Hacking is about finding inventive solutions using the properties and laws of a system in ways not intended by its designer디자이너가 의도하지 않았던 방법으로 시스템의 특성이나 규칙을 이용한 창조적인 사용법을 찾는 것 T..
[Assembly] 산술 연산
·
CS/Computer Architecture
incincoperand1inc eaxeax에 +1을 해주는 코드(eax++)operand1 +1operand1 : 레지스터 or 메모리CF를 설정하지 않음 Exampleinc al : al에 1을 더한 후 다시 al에 저장함 * al에 0xff가 저장되어있다고 가정inc al : al에 1을 더한 후, 다시 al에 저장하면 al에는 0이 저장되고, 자리 올림이 발생했지만 CF가 설정되지 않음> CF와 OF의 차이를 이해하면 OF도 설정되지 않는다는 것을 알 수 있다 (부호 반전이 없기 때문에)  decdecoperand1deceaxeax에 -1을 해주는 코드 (eax--)operand1 -1operand1 : 레지스터 or 메모리CF를 설정하지 않음 Exampledec al : al에 1을 뺀 후 다시..
Internet | 인터넷
·
CS/Computer Network
The internet allows distributed applications running on it's end system to exchange data어플리케이션이 종단 시스템에서 데이터를 교환하게 해주는 것 인터넷은 전 세계적으로 수많은 컴퓨팅 장치들을 연결해주는 네트워크이다. end system (종단 시스템) / host (호스트)클라이언트 / 서버컴퓨터 네트워크에 연결된 장치 Service인터넷은 두 가지 서비스를 제공한다A connection-oriented reliable service : 연결 지향형 서비스A connectionless unreliable service : 비연결형 서비스 Connection-oriented reliable service | 연결 지향형 서비스The c..
[Assembly] 데이터 이동
·
CS/Computer Architecture
movmovoperand 1operand 2moveax1eax 레지스터에 값 1을 넣는 코드operand2를 operand1로 이동한다operand1 : 레지스터 or 메모리 (상수는 불가능함)operand2 : 상수 or 레지스터 or 메모리두 피연산자의 크기가 일치해야함두 피연산자에 동시에 메모리가 올 수 없음메모리는 TYPE PTR [레지스터 or 상수]로 표기하는데, TYPE에는 BYTE(1), WORD(2), DWORD(4) QWORD(8)이 올 수 있다. *mov는 "값"과 연관이 있다고 생각하면 쉬워짐 Example mov rax, 0x1 : rax 레지스터에 0x1을 대입한다mov rax, rbx : rbx 레지스터의 값을 레지스터에 대입한다mov QWORD PTR [0x400000], r..
[Exploit] Return Oriented Programming (ROP chain)
·
Hacking/Pwnable
Return Gadgetret로 끝나는 어셈블리 조각원하는 명령어 + ret으로 이루어진 가젯들이다가젯(gadgets) : 해당 프로그램이 사용하는 메모리에 이미 있는 기계 명령어  ROP chain리턴 가젯을 사용하여 복잡한 실행 흐름을 구현하는데, 이를 통해 ret2libc, ret2dl-reslove, GOT overwiret 등 payload를 구성할 수 있다.원하는 가젯들을 조합하여 원하는 흐름으로 이어지게 하기 때문에, 한번에 실행 흐름을 제어할 수 없을 때 주로 사용한다.따라서 보통은 ret2libc 등과 조합하여, NX를 bypass 하기 위해 많이 사용된다 * 보통은 pie가 걸려있지 않아야 주소가 code, data segment의 주소가 변경되지 않기에 해당 보호기법이 없어야 사용하기..
[Pwnable] Return to Library
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/353 Return to LibraryDescription Exploit Tech: Return to Library에서 실습하는 문제입니다.dreamhack.io Environment Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)NX enabled : stack, heap 등에 실행 권한이 없음 ASLR 적용됨PIE 없음 Code Analysis// Name: rtl.c// Compile: gcc -o rtl rtl.c -fno-..
Network Layer | 네트워크 계층구조
·
CS/Computer Network
계층구조크고 복잡한 시스템의 잘 정의된 특정 부분을 논의할 수 있도록 해준다 (단순화 해줌)한 계층의 구현이 변화하더라도, 시스템의 나머지 부분은 변화하지 않는다.네트워크 계층 구조를 나타내는 방법에는 크게 두 가지가 있는데OSI 7계층TCP/IP 5계층이 있다. 구조적 차이는 OSI 7계층의 5,6,7 계층이 합쳐져 TCP/IP 5계층의 5계층이 된 것이다.  계층 구조의 각 계층은 그 계층에서 어떤 동작을 취하고그 계층 바로 아래 계층 서비스를 사용함으로써 서비스를 제공한다. Service Model한 계층은 상위 계층에게 제공하는 서비스(Service)에 관심을 가짐각 계층은 그 계층에서 어떤 행위를 하며, 아래 계층의 Service를 사용함각 계층은 독립적이지만, 서로 영향을 주고 받음 TCP/I..
Wireshark 캡처하기 (BIOCPROMISC: Operation not supported on socket)
·
CS/Computer Network
오류Wireshark를 이용하여 Ethernet 등을 캡처하고자 하면 이런 경고문이 뜬다BIOCPROMISC: Operation not supported on socket이다이 뜻은 프로미스큐어스 모드'(Promiscuous Mode)로 전환하려 할 때 발생하는 문제이다. 프로미스큐어스 모드란, 내 MAC주소가 아닌 곳으로 들어오는 패킷까지 전부 패킷 필터링을 하지 않도록 해주는 모드이다설정해두면 위험하니 꺼두도록 하자 ^_^ 해결Wireshark의 상단에서 Capture > Options를 선택하면이러한 창이 뜬다.  여기에서 Enable promiscuous mod on all interface라고 체크 되어있는 부분을 해제해준 후, Start하면 정상적으로 패킷캡처가 이루어질 수 있다.