연구실:System

[DreamHack워게임] Canary

작성자 정보

  • za9uar 작성
  • 작성일

컨텐츠 정보

본문

# Non - Canary 컴파일

gcc -o no_canary canary.c -fno-stack-protector

 

* checksec 결과

3f67066c89fa7dbf0f8486777c5f320bd5c603d7run0.png

 

* disassemble 결과

dae3278407098c262a6ecb35b903d92020513dcc9kus.png

 

# Canary 컴파일

gcc -o canary canary.c

 

* checksec 결과

7b6a571349ca28a6813bbe44b77a05778a2e2278hvok.png

 

* disassemble 결과 (차이점 빨간 Box)

8a11b70985eea0416d1e1d43590ed3d1814cb71beq3r.png

 

※ Canary 우회 기법

init_tls 시 생성되는 랜덤한 fs 값을 알아야함

fs의 값을 설정할 때 호출되는 arch_prctl(int code, unsigned long addr) 시스템 콜에 중단점을 설정하여 알 수 있다

관련자료

댓글 2

captainjack님의 댓글

  • captainjack
  • 작성일
멋지십니다

za9uar님의 댓글의 댓글

  • za9uar
  • 작성일

최근글


새댓글


  • 댓글이 없습니다.