kernel module로 kernel sniffer를 만들고 이를 application level로
dumping해 주려고 합니다.
packet을 계속해서 module에서 application level로 보내줄 수 있는
가능한 방법들이 어떤 것들이 있는지 알고 싶습니다.
한가지 더 궁금한 건 kernel module에서 직접 application level의
함수를 호출할 수 있는 방법이 있는지 궁금합니다.
kernel module로 kernel sniffer를 만들고 이를 application level로
dumping해 주려고 합니다.
packet을 계속해서 module에서 application level로 보내줄 수 있는
가능한 방법들이 어떤 것들이 있는지 알고 싶습니다.
한가지 더 궁금한 건 kernel module에서 직접 application level의
함수를 호출할 수 있는 방법이 있는지 궁금합니다.
음... 인달 application level로 보내줄 수 있는 방법으로는 아래와 같이 할 수 있다고 생각되어집니다...
1. packet 정보를 전달할 수 있는 ioctl을 만들고 이 함수를 application에서 계속적으로 폴링하면서 정보를 가지고 가는 방법
2. Kernel에서 사용되는 Signal을 이용하여 이것의 핸들러를 유저영역에 만들고, Packet을 전달하고자 할 때 강제적으로 Signal을 발생시켜서 유저영역의 핸들러에 정보를 제공
3. Proc File System을 이용하여서 정보를 제공하는 방법
4. Kernel에서 Application Level의 Function을 Call하는 방법 (정상적인 방법이 아니라고 생각됨...)
4번의 방법에 대해서 물어보신거 같은데요... 가능성은 있지만, 어떤 결과를 초래할 지... 그 방법이라 하면, 유저 Function의 Pointer를 Module의 ioctl로 전달받고 Kernel에서는 전달받은 Function Pointer를 이미 선언해놓은 Function Pointer로 매핑시켜서 쓰는 방법입니다만... Kernel 2.4.20-8에서는 테스트해본 결과 유저영역의 Function을 불러도 별 문제없이 동작을 하는 것으로 보이나, 아직 복잡한 동작을 수행하지 않았기 때문에 어떤 문제가 발생할지는 아직 저도 지식이 짧아서 잘 모르겠습니다. 그럼...
Re: module에서 application의 function을 호출하는 방법이 있는
음... 인달 application level로 보내줄 수 있는 방법으로는 아래와 같이 할 수 있다고 생각되어집니다...
1. packet 정보를 전달할 수 있는 ioctl을 만들고 이 함수를 application에서 계속적으로 폴링하면서 정보를 가지고 가는 방법
2. Kernel에서 사용되는 Signal을 이용하여 이것의 핸들러를 유저영역에 만들고, Packet을 전달하고자 할 때 강제적으로 Signal을 발생시켜서 유저영역의 핸들러에 정보를 제공
3. Proc File System을 이용하여서 정보를 제공하는 방법
4. Kernel에서 Application Level의 Function을 Call하는 방법 (정상적인 방법이 아니라고 생각됨...)
4번의 방법에 대해서 물어보신거 같은데요... 가능성은 있지만, 어떤 결과를 초래할 지... 그 방법이라 하면, 유저 Function의 Pointer를 Module의 ioctl로 전달받고 Kernel에서는 전달받은 Function Pointer를 이미 선언해놓은 Function Pointer로 매핑시켜서 쓰는 방법입니다만... Kernel 2.4.20-8에서는 테스트해본 결과 유저영역의 Function을 불러도 별 문제없이 동작을 하는 것으로 보이나, 아직 복잡한 동작을 수행하지 않았기 때문에 어떤 문제가 발생할지는 아직 저도 지식이 짧아서 잘 모르겠습니다. 그럼...
이런 것도 있습니다. :)
#include <linux/kmod.h>
int exec_usermodehelper ( char *program_path, char *argv[], char *envp[])
Be Postive!
댓글 달기