Dork's port

FTZ Level10 Write-up(FTZ Level10 풀이) 본문

Hackerschool FTZ Write-up

FTZ Level10 Write-up(FTZ Level10 풀이)

Dork94 2018. 3. 23. 01:46

문제 10번 시작합니다!



힌트를 보니 공유메모리를 이용해 대화를 나누고 있다고하는군요!


이번 문제는 구글 검색 능력과 약간의 C능력만 있으면 풀 수 있는 문제인 것 같습니다!



먼저 공유메모리에 대한 설명을 보시죠!



shmget() 함수는 공유 메모리를 생성합니다.

공유 메모리는 단어 뜻에서 있듯이 하나의 프로세스에서가 아니라 여러 프로세스가 함께 사용하는 메모리를 말합니다. 공유 메모리를 이용하면 프로세스끼리 통신을 있으며, 같은 데이터를 공유할 있습니다.

이렇게 같은 메모리 영역을 공유하기 위해서는 공유 메모리를 생성한 후에 프로세스의 자신의 영역에 첨부를 후에 마치 자신의 메모리를 사용하듯 사용합니다.

, 공유 메모리를 사용하기 위해서는 공유 메모리를 생성한 후에, 메모리가 필요한 프로세스는 필요할 마다 자신의 프로세스에 첨부를 후에 다른 메모리를 사용하듯 사용하면 되겠습니다.




설명 및 이미지 출처 :  http://forum.falinux.com/zbxe/index.php?mid=C_LIB&document_srl=423456



그럼 공유메모리를 읽는 코드를 작성해보도록 하겠습니다! 가장 중요한건 특정한 Key 값인데 친절히 hint에서 제공해주고 있군요!

아래와 같이 간단하게 짤 수 있습니다! 


소스코드는 이미지 출저에서 제공하는 소스를 제 코딩 스타일에 맞게 조금 변형하였습니다!


소스를 간단히 살펴보면 키값과 사이즈로 id값을 만들고 id값으로 해당 주소를 얻어와서 해당 주소를 문자열로 출력해주는 간단한 소스코드 같네요!


그래서 이걸 컴파일 하고 실행해보도록 하겠습니다!


$ gcc -o shareMem shareMem.c



실행시키면 패스워드를 친절히 구타가 알려주네요!


그럼 역시나 다음문제로 고고싱!


Comments