Ho letto questo Il kernel di Linux usa DEP per memoria del kernel?
ma sto eseguendo il debug del kernel linux (x86_64) su Vmware usando lo stub di vmware. Ho allegato gdb al mio kernel linux. la versione del kernel è 3.x
e ho cambiato la memoria eseguibile del kernel linux in un unico punto
(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
perché è così? è perché sono nella macchina virtuale?
seconda domanda. So che posso elencare le pagine usando questo 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
ma come elencare i permessi per queste pagine - rwx?