⬢ DragonFlyBSD Kernel Audit
DF-5667 / vk_probe6.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-5667 probe v6 — dump struct vm_map of kernel_map (static at 0xf15680
# in this build) to read min_addr/max_addr.
set -u
VK=/usr/obj/usr/src/sys/VKERNEL64/kernel.debug
LOG=/tmp/vk5667.log
cd /usr/obj/usr/src/sys/VKERNEL64
pkill -9 -f kernel.debug 2>/dev/null; sleep 1
rm -f /tmp/vkin $LOG; mkfifo /tmp/vkin
(sleep 600 > /tmp/vkin 2>/dev/null) </dev/null & HOLDER=$!
( exec 3> /tmp/vkin; echo "ufs:vkd0" >&3 ) &
./kernel.debug -m 512m -r /vkroot.img -n 2 -e init_path=/bin/vkinit \
      -s < /tmp/vkin 2>&1 | tee $LOG > /dev/console &
i=0; while [ $i -lt 150 ]; do
  grep -q "Mounting root from ufs:vkd0" $LOG 2>/dev/null && grep -q "^# " $LOG 2>/dev/null && break
  pgrep -f "kernel.debug -m 512m" >/dev/null 2>&1 || break
  sleep 1; i=$((i+1));
done
sleep 4
( exec 4> /tmp/vkin; echo "dd if=/dev/kmem bs=64 count=2 skip=\$(( 0xf15680 / 64 )) 2>/dev/null | od -An -tx1" >&4 )
sleep 6
( exec 4> /tmp/vkin; echo "echo DF5667V6_DONE; reboot" >&4 )
sleep 5
sed -n "/^#/,\$p" $LOG | grep -a -A6 "od -An" | tail -10
kill $HOLDER 2>/dev/null; pkill -9 -f kernel.debug 2>/dev/null
echo V6_DONE