lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 22 May 2008 16:31:32 +0200
From:	Helge Hafting <helge.hafting@...el.hist.no>
To:	Bosko Radivojevic <bosko.radivojevic@...il.com>
CC:	lkml <linux-kernel@...r.kernel.org>
Subject: Re: Inserting code from userspace to kernel space

Bosko Radivojevic wrote:
> Hi!
>
> I'm looking for a way to insert code from user space to the kernel
> space, but without using kernel module. Actually, we are working on a
> system that has to allow end user to change part of code (one or two
> functions) that is executed from the kernel space.
>
> For now we have two different kernel modules, one exporting a function
> which another module uses. Process of compiling kernel module is quite
> ineligible for standard end user (along with the requirement to
> support multi platform cross compiling) compared to just cross
> compiling a simple code that doesn't use any libraries than libc.
>
> I know this sounds quite weird, but maybe there is a project that can help us ;)
>   
Consider telling exactly what you want to do, what is this for?
Perhaps there is a better/more standard way of doing it.

Looks like your end users are capable of compiling ordinary code
but not kernel modules? If this is so, consider just automating
the kernel module part for them. I.e. provide a module that call
a function, they can then make that function and you can make a script
that link their function with your kernel module. Then they won't need
to know much about kernel modules.

But the kernel module can't use libc (and what would you want to
use libc for anyway? libc mostly helps userspace communicate
with the kernel, no _need_ for that when your code is in the
kernel already.)

Or do you merely need your kernel code to run a user supplied program
now and then?  The kernel code can't call userspace code directly,
but you could make a device driver for this purpose.

The userspace code can read from the device, and block. When the kernel
need to run userspace code, it unblocks the userspace program.  If you
need to transfer data to userspace, simply let the userpace program
read the data from your device. and write stuff back, if needed.




--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ