GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zugriffsrechte von /dev/mem

Was ergibt Folgendes:

cat /dev/mem | wc

Ich bekomme:

cat: /dev/mem: Operation not permitted
   1908   11791 1048576

Für mich hört es also bei 1 MB auf.

Beachten Sie, dass cat open verwendet, nicht mmap, also ist es kein identischer Test.

Sind Sie sicher, dass Sie mehr als 1 MB lesen?


  1. Ja, Sie haben Recht, /dev/mem ermöglicht es Ihnen, jede physische Adresse zuzuordnen, einschließlich Nicht-RAM-Speicher zugeordnete IO. Dies kann für einen schnellen und schmutzigen Hack nützlich sein, um auf ein Hardwaregerät zuzugreifen, ohne einen Kerneltreiber zu schreiben.

  2. CONFIG_STRICT_DEVMEM veranlasst den Kernel, Adressen in /dev/mem mit devmem_is_allowed() zu prüfen in arch/x86/mm/init.c , und der Kommentar dort erklärt:

    * On x86, access has to be given to the first megabyte of ram because that area
    * contains bios code and data regions used by X and dosemu and similar apps.
    * Access has to be given to non-kernel-ram areas as well, these contain the PCI
    * mmio resources as well as potential bios/acpi data regions.
    

    Ihre Adresse 0xFFFF0000 ist sehr wahrscheinlich Nicht-RAM, da BIOS normalerweise IO-Speicher knapp unter 4 GB setzen, deshalb können Sie ihn sogar mit STRICT_DEVMEM abbilden.


Linux
  1. So generieren Sie ein zufälliges Passwort unter Linux mit /dev/random

  2. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  3. So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

  4. Was sind /dev/zero- und /dev/null-Dateien in Linux

  5. Wie kann /dev/random oder /dev/urandom mit base64 codiert werden?

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0

Kernel:/dev/kmem und /dev/mem deaktivieren

echo oder print /dev/stdin /dev/stdout /dev/stderr

Warum sind < oder > erforderlich, um /dev/tcp

Unterschiede zwischen /dev/sda und /dev/sda1