PLT 와 GOT – 리눅스 동적 링킹과 지연 바인딩

공유 라이브러리는 프로세스마다 다른 주소에 올라간다. ASLR이 켜져 있으면 같은 libc.so.6도 실행할 때마다 위치가 바뀐다. 그런데 .text는 읽기 전용으로 매핑되어 여러 프로세스가 물리 페이지를 공유하므로, call printf의 피연산자에 실제 주소를…

Continue ReadingPLT 와 GOT – 리눅스 동적 링킹과 지연 바인딩

Python ctypes로 C 라이브러리 호출하기

파이썬으로 시스템 프로그래밍을 하다 보면 표준 라이브러리에 없는 저수준 기능이 필요한 순간이 온다. 특정 syscall을 직접 호출해야 하거나, 이미 검증된 C 라이브러리(.so)를 재사용하고 싶거나, 순수 파이썬으로는 느린 연산을 C로 짜둔…

Continue ReadingPython ctypes로 C 라이브러리 호출하기