diff options
author | FreeArtMan <dos21h@gmail.com> | 2016-08-22 18:12:37 +0100 |
---|---|---|
committer | FreeArtMan <dos21h@gmail.com> | 2016-08-22 18:12:37 +0100 |
commit | 8e04380436866e5d35fc674232774cb51faee9c7 (patch) | |
tree | 1d6acd31aacb6d958312c7d20c510abbb01d7a1c /md | |
parent | 519253628e1847e60dca556221bbe0cda13f1172 (diff) | |
download | md-content-8e04380436866e5d35fc674232774cb51faee9c7.tar.gz md-content-8e04380436866e5d35fc674232774cb51faee9c7.zip |
Added kernel hello world compilation
Diffstat (limited to 'md')
-rw-r--r-- | md/writeup.md | 1 | ||||
-rw-r--r-- | md/writeup/kernel_hello_world.md | 54 |
2 files changed, 55 insertions, 0 deletions
diff --git a/md/writeup.md b/md/writeup.md index e3758f7..c3e3e7b 100644 --- a/md/writeup.md +++ b/md/writeup.md @@ -12,6 +12,7 @@ [Solving crackmes](writeup/crackme.md) [Using iptables](writeup/using_iptables.md) [GCC inline assembly](writeup/gcc_inline_assembly.md) +[Kernel:Hello World](writeup/kernel_hello_world.md) ## Projects diff --git a/md/writeup/kernel_hello_world.md b/md/writeup/kernel_hello_world.md new file mode 100644 index 0000000..efad275 --- /dev/null +++ b/md/writeup/kernel_hello_world.md @@ -0,0 +1,54 @@ +# Kernel compile "Hello world" + +Compile minimal linux kernel module. + +## Files + +You need to create to files __Makefile__ and __hello_world.c__. + +__Makefile__ +``` +obj-m += hello_world.o + +KDIR ?= /lib/modules/$(shell uname -r)/build + +all: + make -C $(KDIR) M=$(PWD) modules + +clean: + make -C $(KDIR) M=$(PWD) clean +``` + + +__hello_world.c__ +``` +//http://www.tldp.org/LDP/lkmpg/2.4/html/c147.htm +#include <linux/module.h> /* Needed by all modules */ +#include <linux/kernel.h> + +int hello_world_init( void ) +{ + printk(KERN_DEBUG "Hello World!\n"); + return 0; +} + +void hello_world_exit( void ) +{ + printk(KERN_DEBUG "Exit Hello World!\n"); +} + +module_init( hello_world_init ); +module_exit( hello_world_exit ); + +MODULE_LICENSE("GPL"); +``` + + + +##Compile + +Now if you havent done so ... install kernel headers of kernel that your system have now. And everything should be there. + +``` +make +``` |