모듈과 사용자 프로그램과의 통신

webispy의 이미지

안녕하세요.

커널 모듈 프로그래밍에 아직 익숙치 않은 초보라서 어려운점이 많습니다. ^^

커널 2.6에서 만든 모듈과 유저프로그램간에 통신(유저프로그램에서 모듈에 명령 내리기 등)을 해야 하거든요.

2.4에서 sys_call_table을 사용해서 잘 안쓰는 시스템콜(17번, SYS_obreak)을 후킹해서 사용했는데..
2.6에서는 sys_call_table대신에 LSM이라는걸 사용하라고 권장하더군요.
(sys_call_table을 사용하려면 커널상에서 패치를 해야 하고요.)

LSM을 써서 어떻게 해야 할지 막막합니다..
linux/security.h 파일을 봤는데 obreak관련 시스템콜이 없네요.

좋은 방법 혹시 아시는분 있으시면 살짝쿵 던져주는 힌트라도 감사히 받겠습니다 ^^

kslee80의 이미지

character device 를 만들어서 활용하는 방법은 어떨지요.

데이터의 송/수신에는 일반적인 read/write 방법을 쓰면 되고..
특정 커맨드를 내려야 한다면 ioctl을 사용하면 됩니다..

글에 쓰신 용도(모듈과 유저프로그램간에 통신) 정도라면,
굳이 시스템 콜 후킹을 고려할 필요는 없다고 생각되네요.