GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa memalsukan jumlah RAM yang terpasang untuk program tertentu di Linux?

Buat meminfo palsu dan pasang di atas /proc/meminfo asli :

$ mkdir fake-meminfo && cd fake-meminfo
$ cp /proc/meminfo .
$ chmod +w meminfo
$ sed -Ei 's,^MemTotal:        [0-9]+ kB,MemTotal:        8839012 kB,' meminfo   # replace 8839012 with an amount of RAM you want to pretend you have
$ free -m  # check how much RAM you have now
              total        used        free      shared  buff/cache   available
Mem:           7655        1586        3770         200        2298        5373
$ sudo mount --bind meminfo /proc/meminfo                                 
$ free -m  # check how much RAM you pretend to have after replacing /proc/meminfo
              total        used        free      shared  buff/cache   available
Mem:           8631        2531        3800         201        2299        5403
$ sudo umount /proc/meminfo # restore an original /proc/meminfo
$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7655        1549        3806         200        2299        5410

Anda juga dapat menjalankan perintah di atas dalam namespace mount yang diisolasi dari sistem lainnya. Referensi:Pulihkan dari pemalsuan /proc/meminfo


Setelah beberapa pemikiran, saya melakukan ini:

Dimulai dengan nano /proc/meminfo

Mengubah MemTotal , MemFree , MemAvailable , SwapTotal dan SwapFree ke nilai yang diinginkan dan disimpan ke ~./meminfo

Memberi pengguna kata sandi boinc sudo passwd boinc dan shell -- sudo nano /etc/passwd , temukan baris boinc:x:129:141:BOINC core client,,,:/var/lib/boinc-client:/usr/sbin/nologin dan mengubah /usr/sbin/nologin bagian ke /bin/bash

Kemudian saya memalsukan info RAM menggunakan contoh dari sini Pulihkan dari memalsukan /proc/meminfo

unshare -m bash    #unshares mount spaces, for specific program "bash" only (and for whatever you want to launch from it)
mount --bind ~./meminfo /proc/meminfo      #substitutes real meminfo data with fake one

dan dikonfirmasi dengan free bahwa itu berhasil

          total        used        free         shared     buff/cache  available
Mem:     2321456       21456     2300000           0           0     2300000
Swap:     5000000     1000000     4000000

Kemudian beralih ke pengguna su - boinc dan baru saja meluncurkan program dengan

boinc --check_all_logins --redirectio --dir /var/lib/boinc-client

Manajer BOINC dapat diluncurkan seperti biasa

Sukses total, tugas yang sebelumnya ditolak untuk dijalankan, mulai diunduh, lalu dijalankan tanpa kerumitan


Linux
  1. Bagaimana Cara Mengisi 90% Dari Memori Gratis?

  2. Linux – Menautkan /proc/mnt Ke /proc/mounts?

  3. Linux – Bagaimana Menguji Apakah Perangkat Blok Apakah Hanya-Baca Dari /sys Atau /proc?

  1. Bagaimana cara mendapatkan jalur proses di Unix / Linux

  2. cara mengetahui nomor Interrupt/GPIO untuk pin tertentu di linux

  3. Cara mengatur ID proses di Linux untuk program tertentu

  1. Bagaimana saya bisa mengetahui total memori fisik (RAM) dari kotak linux saya yang cocok untuk diuraikan oleh skrip shell?

  2. Bagaimana kunci Magic SysRq bisa berbahaya bagi pengguna linux?

  3. Bagaimana saya bisa menguji RAM untuk kerusakan data pada sistem berbasis ARM?