ls명령어를 통해 디렉터리 안을 확인하고 hint파일의 내용을 cat명령어로 봅니다.
key_t = 7530 -> 공유 메모리를 구별하는 식별 번호가 7430임을 확인.
------------
공유 메모리란?
공유 메모리(Shared memory)는 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리입니다..
그림으로 그려서 나타내자면,
원래 프로세스는 이렇게 각각의 메모리를 가지고있는 상태이지만 만약 프로세스 b가 공유 메모리를 만든다면
이렇게 접근 권한이 있는 모든 프로세스에서 공유 메모리로 접근이 가능합니다.
------------
문제에서 공유 메모리를 언급하였고 key값도 주어졌으니 공유 메모리에 접근할 실행파일을 만들어줍시다.
*shmget() 함수*
int shmget(key_t key, int size, int shmflg);
key_t = 공유 메모리를 구별하는 식별 번호
int size = 공유 메모리의 크기
int shmflg = 동작 옵션(IPC_CREAT = key에 해당하는 공유 메모리가 없다면 새로 생성, 만약 있다면 무시하며 생성 권한을 지정해주어야 함)
*shmat() 함수*
void *shmat(int shmid, const void *shmaddr, int shmflg);
int shmid = 공유 메모리를 구별하는 식별 번호
const void *ahmaddr = 첨부되는 어드레스 주소, 일반적으로 null을 저장
int shmflg = 동작 옵션(공유 메모리를 사용 가능으로 설정)
작성한 코드를 실행파일로 바꿔준 후 잘 만들어졌는지 확인해줍니다.
실행시키면 공유 메모리 안의 내용이 문자열로 출력되는 것을 보실 수 있습니다!
'Security > 해커스쿨_FTZ' 카테고리의 다른 글
[해커스쿨_FTZ] level12 (0) | 2018.10.05 |
---|---|
[해커스쿨_FTZ] level11 (0) | 2018.10.05 |
[해커스쿨_FTZ] level9 (0) | 2018.10.04 |
[해커스쿨_FTZ] level8 (0) | 2018.10.03 |
[해커스쿨_FTZ] level7 (0) | 2018.10.03 |