He leído esto ¿El kernel de Linux usa DEP para ¿Memoria del núcleo?
pero estoy depurando el kernel de Linux (x86_64) en Vmware usando el código auxiliar de vmware. He adjuntado gdb a mi kernel de linux. la versión del kernel es 3.x
y cambié la memoria ejecutable del núcleo de Linux en un solo lugar
(gdb) x/i $rip
=> 0xffffffff81190930 <sys_getdents>: push rbp
(gdb) set{long}0xffffffff81190930=0
(gdb) x/x 0xffffffff81190930
0xffffffff81190930 <sys_getdents>: 0x00000000
(gdb) x/i $rip
=> 0xffffffff81190930 <sys_getdents>: add BYTE PTR [rax],al
¿Por qué es eso? ¿Esto es porque estoy en la máquina virtual?
segunda pregunta. Sé que puedo listar páginas usando este comando
(gdb) info files
Symbols from "/home/a/vmlinux".
Remote serial target in gdb-specific protocol:
Debugging a target over a serial line.
While running this, GDB does not access memory from...
Local exec file:
'/home/a/vmlinux', file type elf64-x86-64.
warning: Cannot find section for the entry point of /home/a/vmlinux.
Entry point: 0x1000000
0xffffffff81000000 - 0xffffffff815f795f is .text
0xffffffff815f7960 - 0xffffffff815f7adc is .notes
0xffffffff815f7ae0 - 0xffffffff815fbb00 is __ex_table
0xffffffff81600000 - 0xffffffff818427ce is .rodata
0xffffffff818427d0 - 0xffffffff81849ed4 is __bug_table
pero, ¿cómo listar permisos para estas páginas - rwx?