Is there a possibility to access the sys_call_table
from my own module for Linux kernel 2.6+?
What are some links to articles or how-tos? I need a method without the necessity to modify the kernel source code. I know it was easy on the Linux 2.4 kernel, and you could use the external symbol. However, this ability was removed from kernel 2.6.
As what you are really trying to do is replace a system call by your own function, I would recommend using kprobes for this kind of job, you can easily break on any kernel address (or symbol (e.g., sys_exit and sys_whateversyscall) and alter the execution path, all of this at runtime, with a kernel module if you need to :) It has a very low overhead.
Kprobes (or jprobes if you only to add your code to the system call as opposed to replace it completely) work by dynamically replacing an instruction (e.g. first instruction of your system call entry) by a break (e.g., int3 on x86). Inside the do_int3 handler, a notifier notifies kprobes, which in turn passes the execution to your registered function, from which point you can do almost anything.
A very good documentation is given in Documentation/kprobes.txt so as a tiny example in file samples/kprobes/kprobes_example.c (in this example, they break on do_fork to log each fork on the system). It has a very simple API and is very portable nowadays.