Skip to content

neverthe1ess/memory-exploit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

memory-exploit

세종대학교 메모리 익스플로잇: 해킹과 방어 과정 실습 코드 저장소. 메모리 취약점(buffer overflow, shellcode, format string, NX/ASLR 등)의 공격·방어 기법을 주차별로 정리한다.

개발 환경

Apple Silicon(ARM64) 호스트에서 Docker + QEMU 에뮬레이션으로 AMD64 Ubuntu 20.04 환경을 사용한다. .devcontainer/ 기반으로 VS Code Dev Containers에서 바로 열 수 있다.

# VS Code: Command Palette → "Dev Containers: Reopen in Container"

# 또는 CLI
docker build --platform linux/amd64 -t memory-lab .devcontainer/
docker run --platform linux/amd64 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
  -v "$(pwd)":/workspace -it memory-lab

주요 도구

  • 빌드: gcc (multilib -m32/-m64), make, nasm
  • 디버깅: gdb + pwndbg, ltrace, strace, objdump
  • 익스플로잇: pwntools, ROPgadget, one_gadget, checksec
  • 유틸: hexdump, socat, netcat, tmux

사전 조건

  • Docker Desktop → Settings → General → Use Rosetta for x86_64/amd64 emulation 활성화

디렉터리 구조

week4/ — GDB & pwntools 입문

week5/mem-hack/ — 스택 기반 공격·방어

part1/ — 메모리 레이아웃

part2/ — 스택 오버플로우 & 쉘코드

part3/ — Format String, ASLR, SP(Stack Protector)

part4/ — 논리·타입 취약점

컴파일 팁

보호 기법을 끄고 컴파일하는 경우가 많다.

# stack canary · NX · PIE 비활성화, 32비트
gcc -m32 -fno-stack-protector -z execstack -no-pie -o vuln vuln.c

# ASLR 끄기 (시스템 전역, 실습 환경에서만)
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

주의

본 저장소의 모든 코드는 학습·실습 목적이며, 반드시 격리된 실습 환경에서만 실행한다. 실제 시스템·서비스에 대한 무단 사용은 금지된다.

About

메모리 익스플로잇 : 해킹 및 방어 과정 실습 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors