0

My current understanding is that the user does not have any way of knowing the kernel address space layout due to the protection mechanisms such as Kernel Address Space Layout Randomization (KASLR).

However, I see that if I use cat /proc/iomem it shows address ranges for some memory-mapped devices and for kernel code and kernel data.

00000000-00000fff : reserved
00001000-0009dfff : System RAM
0009e000-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:80
  000a0000-000bffff : PCI Bus 0000:00
000c0000-000c7fff : Video ROM
000cc800-000cd7ff : Adapter ROM
000e0000-000fffff : reserved
  000f0000-000fffff : System ROM
00100000-783d5fff : System RAM
  2a000000-347fffff : Crash kernel
783d6000-797d5fff : reserved
797d6000-79bf3fff : System RAM
79bf4000-7bbf3fff : reserved
7bbf4000-7e2fefff : System RAM
7e2ff000-7eafefff : reserved
7eaff000-7eefefff : ACPI Non-volatile Storage
7eeff000-7effefff : ACPI Tables
7efff000-7effffff : System RAM
7f000000-8fffffff : reserved
  80000000-8fffffff : PCI MMCONFIG 0000 [bus 00-ff]
90000000-dfffefff : PCI Bus 0000:00
  90000000-910fffff : PCI Bus 0000:04
    90000000-910fffff : PCI Bus 0000:05
      90000000-90ffffff : 0000:05:00.0
      91000000-9101ffff : 0000:05:00.0
  91100000-911fffff : PCI Bus 0000:02
    91100000-9111ffff : 0000:02:00.3
      91100000-9111ffff : igb
    91120000-9113ffff : 0000:02:00.0
      91120000-9113ffff : igb
    91140000-91143fff : 0000:02:00.3
      91140000-91143fff : igb
    91144000-91147fff : 0000:02:00.0
      91144000-91147fff : igb
  91200000-91203fff : 0000:00:04.0
    91200000-91203fff : ioatdma
  91204000-91207fff : 0000:00:04.1
    91204000-91207fff : ioatdma
  91208000-9120bfff : 0000:00:04.2
    91208000-9120bfff : ioatdma
  9120c000-9120ffff : 0000:00:04.3
    9120c000-9120ffff : ioatdma
  91210000-91213fff : 0000:00:04.4
    91210000-91213fff : ioatdma
  91214000-91217fff : 0000:00:04.5
    91214000-91217fff : ioatdma
  91218000-9121bfff : 0000:00:04.6
    91218000-9121bfff : ioatdma
  9121c000-9121ffff : 0000:00:04.7
    9121c000-9121ffff : ioatdma
  91220000-9122000f : 0000:00:16.0
  91221000-9122100f : 0000:00:16.1
  91222000-912220ff : 0000:00:1f.3
  91224000-912247ff : 0000:00:1f.2
    91224000-912247ff : ahci
  91225000-912253ff : 0000:00:1d.0
    91225000-912253ff : ehci_hcd
  91226000-912263ff : 0000:00:1a.0
    91226000-912263ff : ehci_hcd
  91227000-91227fff : 0000:00:05.4
  91300000-913fffff : PCI Bus 0000:02
    91300000-9131ffff : 0000:02:00.0
    91320000-9133ffff : 0000:02:00.0
    91340000-9135ffff : 0000:02:00.3
    91360000-9137ffff : 0000:02:00.3
dffff000-dfffffff : pnp 00:00
e0000000-fbffffff : PCI Bus 0000:80
  e0000000-e0003fff : 0000:80:04.0
    e0000000-e0003fff : ioatdma
  e0004000-e0007fff : 0000:80:04.1
    e0004000-e0007fff : ioatdma
  e0008000-e000bfff : 0000:80:04.2
    e0008000-e000bfff : ioatdma
  e000c000-e000ffff : 0000:80:04.3
    e000c000-e000ffff : ioatdma
  e0010000-e0013fff : 0000:80:04.4
    e0010000-e0013fff : ioatdma
  e0014000-e0017fff : 0000:80:04.5
    e0014000-e0017fff : ioatdma
  e0018000-e001bfff : 0000:80:04.6
    e0018000-e001bfff : ioatdma
  e001c000-e001ffff : 0000:80:04.7
    e001c000-e001ffff : ioatdma
  e0020000-e0020fff : 0000:80:05.4
feb00000-feb03fff : reserved
fec00000-fec00fff : reserved
  fec00000-fec003ff : IOAPIC 0
fec01000-fec013ff : IOAPIC 1
fec40000-fec403ff : IOAPIC 2
fed00000-fed003ff : HPET 0
  fed00000-fed003ff : PNP0103:00
fed18000-fed18fff : reserved
fed1c000-fed8ffff : reserved
  fed1c000-fed1ffff : pnp 00:00
    fed1f410-fed1f414 : iTCO_wdt.0.auto
  fed20000-fed3ffff : pnp 00:00
fee00000-fee00fff : Local APIC
  fee00000-fee00fff : reserved
ff000000-ffffffff : INT0800:00
  ffc00000-ffffffff : reserved
100000000-207fffffff : System RAM
  15ed200000-15ed9a1279 : Kernel code
  15ed9a127a-15edf6c2bf : Kernel data
  15ee165000-15ee472fff : Kernel bss

In this case, I am not sure what the KASLR is doing since I am able to know the address range of the kernel code and kernel data by using the above command.

Maybe I am misunderstanding what KASLR is actually doing, any help in understanding this better is really appreciated.

1

0

You must log in to answer this question.

Browse other questions tagged .