S4NGJI
close
프로필 배경
프로필 로고

S4NGJI

  • 분류 전체보기 (80)
    • Security (13)
      • Reversing (8)
      • Write-up (3)
      • Other (2)
    • Computer Scienc.. (44)
      • Data Structure .. (16)
      • Operating Syste.. (13)
      • Discrete Mathem.. (13)
      • Computer Archit.. (2)
    • Challenge (0)
      • One Day One Sol.. (0)
      • One Day One Pap.. (0)
    • Problem Solving (14)
      • C++ (12)
      • Python (2)
    • 기타 (9)
      • 보안소식 (9)
  • Reversing
  • C++ 백준
  • 알고리즘
  • 운영체제
  • 컴퓨터구조
  • 이산수학
  • 방명록
CPU 레지스터

CPU 레지스터

1. 레지스터의 이해 1) 레지스터 CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치 명령을 처리하기 위한 주소와 명령의 종류를 저장할 수 있는 기억 공간 RAM 보다 빨라야 해서 CPU와 직접 연결되어 있으며 연산 속도가 매우 빠름 (수십~ 수백 배) 특정 주소를 가리키거나 값을 읽어올 수 있어야 함 2) 데이터의 단위 각 레지스터 공간을 파악하고 분석하기 위해 데이터를 해석해야함 레지스터 뿐만아니라 어셈블리어로 시스템 내부적 구성을 확인할 때에도 필요 (1) 비트 컴퓨터 시스템이 데이터를 연산하거나 표현할 수 있는 제일 작은 기본 단위 0과 1 두 가지로 표현 ( 2진수 ) (2) 바이트 8개의 비트를 모아 하나의 바이트 (10진수로는 0~255 / 16진수로는 0~0xFF까지..

  • format_list_bulleted Security/Reversing
  • · 2023. 7. 2.
  • textsms
그리디 알고리즘

그리디 알고리즘

0. 들어가며 매 단계에서 ‘가장 좋아 보이는’ 해답을 선택하는 알고리즘 지역적인 최적의 해결 방법 → 전역적인 최적의 해결 방법 1. 기본적인 그리디 알고리즘 1) 최단 작업 우선 스케줄링 평균 대기 시간을 줄이기 위해 일 처리가 가장 빠른 사람을 맨 앞으로 가장 빠른 사람을 선택→그리디 알고리즘 2) 연습 문제 24: 최단 작업 우선 스케줄링 #include #include #include #include template auto compute_waiting_times(std::vector& service_times) { std::vector W(service_times.size()); W[0] = 0; for(auto i=1; i

  • format_list_bulleted Computer Science/Data Structure & Algorithm
  • · 2023. 7. 2.
  • textsms
분할 정복

분할 정복

0. 들어가며 분할 정복 유형의 알고리즘 주어진 문제를 작은 부분으로 나누고 나눠진 각 부분의 솔루션을 구하고 각 부분 문제의 솔루션을 합쳐서 전체 문제에 대한 솔루션을 구하는 방식 이진 검색, 퀵 정렬, 병합 정렬, 행렬 곱셈, 고속 푸리에 변환, 스카이라인 알고리즘 1. 이진 검색 1) 이진 검색 주어진 시퀀스가 정렬되어 있을 경우 N값이 있는 지 확인 전체 시퀀스 범위를 range로 설정 현재 range의 가운데 원소를 M이라고 하고 M과 N 비교 M=N이면 시퀀스에서 N을 찾았음 → 검색 종료 그렇지 않다면 2가지 규칙에 따라 range 수정 NM이면 range에서 M 왼쪽에 있는 모든 원소 제거 range에 한 개 보다 많은 원소가 남아있다면 2단계로 이동 그렇지 않으면 주어진 시퀀스에 N이 존..

  • format_list_bulleted Computer Science/Data Structure & Algorithm
  • · 2023. 7. 1.
  • textsms
해시 테이블과 블룸 필터

해시 테이블과 블룸 필터

0. 들어가며 룩업(조회) : 특정 원소가 컨테이너에 있는지 확인하거나 또는 컨테이너에서 특정 키에 해당하는 값을 찾는 작업 해당 작업을 훨씬 빠르게 수행할 수 있는 해시 테이블과 블룸 필터 구현 1. 해시 테이블 선형 검색 O(N) / BST 검색 O(log N) 해시 테이블의 핵심은 해싱 1) 해싱 각각의 데이터를 가급적 고유한 숫자 값으로 표현, 같은 숫자 값을 사용하여 데이터의 유무를 확인하거나 원본 데이터를 추출하는 작업 가장 간단한 해시 함수는 나머지를 반환하는 모듈러함수(%)를 사용 x를 입력 → (x%n) 연산 결과 반환 (해시 값 반환) → (x%n)위치에 x 값 삽입 모듈러 함수의 문제점은 서로 다른 데이터에 대해 같은 해시 값 반환 가능 (충돌 가능) 충돌 : 해시 함수가 서로 다른 ..

  • format_list_bulleted Computer Science/Data Structure & Algorithm
  • · 2023. 6. 29.
  • textsms
Robot-Only writeup

Robot-Only writeup

1) 문제 정보 로봇만 이용할 수 있는 도박장이에요. 로봇임을 인증하고 경기에서 이겨 플래그를 구매하세요! 소스코드 #!/usr/bin/env python3 import random import signal import sys MENU_GAMBLE = 1 MENU_VERIFY = 2 MENU_FLAG = 3 MENU_LEAVE = 4 money = 500 verified = False def show_menu(): print('=======================================') print('1. go to gamble') print('2. verify you\\'re a robot') print('3. buy flag') print('4. leave') def get_randn()..

  • format_list_bulleted Security/Write-up
  • · 2023. 6. 28.
  • textsms
트리/힙/그래프(2) - 힙&그래프

트리/힙/그래프(2) - 힙&그래프

1. 힙 원소 삽입 삭제에 대한 O(log N)의 시간 복잡도를 만족하기 위해 완전 이진 트리 사용 힙 구현 시 항상 최대원소가 트리의 루트에 위치 1) 힙 연산 (1) 원소 삽입하기 완전 이진 트리를 유지 → 트리의 마지막 레벨, 마지막 노드 오른쪽에 원소 추가 최대 원소가 트리의 루트에 위치하기 위해 새로 삽입한 원소의 크기를 비교하여 swap하는 과정을 거침 (2) 원소 삭제하기 가장 큰 원소만 삭제 가능 루트 노드와 마지막 노드를 교환한 후 마지막 노드를 삭제 최대 원소가 트리의 루트에 위치하기 위해 다시 루트 노드와 자식 노드의 크기를 비교하여 swap (3) 힙 초기화하기 힙은 불변성을 유지해야함→ 힙 생성 알고리즘으로 업데이트 아래쪽 서브 트리부터 힙 불변 속성을 만족하도록 힙을 업데이트 2..

  • format_list_bulleted Computer Science/Data Structure & Algorithm
  • · 2023. 6. 28.
  • textsms
트리/힙/그래프(1) - 트리

트리/힙/그래프(1) - 트리

비선형 자료 구조 사용해야 하는 경우 판별 데이터 표현과 문제 해결을 위해 트리 / 그래프 구조 구현하여 사용 다양한 방법으로 트리 순회 주어진 상황에 맞게 다양한 방법으로 그래프 표현 1. 비선형 문제 1) 계층적 문제 조직도와 같이 계층적 속성을 가지는 문제 트리라는 자료 구조를 사용 데이터가 저장된 노드와 노드와 노드를 잇는 엣지로 구성 2) 순환 종속성 친구관계도와 같이 그래프로 표현 노드와 엣지로 구성 2. 트리 1) 연습 문제 7: 조직도 구조 만들기 #include #include struct node { std::string position; node* first; node* second; }; struct org_tree { node* root; static org_tree create_..

  • format_list_bulleted Computer Science/Data Structure & Algorithm
  • · 2023. 6. 27.
  • textsms
리스트 / 스택 /큐

리스트 / 스택 /큐

1. 리스트 / 스택 / 큐 1) 연속된 자료구조/연결된 자료구조 (1) 연속된 자료구조 모든 원소를 단일 메모리 청크에 저장 각각의 원소는 모두 같은 타입 사용 → 같은 크기의 메모리 사용 →sizeof(type) 으로 표시 시작주소(Base Address)에서 sizeof(type)을 사용하여 i번째 주소에 접근 가능 BA + i * sizeof(type) 배열의 유형 정적배열 : 선언된 블록이 끝나면 소멸, 스택 영역에 할당되어 자동으로 해제 동적배열 : 배열의 생성 시점과 소멸 시점을 자유롭게 결정, 힙 영역에 할당되어 직접 해제 전까지 유지 (2) 연결된 자료구조 노드를 사용하여 여러 개의 메모리 청크에 데이터를 저장 → 서로 다른 메모리 위치에 저장 연결리스트 각각의 노드는 저장할 데이터와 다..

  • format_list_bulleted Computer Science/Data Structure & Algorithm
  • · 2023. 6. 26.
  • textsms
dreamhack baby-sqlite writeup

dreamhack baby-sqlite writeup

baby-sqlite writeup 1) 문제 확인 sql injection을 통해 flag 획득 로그인 페이지를 통해 sql injection 확인 해당 파이썬 코드에서는 필터링을 통해 sql injection을 방어하고 있음 하지만 쿼리문에 직접 sql 문을 삽입하기에 필터링을 우회하여 flag 획득 가능 2) 문제 풀이 Burp suite를 이용하여 uid와 upw의 입력 값을 확인해본다 쿼리문에 level을 이용하여 필터링 우회 uid=test&upw=test&level=1//union//values(char(97)||char(100)||char(109)||char(105)||char(110)) → 공백대신 /**/ +대신 ||를 이용하여 문자열 admin 접근 3) 정답

  • format_list_bulleted Security/Write-up
  • · 2023. 6. 23.
  • textsms
dreamhack-tools-cyberchef write-up

dreamhack-tools-cyberchef write-up

dreamhack-tools-cyberchef write-up 1) 문제 확인 해당 문제에 포함된 index.html 확인 결과 암호화된 문장 하나와 어떠한 방식으로 암호화 되었는지 확인할 수 있다 따라서 해당 암호화 방식의 역으로 복호화를 진행하면 flag를 획득할 수 있다 2) 문제 풀이 문제정보에서 있는 링크를 통해 복호화 진행 각 복호화 과정을 찾아 해당 암호화 문장을 넣으면 끝! 3)정답 DH{cyberchef-tools-encoderwwowowowo!!!}

  • format_list_bulleted Security/Write-up
  • · 2023. 6. 22.
  • textsms
  • navigate_before
  • 1
  • ···
  • 5
  • 6
  • 7
  • 8
  • navigate_next
인기 글
전체 카테고리
  • 분류 전체보기 (80)
    • Security (13)
      • Reversing (8)
      • Write-up (3)
      • Other (2)
    • Computer Scienc.. (44)
      • Data Structure .. (16)
      • Operating Syste.. (13)
      • Discrete Mathem.. (13)
      • Computer Archit.. (2)
    • Challenge (0)
      • One Day One Sol.. (0)
      • One Day One Pap.. (0)
    • Problem Solving (14)
      • C++ (12)
      • Python (2)
    • 기타 (9)
      • 보안소식 (9)
태그
  • #MST
  • #Python
  • #이진 변환
  • #C++
  • #알고리즘
  • #최단 경로 구하기
  • #프로그래머스
  • #그리디 알고리즘
  • #파이썬
  • #정렬
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바