Date: Thu, 25 Feb 2010 02:55:52 +0100 From: "C. P. Ghost" <cpghost@cordula.ws> To: Robert Bonomi <bonomi@mail.r-bonomi.com> Cc: questions@freebsd.org Subject: Re: how to disable loadable kernel moduels? Message-ID: <d74eb87c1002241755q576ed48bwd04fbbedbe290bc9@mail.gmail.com> In-Reply-To: <201002242247.o1OMlPov010540@mail.r-bonomi.com> References: <201002242247.o1OMlPov010540@mail.r-bonomi.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 24, 2010 at 11:47 PM, Robert Bonomi
<bonomi@mail.r-bonomi.com> wrote:
>
> Can somebody point me towrads the source module(s) that contain the
> syscall 'dispatch' code and/or the loadable module implementation.
According to /usr/src/sys/kern/syscalls.master, the kldload() syscall
ID is 304:
304 AUE_MODLOAD STD { int kldload(const char *file); }
You may also want to look at /usr/src/sys/kern/kern_linker.c
which contains kern_kldload(), kldload() and others. You could
try to short-circuit one of them, by returning immediately some
appropriate E* error code, as in:
int
kern_kldload(struct thread *td, const char *file, int *fileid)
{
#ifdef DISABLE_KLDLOAD_ALWAYS
return ENOSYS;
#endif
/* the remaining of kern_kldload() goes here... */
}
Maybe this would be enough to disable KLD loading entirely?
> I'm looking to either disable the kernel function ENTIRELY, *or* (in
> the spirit of 'making life difficult for the bad guys') letting it
> do everything it normally does, *except* actually installing the module
> _functionality_ -- i.e., kldload executes w/o error, kldstat shows that
> the module "is" loaded, etc.; but any attempt to _use_ the functionality
> therein is a no-op.
Regards,
-cpghost.
--
Cordula's Web. http://www.cordula.ws/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d74eb87c1002241755q576ed48bwd04fbbedbe290bc9>
