Security

먼저 문제 파일로 주어진 ssp_000.c 파일의 코드 분석을 진행했다. ✅ 문제 코드 분석initialize() 함수: 입력 및 출력 버퍼를 비활성화하고, SIGALRM 시그널을 처리하는 alarm_handler() 함수를 넣어준다. 이 시그널 핸들러는 "TIME OUT" 메시지를 출력하고 프로그램을 종료한다.get_shell() 함수: /bin/sh 쉘을 실행하는 system() 함수를 호출한다.main() 함수: 초기화를 수행하고, 0x40 바이트 크기의 버퍼인 buf를 선언합니다. 그 후, 사용자로부터 최대 0x80 바이트를 읽어 buf에 저장하고 있다.위 함수를 바탕으로 사용자로부터 메모리 주소와 값을 입력받아 해당 메모리 주소에 값을 쓰고 있다. 이때, 해당 부분에서 사용자가 임의의 메모리 주..
어셈블리어와 x86-64(1) 어셈블리 언어기계어와 치환되는 언어로, CPU에 사용되는 ISA (명령어 집합구조)의 종류만큼 많은 수의 어셈블리어가 존재한다.  (2) x86-64 어셈블리✅ 기본구조: x64 어셈블리 언어는 우리가 사용하는 한국어보다는 훨씬 단순한 문법 구조를 지닌다.▶ 동사에 해당하는 명령어(Opcode), 목적어에 해당하는 피연산자(Operand)로 구성된다. ✅ 명령어데이터 이동 : mov, lea산술 연산 : inc, dec, add, sub논리 연산 : and, or, xor, not비교 : cmp, test분기 : jmp, je, jg스택 : push, pop프로시져 : call, ret, leave시스템 콜 : syscall (3) 피연산자✅ 피연산자의 종류상수레지스터메모리..
리눅스 프로세스의 메모리 구조(1) 세그먼트: 리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트로 구분한다.(** 세그먼트 : 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것) 세그먼트의 장점)- 운영체제가 메모리를 용도별로 나누면, 각 용도에 맞게 적절한 권한을 부여할 수 있다- 권한은 읽기, 쓰기, 그리고 실행이 존재하며, CPU는 메모리에 대해 권한이 부여된 행위만 할 수 있다  1. 코드 세그먼트실행 가능한 기계 코드가 위치하는 영역으로 텍스트 세그먼트라고도 불림프로그램이 동작하려면 코드를 실행할 수 있어야 하므로 이 세그먼트에는 읽기 권한과 실행 권한이 부여됨반면 쓰기 권한이 있으면 공격자가 악의적인 코드를 삽입하기가 쉬워지므로, 대부분의 현대 운영체제는 이 세그먼트에 쓰기 권한을 제거..
컴퓨터 구조와 명령어 집합 구조(1) 컴퓨터 구조[ 컴퓨터 구조(Computer Architecture)란? ]컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법 1. 기능 구조의 설계: 컴퓨터가 효율적인 연산을 위해 어떤 기능들이 필요한지 고민하고 설계종류) 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조 2. 명령어 집합구조: CPU가 처리해야하는 명령어를 설계하는 분야종류) ARM, MIPS, AVR, 인텔의 x86 및 x86-64 3. 마이크로 아키텍처 → CPU의 하드웨어적 설계: 명령어 집합을 효율적으로 처리할 수 있도록, CPU의 회로를 설계종류) 캐시 설계, 파이프라이닝, 슈퍼 스칼라, 분기 예측, 비순차적 명령어 처리 4. 하드웨어 및..
Webpack 이란? : 최신 프런트엔드 프레임워크에서 가장 많이 사용되는 모듈 번들러(Module Bundler) 모듈 번들러 웹 애플리케이션을 구성하는 자원(HTML, CSS, Javscript, Images 등)을 모두 각각의 모듈로 보고 이를 조합해서 병합된 하나의 결과물을 만드는 도구를 의미 웹팩에서의 모듈 자바스크립트 모듈에만 국한되지 않고 웹 애플리케이션을 구성하는 모든 자원을 의미한다. 웹 애플리케이션을 제작하려면 HTML, CSS, Javascript, Images, Font 등 많은 파일들이 필요하다. 이 파일 하나하나가 모두 모듈이다. 모듈 번들링 아래 그림과 같이 웹 애플리케이션을 구성하는 몇십, 몇백개의 자원들을 하나의 파일로 병합 및 압축 해주는 동작 ▶ 빌드, 번들링, 변환이 ..
보호되어 있는 글입니다.
veriperi
'Security' 카테고리의 글 목록 (5 Page)