728x90

정보보안 공부/CTF(해킹) 24

[포너블] 리눅스 프로세스의 메모리 구조

1. 세그먼트 리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트로 나눈다. 세그먼트란 데이터의 용도별로 메모리를 나눈 것인데 크게 코드 세그먼트, 데이터 세그먼트, BSS 세그먼트, 힙 세그먼트, 그리고 스택 세그먼트로 구분한다. 운영체제가 메모리를 용도별로 나누면 각각의 세그먼트에 권한을 부여할 수 있다는 장점이 있다. (읽기 쓰기 실행 권한이 있으며 CPU는 이 권한에 따라 접근할 수 있다.) 1.1 코드 세그먼트 실행가능한 기계 코드가 저장되는 곳이다. 프로그램이 동작하려면 코드를 읽고 실행시켜야 하기 때문에 읽기, 실행 권한이 부여된다. 쓰기 권한이 부여되면 공격자가 악의적인 코드를 삽입하기 쉬우므로 쓰기 권한은 부여되지 않는다. 예를들어 정수 31337을 반환하는 main함수가 컴파일 되면..

[CTF] 포렌식 포테이토 디지털 포렌식 미궁 게임 CLEAR

0. 서론 7월 13일 정보보호의 날을 맞아 과 동아리 I.Sly()에서 미궁게임을 개발하여 배포했다. 해당 미궁은 디지털 포렌식과 관련된 문제로 이루어져 있으며 문제 난이도는 비전공자도 충분히 풀 수 있는 정도(물론 나는 응애전공자지만) 라고 하길래 새벽 네 시쯤 잠이 안와서 도전해보기로 하였다. 난 CTF 문제를 풀어본 적도 없고 전공에서 배운 gdb디버거 등도 따라가기 어려워 했기 때문에 한 두 문제 풀다가 포기할 줄 알고 가볍게 시작했는데, 의외로.. 다 풀어내서 공부한 것들을 정리할 겸 백업해둔다. *다른 유저들의 플레이를 위해 flag 값은 적지 않았습니다. (정보 공유용x 그냥 내 기록용) *모든 저작권은 미궁 게임을 개발한 동아리 학생들에게 있습니다. (관련 글 : https://hacki..

728x90