Skip to content

Instantly share code, notes, and snippets.

@paranlee
Created February 10, 2023 14:25
Show Gist options
  • Save paranlee/eacb7f9d74cad283345d20ee3777e191 to your computer and use it in GitHub Desktop.
Save paranlee/eacb7f9d74cad283345d20ee3777e191 to your computer and use it in GitHub Desktop.
Ubuntu 22.04
# kernel debug build
apt install -y build-essential crossbuild-essential-arm64 libssl-dev libncurses-dev flex bison libelf-dev dwarves pahole
apt install -y linux-source-5.15.0
wget https://src.fedoraproject.org/rpms/kernel/blob/3fbb080931cb5dddc42d2b92d1bfdb810b76d01e/f/kernel-aarch64-debug-rhel.config
# cp kernel-aarch64-debug-rhel.config linux-source-5.15.0/.config
cd linux-source-5.15.0
make menuconfig
export ARCH=arm64
export $(dpkg-architecture -aarm64)
export CROSS_COMPILE=aarch64-linux-gnu-
make -j8 deb-pkg 2>&1 | tee build.log
# Kernel Debug VM
sudo -s
apt update -y; apt upgrade -y; sudo apt -y install linux-crashdump crash
apt install libasan5 g++ clang -y
# scp -P 2222 *.deb ubuntu@localhost:/home/ubuntu
# dpkg -i *.deb
echo EXCEPTION > /sys/kernel/debug/provoke-crash/DIRECT
@paranlee
Copy link
Author

paranlee commented Feb 11, 2023

Crash types

root@ubuntu:/home/ubuntu# cat /sys/kernel/debug/provoke-crash/DIRECT

Available crash types:
PANIC
BUG
WARNING
WARNING_MESSAGE
EXCEPTION
LOOP
EXHAUST_STACK
CORRUPT_STACK
CORRUPT_STACK_STRONG
REPORT_STACK
CORRUPT_LIST_ADD
CORRUPT_LIST_DEL
STACK_GUARD_PAGE_LEADING
STACK_GUARD_PAGE_TRAILING
UNSET_SMEP
CORRUPT_PAC
UNALIGNED_LOAD_STORE_WRITE
SLAB_LINEAR_OVERFLOW
VMALLOC_LINEAR_OVERFLOW
WRITE_AFTER_FREE
READ_AFTER_FREE
WRITE_BUDDY_AFTER_FREE
READ_BUDDY_AFTER_FREE
SLAB_INIT_ON_ALLOC
BUDDY_INIT_ON_ALLOC
SLAB_FREE_DOUBLE
SLAB_FREE_CROSS
SLAB_FREE_PAGE
SOFTLOCKUP
HARDLOCKUP
SPINLOCKUP
HUNG_TASK
OVERFLOW_SIGNED
OVERFLOW_UNSIGNED
ARRAY_BOUNDS
EXEC_DATA
EXEC_STACK
EXEC_KMALLOC
EXEC_VMALLOC
EXEC_RODATA
EXEC_USERSPACE
EXEC_NULL
ACCESS_USERSPACE
ACCESS_NULL
WRITE_RO
WRITE_RO_AFTER_INIT
WRITE_KERN
REFCOUNT_INC_OVERFLOW
REFCOUNT_ADD_OVERFLOW
REFCOUNT_INC_NOT_ZERO_OVERFLOW
REFCOUNT_ADD_NOT_ZERO_OVERFLOW
REFCOUNT_DEC_ZERO
REFCOUNT_DEC_NEGATIVE
REFCOUNT_DEC_AND_TEST_NEGATIVE
REFCOUNT_SUB_AND_TEST_NEGATIVE
REFCOUNT_INC_ZERO
REFCOUNT_ADD_ZERO
REFCOUNT_INC_SATURATED
REFCOUNT_DEC_SATURATED
REFCOUNT_ADD_SATURATED
REFCOUNT_INC_NOT_ZERO_SATURATED
REFCOUNT_ADD_NOT_ZERO_SATURATED
REFCOUNT_DEC_AND_TEST_SATURATED
REFCOUNT_SUB_AND_TEST_SATURATED
REFCOUNT_TIMING
ATOMIC_TIMING
USERCOPY_HEAP_SIZE_TO
USERCOPY_HEAP_SIZE_FROM
USERCOPY_HEAP_WHITELIST_TO
USERCOPY_HEAP_WHITELIST_FROM
USERCOPY_STACK_FRAME_TO
USERCOPY_STACK_FRAME_FROM
USERCOPY_STACK_BEYOND
USERCOPY_KERNEL
STACKLEAK_ERASING
CFI_FORWARD_PROTO
FORTIFIED_OBJECT
FORTIFIED_SUBOBJECT
FORTIFIED_STRSCPY
DOUBLE_FAULT

root@ubuntu:/home/ubuntu# echo EXEC_DATA > /sys/kernel/debug/provoke-crash/DIRECT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment