TRIMUI SMART
dump kernel from memory
/proc/iomem
# cat /proc/iomem 01c02000-01c024dc : sunxi_dmac 01c0f000-01c0ffff : sunxi-mmc 01c10000-01c10fff : sunxi-mmc 01c11000-01c11fff : sunxi-mmc 01c28000-01c283ff : uart 01c28400-01c287ff : uart 01c28800-01c28bff : uart 01c2b000-01c2b3ff : twi.1 01c2b000-01c2b3ff : twi.1 01c68000-01c68fff : spi.0 01c68000-01c68fff : spi 40000000-47ffffff : System RAM 40008000-40660fff : Kernel code 40686000-4072c1af : Kernel data f1000000-f1200000 : de f1c0c000-f1c0c3fc : lcd0
main.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/mman.h> #include <unistd.h> #include <time.h> int main ( int argc, char * argv[]) { int md = open ( "/dev/mem" , O_RDWR ); void *mem = mmap (0, 0x800000, PROT_READ | PROT_WRITE , MAP_SHARED , md, 0x40000000); int kd = open ( "kernel.mem" , O_RDWR | O_CREAT ); write (kd, mem, 0x800000); close (kd); close (md); return 0; } |
/proc/kallsym
# cat /proc/kallsym c000a000 T asm_do_IRQ c000a000 T _stext c000a000 T __exception_text_start c000a014 T do_undefinstr c000a168 T do_DataAbort c000a20c T do_PrefetchAbort c000a2b0 T gic_handle_irq
0x4000a000 = 0xc000a000