Skip to content
linux kernel module for advanced rickrolling
Branch: master
Clone or download
Latest commit 93dd940 Sep 8, 2011
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE intial commit Sep 7, 2011
Makefile intial commit Sep 7, 2011 moar documentation Sep 8, 2011
kernelroll.c intial commit Sep 7, 2011

Putting rickrolling in kernel space

Kernelroll is a linux kernel module for advanced rickrolling.

It works by patching the open() system call to open a specified music file instead of other music files. Currently, it only checks if the file extension "mp3" is present and calls the original open() with the supplied path instead.

WARNING: There is probably a performance penalty and your kernel might crash at a very inappropriate time and cause data loss! You are responsible for the code you load into your kernel!

But most probably, it will be alright! ;)


You need the address of sys_call_table in your kernel. Use

$ grep sys_call_table /boot/
ffffffff81400300 R sys_call_table

on the respective of your kernel to find out the address

Now fire up kernelroll.c and add yours:

void **sys_call_table = (void **)0xffffffff81400300;

This will probably be simplified in the future, but as sys_call_table isn't exported anymore in 2.6 kernels, we have to use some tricks.

Compile with:

$ make

Load with:

$ insmod kernelroll.ko rollfile=/path/to/rickroll.mp3

Fire up a music player of your choice, play a song and consider yourself kernelrolled. ;)

You can’t perform that action at this time.