반응형

우선 wiki 에서 본 결과

vDSOs (virtual dynamically linked shared objects) are a way to export kernel space routines to user space applications, using standard mechanisms forlinking and loading i.e. standard Executable and Linkable Format (ELF) format.[1][2]

It helps to reduce the calling overhead on simple kernel routines, and also can work as a way to select the best system call method on some architectures.

An advantage over other methods is that such exported routines can provide proper DWARF (debug with attributed record format) debugging information.

Implementation generally implies hooks in the dynamic linker to find the vDSOs.


즉, kernel space routines를 user space application으로 export 하기위한 방법이다. 

이부분을 공부하게 된 이유는 .. codegate작년 문제 (codegate Prequals 2014)중에 minibomb 문제를 풀면서 

다른 블로그글을 보고있는데 


처음 보는 영역을 디스어셈 하는것을 볼 수 있었다. 그래서 찾게되었다..

cat /proc /self/maps 


좀더 자세한 내용은 linux manual page 내용을 발췌한것이다 참고바란다 .

The "vDSO" (virtual dynamic shared object) is a small shared library
       that the kernel automatically maps into the address space of all
       user-space applications.  Applications usually do not need to concern
       themselves with these details as the vDSO is most commonly called by
       the C library.  This way you can code in the normal way using
       standard functions and the C library will take care of using any
       functionality that is available via the vDSO.

       Why does the vDSO exist at all?  There are some system calls the
       kernel provides that user-space code ends up using frequently, to the
       point that such calls can dominate overall performance.  This is due
       both to the frequency of the call as well as the context-switch
       overhead that results from exiting user space and entering the
       kernel.

       The rest of this documentation is geared toward the curious and/or C
       library writers rather than general developers.  If you're trying to
       call the vDSO in your own application rather than using the C
       library, you're most likely doing it wrong.

원본 페이지 : http://man7.org/linux/man-pages/man7/vdso.7.html

vdso영역을 공부하려하다보니까 자연스럽게 core파일에 대한 내용을 접하게되었다.

좋은 블로그가 있어서 URL을 추가한다.

http://studyfoss.egloos.com/5183167

http://egloos.zum.com/studyfoss/v/5183491


cat /proc/self/maps 라는 명령어에서 사용하는 경로들의 각각의 특징은

http://egloos.zum.com/powerenter/v/10949008

반응형

'과거의 컴퓨터 공부 > System Hacking' 카테고리의 다른 글

GOT OverWrite,FAKE EBP  (0) 2014.11.30
Shared Library Hijacking  (0) 2014.08.16
GOT OverWrite  (0) 2014.05.16
RTL 문서  (0) 2014.05.08
BOF 문서  (0) 2014.05.07
,