Linuxias
Developer's Delight
Linuxias
  • Category
    • AI
      • Deep Learning
      • Machine Learning
      • Data Science
      • Framework
      • MLOps
      • Paper-Review
      • Tips
    • Android
      • Kotlin
      • Component
      • Compose
      • Compose UI
      • Material
      • Testing
    • Software Architecture
      • Architecture Pattern
      • Design Pattern
      • Requirement Engineering
    • Linux
      • Compile & Link
      • Command & Tool
      • Container
      • Debugging & Testing
      • Profiling
      • Kernel Analysis
      • Server
      • Shell Script
      • System Programming
    • Language
      • Carbon
      • C,C++
      • C#
      • Java
      • Python
    • ETC
      • Data Struct | Algorithm
      • git
      • Security
    • Book
    • 경제공부
      • 세금
      • 부동산
hELLO · Designed By 정상우.
Linuxias

Developer's Delight

Level 10 - Share Memory(공유 메모리)
ETC/Security

Level 10 - Share Memory(공유 메모리)

2013. 11. 4. 22:09
반응형

레벨 10 !


레벨 10의 문제는 공유메모리에 관한 취약점을 묻는 문제이다.!


<Hint>




위의 문제에서 주의에서 읽어야 할 부분은


"공유 메모리를 이용" , "key_t의 값은 7530", "소스를 지우고 나가주세요"


3가지 부분이다. 이 부분을 생각해 보면,


두 사람이 대화를 하는데 그 대화내용이 공유 메모리를 이용하고 있으며,


key_t 7530의 값으로 접근 가능하다.


그리고 그 메모리에 접근할 수 있는 소스를 구성하는 것 이다.



자 !


여기서 공유 메모리에 대해서 알지 못한다면 ! 공부 좀 하고 가자.


기본적으로 어떤 프로세스가 개별적으로 실행되고 있는 상황에서의 메모리 공간의 


할당 및 사용은 아래와 같다.





하지만,


두 프로세스가 메모리를 공유하는 상황이 필요하다면, 이때 공유 메모리 공간을 


사용한다.





각 프로세스는 개별적인 메모리 공간이 존재하면서, 두 프로세스가 함께 사용할 수 


있는 메모리 공간이 존재하게 된다.


그럼 공유메모리를 사용하기 위한 방법에 대해 알아보자.


먼저 공유 메모리를 관리 하는 구조체 내용을 보자.


구조체는 /usr/include/bits/shm.h 에 존재한다.





여러 가지 자료들을 저장하고 보유하고 있는 구조체이다.


그럼 공유메모리를 사용할 수 있도록 제공하는 함수를 보면 아래와 같다.





중점적으로 볼 부분은 shmget 함수의 인자인 key 이다.


각 공유 메모리들은 고유의 key를 가지며, 그 key를 통해 접근을 한다.


shmget() : 공유 메모리 공간을 요청


shmat() : 공유 메모리 사용 가능하도록


shmat() : 프로세스와 공유메모리 분리


shmctl() : 공유메모리 정보 가진 shmid_ds 구조체 제어


위의 함수들이 하는 일을 정리해 보았다.


그럼 이 내용들을 기반으로 코딩을 시작하자.


key 값이 7350이라고 했으니 그 키 값을 이용해 공유 메모리를 요청하는 방식으로


소스를 완성하면 아래와 같다.





그럼 출력 값은 아래와 같이 대화 내용이 출력된다.




반응형
저작자표시 비영리 변경금지 (새창열림)

'ETC > Security' 카테고리의 다른 글

Level 12  (0) 2013.11.21
Level 11  (0) 2013.11.04
Level 9  (0) 2013.10.31
Level 8  (0) 2013.10.31
Level 7  (0) 2013.10.31
    'ETC/Security' 카테고리의 다른 글
    • Level 12
    • Level 11
    • Level 9
    • Level 8
    Linuxias
    Linuxias
    I want to be a S/W developer who benefits people.

    티스토리툴바