GNU/Linux >> Belajar Linux >  >> Linux

Akses izin /dev/mem

Apa hasil berikut:

cat /dev/mem | wc

Saya mendapatkan:

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

Jadi bagi saya itu berhenti di 1MB.

Perhatikan bahwa cat menggunakan open, bukan mmap jadi ini bukan tes yang identik.

Apakah Anda yakin membaca melebihi 1MB?


  1. Ya, Anda benar, /dev/mem memungkinkan Anda memetakan alamat fisik apa pun, termasuk IO yang dipetakan memori non-RAM. Ini dapat berguna untuk peretasan cepat dan kotor untuk mengakses beberapa perangkat keras tanpa menulis driver kernel.

  2. CONFIG_STRICT_DEVMEM membuat kernel memeriksa alamat di /dev/mem dengan devmem_is_allowed() di arch/x86/mm/init.c , dan komentar di sana menjelaskan:

    * 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.
    

    alamat Anda 0xFFFF0000 kemungkinan besar non-RAM, karena BIOS biasanya menempatkan memori IO tepat di bawah 4 GB, sehingga Anda dapat memetakannya bahkan dengan STRICT_DEVMEM.


Linux
  1. Cara membuat kata sandi acak di linux menggunakan /dev/random

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Seberapa Portabel /dev/stdin, /dev/stdout Dan /dev/stderr?

  1. Apa itu file /dev/zero dan /dev/null di Linux?

  2. DD dari /dev/zero ke /dev/null...apa yang sebenarnya terjadi

  3. Linux:Perbedaan antara /dev/console , /dev/tty dan /dev/tty0

  1. gema atau cetak /dev/stdin /dev/stdout /dev/stderr

  2. Mengapa < atau > diperlukan untuk menggunakan /dev/tcp

  3. Perbedaan antara /dev/sda dan /dev/sda1