Programming Tip

main() 함수 이전 또는 이후에 함수 호출하는 3 가지 방법

main() 함수 이전 또는 이후에 함수 호출하는 3 가지 방법

여러분이 정의한 함수를 main 함수 이전에 호출되도록 할 수 있다는 것을 알고 계신가요? 보통은 함수를 정의하면 main 내에서 호출해서 사용하므로 main 시작 이전 또는 이후에 어떤 함수를 호출한다는 것은 불가능한 것으로 알고 있을겁니다. 하지만, 이를...

LD_PRELOAD 환경변수를 이용한 공유라이브러리(Dynamic Library) 후킹(Hooking)

LD_PRELOAD 환경변수를 이용한 공유라이브러리(Dynamic Library) 후킹(Hooking)

여러분은 후킹(Hooking)이라는 것이 무엇인지 알고 계실 것입니다. 아직 이것이 무엇인지 모르시는 분은 http://ko.wikipedia.org/wiki/%ED%9B%84%ED%82%B9 에서 확인하고 다시 돌아오시길 바랍니다. 한마디로 중간에서 무언가를 가로채서 원래의 기능을 자기가 다시 정의한 기능으로 교체하는 기술이라고 보면 됩니다. 이러한 기술은 아주 여러 분야에서...

스택침범(Stack Overflow)을 막는 스택보호 (Stack Protection) 컴파일 옵션 : -fstack-protector

경험이 많은 프로그래머이건 적은 프로그래머이건 겪을 때마다 힘든 문제가 하나 있죠? ^^ 바로 문제를 발생시키는 코드는 잘 넘어가고 엉뚱한 어디에선가 SIGBUS 를 맞거나 이상한 동작을 하는 경우입니다. 차라리 문제를 발생시키는 코드에서 바로 죽어버리면 문제 해결이...

blosc – memcpy 보다 빠른 메모리 read/write

blosc – memcpy 보다 빠른 메모리 read/write

메모리에 대한 접근이 워낙 느리니 캐쉬와 압축을 이용해서 memcpy 보다 더 빠르게 하는 기술도 있군요. blosc.orgSending Data from Memory to CPU (and back) Faster than Memcpy by Francesc AltedWhy Modern CPUs Are stArving And WhAt...

shared library 사용하기

shared library 사용하기

1. library source 파일 작성 /* shlibtest.c */ #include <stdio.h> int aa() {     printf(“aa\n”); } int bb() {     printf(“bb\n”); }   2. shared library 빌드 gcc -shared -fPIC -o shlibtest.so shlibtest.c   3....