Kecerdasan Data Generatif

Keamanan Serius: Rowhammer kembali menyalakan komputer Anda

Tanggal:

Anda mungkin akrab dengan kata lampu gas, digunakan untuk merujuk pada orang-orang yang memiliki kebiasaan buruk berbohong bukan hanya untuk menutupi kesalahan mereka sendiri, tapi juga untuk membuat seolah-olah ada orang lain yang bersalah, bahkan sampai membuat orang lain meragukan ingatannya sendiri, kesopanan dan kewarasan.

Namun, Anda mungkin tidak tahu bahwa istilah tersebut berasal dari drama thriller psikologis tahun 1930-an berjudul Lampu Gas (peringatan spoiler) di mana seorang suami yang manipulatif dan suka membunuh berpura-pura menghabiskan malamnya di luar kota bersama teman-temannya, meninggalkan istrinya yang telah lama menderita di rumah dalam kesengsaraan.

Faktanya, dia diam-diam menyelinap ke apartemen di atas, tempat dia sebelumnya membunuh penghuninya untuk mencuri perhiasannya.

Meskipun dia lolos dari pembunuhan tersebut, dia pergi dengan tangan kosong pada saat itu, jadi dia terus kembali ke TKP untuk mencari barang-barang berharga di apartemen wanita yang dibunuh itu dengan lebih putus asa.

Bukti dari kriminalitasnya adalah, dalam kunjungan malamnya, dia tidak hanya membuat suara-suara yang terdengar di lantai bawah, tetapi juga perlu menyalakan lampu gas untuk melihat apa yang dia lakukan.

Karena seluruh bangunan terhubung ke pasokan gas yang sama (permainannya berlatar di London tahun 1880-an, sebelum listrik rumah tangga menggantikan gas untuk penerangan), membuka dan menyalakan kompor di ruangan mana pun menyebabkan penurunan tekanan sementara di seluruh sistem, sehingga Istri pembunuh memperhatikan peredupan lampunya yang singkat namun jelas setiap kali dia naik ke sana.

Efek samping yang tidak dapat dihindari ini, yaitu penggunaan lampu di satu bagian rumah menimbulkan gangguan yang dapat terdeteksi di bagian lain, yang pada akhirnya menyebabkan sang suami ditahan oleh polisi.

Jika Anda bertanya-tanya, metafora verbal untuk menyalakan lampu gas dalam pengertian modernnya berasal dari fakta bahwa penjahat dalam drama tersebut dengan kurang ajar menjelaskan baik lampu redup maupun suara-suara misterius sebagai bukti bahwa istrinya menjadi gila. Rencana jahatnya adalah untuk mengalihkan kecurigaan dari kejahatan aslinya dan membuat dia dinyatakan gila, untuk menyingkirkannya begitu dia menemukan kekayaan yang dia incar. Ketika polisi mengejarnya, dia membalikkan keadaan dengan berpura-pura membantunya melarikan diri, hanya untuk memastikan bahwa dia pada akhirnya ditangkap. Seperti yang dia tunjukkan, mengingat bahwa dia telah bersusah payah untuk “membuktikan” selama ini bahwa dia gila, sekarang tidak ada yang akan percaya atau bahkan curiga bahwa dia mengkhianatinya ke jerat algojo sepenuhnya dengan sengaja…

Kembalinya Rowhammer

Kami tahu apa yang Anda pikirkan: Apa hubungan antara lampu gas, dan perilakunya yang berubah-ubah saat dimuat, dan tantangan keamanan siber yang dikenal sebagai mengadu domba?

Rowhammering adalah masalah elektronik yang disebabkan oleh interaksi dalam sistem yang tidak diinginkan, sama seperti lampu gas yang berkedip-kedip dalam permainan eponymous.

Pada masa awal komputer, data disimpan menggunakan berbagai skema untuk mewakili serangkaian digit biner, atau bit, termasuk: pulsa audio melewati tabung panjang air raksa; medan magnet disimpan dalam jaringan cincin ferit kecil yang dikenal sebagai inti, yang darinya kita mendapatkan istilah jargon modern pembuangan inti saat menghemat RAM setelah program mogok; dan muatan elektrostatik disimpan sebagai gumpalan cahaya di layar TV.

Chip DRAM modern (memori akses acak dinamis), sebaliknya, mengandalkan jaringan kapasitor nanoskopik yang sangat rapat, yang masing-masing dapat menyimpan muatan listrik (yang akan kita anggap sebagai biner 1), atau tidak (untuk 0-bit).

Untuk membaca sel C3 di atas, berikan daya di sepanjang kabel baris 3, lepaskan kapasitor A3, B3, C3 dan D3 kabel kolom bawah A, B, C dan D, sehingga nilainya dapat ditentukan. Bit tanpa biaya apapun akan dibaca sebagai 0; bit yang menyimpan muatan sebagai 1. Anda harus mengakses dan mengeluarkan empat bit untuk membaca salah satunya.

Yang mengejutkan, mungkin, chip DRAM memiliki lebih banyak kesamaan dengan penyimpanan jalur penundaan merkuri pada tahun 1940an dan 1950an daripada yang Anda kira, yaitu:

  • Anda hanya dapat membaca seluruh baris data dalam satu waktu. Untuk membacakan bit ke-112 dalam jalur penundaan merkuri 1024-bit berarti membaca seluruh 1024 bit (bit-bit tersebut berjalan melalui merkuri secara berurutan dengan kecepatan lebih dari 5000 km/jam, membuat waktu akses jalur penundaan menjadi sangat cepat). Chip DRAM menggunakan sistem serupa yang mengeluarkan satu baris kapasitor dalam jaringannya sekaligus, untuk menghindari sirkuit kontrol individual untuk setiap nanokapasitor dalam susunannya.
  • Membacakan data akan menghapus memori. Pada jalur tunda, pulsa audio tidak boleh dipantulkan kembali sepanjang tabung atau gema akan merusak bit yang sedang beredar. Jadi, data dibacakan di salah satu ujung dan kemudian ditulis kembali, dimodifikasi secara opsional, di ujung lain dari tabung saluran tunda. Demikian pula, pembacaan kapasitor dalam DRAM melepaskan semua yang saat ini menyimpan 1-bit, sehingga secara efektif menghilangkan baris data tersebut, sehingga setiap pembacaan harus diikuti dengan penulisan ulang.
  • Data akan hilang jika tidak ditulis ulang secara teratur. Garis tunda bersifat searah, karena gema tidak diperbolehkan, jadi Anda perlu membaca dan menulis kembali bit-bit tersebut secara terus menerus, siklus teratur untuk menjaga data tetap hidup, atau bit tersebut akan hilang setelah satu kali transit melalui tabung merkuri. Kapasitor DRAM juga mengalami disipasi data yang tidak dapat dihindari, karena kapasitor tersebut biasanya dapat menahan muatan dengan andal tidak lebih dari sepersepuluh detik sebelum muatannya bocor. Jadi, setiap baris kapasitor dalam chip secara otomatis dibaca dan ditulis ulang setiap 64 milidetik (sekitar 1/15 detik) untuk menjaga data tetap hidup tanpa batas.

Menulis ke memori hanya-baca

Jadi, apa yang disebut dengan rowhammering?

Setiap kali Anda menulis ke rangkaian kapasitor di jaringan memori chip DRAM, ada kemungkinan sangat kecil bahwa aktivitas listrik di saluran tersebut secara tidak sengaja dapat memengaruhi satu atau lebih kapasitor di saluran di sebelahnya, dengan cara yang sama. bahwa menyalakan lampu gas di satu ruangan menyebabkan kedipan di ruangan lain.

Semakin sering Anda menulis ke satu baris kapasitor (atau, lebih cerdiknya, jika Anda dapat mengetahui alamat memori yang tepat untuk digunakan, ke dua baris kapasitor di kedua sisi kapasitor target Anda untuk energi peledakan bit yang lebih besar), maka kemungkinan besar Anda memprovokasi semacam bit-flip semi-acak.

Dan kabar buruknya adalah, karena membaca dari DRAM memaksa perangkat keras untuk segera menulis data kembali ke sel memori yang sama, Anda hanya perlu akses baca ke sekelompok sel memori tertentu untuk memicu level rendah penulisan ulang elektronik dari sel-sel itu.

(Ada analogi masalah “gaslighting” dari lakon tersebut, yaitu sebenarnya Anda tidak perlu menyalakan lampu agar lampu di sekitar dapat memberikan Anda cahaya; cukup dengan membuka dan menutup keran gas sesaat tanpa benar-benar menyalakan api. untuk memicu efek peredupan cahaya.)

Sederhananya, hanya dengan membaca dari blok memori DRAM yang sama berulang-ulang dalam satu putaran yang ketat, Anda secara otomatis menyebabkannya ditulis ulang dengan kecepatan yang sama, sehingga sangat meningkatkan kemungkinan Anda dengan sengaja, meskipun sebagian besar tidak dapat diprediksi, menyebabkannya. atau lebih bit membalik di sel memori terdekat.

Menggunakan pengkhianatan semacam ini untuk memprovokasi kesalahan memori dengan sengaja adalah apa yang dikenal dalam jargon dengan nama deskriptif diri. mengadu domba.

Rowhammer sebagai teknik serangan

Banyak serangan keamanan siber yang diusulkan berdasarkan rowhammering, meskipun efek sampingnya sulit diprediksi.

Beberapa dari serangan ini sulit untuk dilakukan, karena mengharuskan penyerang memiliki kontrol yang tepat atas tata letak memori, pengaturan prosesor, dan konfigurasi sistem operasi.

Misalnya, sebagian besar chip prosesor (CPU) dan sistem operasi tidak lagi mengizinkan program yang tidak memiliki hak istimewa untuk membersihkan cache memori internal prosesor, yang merupakan penyimpanan RAM cepat dan sementara di dalam CPU itu sendiri yang digunakan untuk data yang sering diakses.

Seperti yang dapat Anda bayangkan, cache memori CPU ada terutama untuk meningkatkan kinerja, namun juga berfungsi untuk mencegah loop program yang ketat agar tidak membaca kapasitor DRAM yang sama berulang kali, dengan menyediakan data yang diperlukan tanpa mengakses chip DRAM apa pun di semua.

Selain itu, beberapa motherboard mengizinkan apa yang disebut DRAM refresh rate untuk ditingkatkan sehingga lebih cepat dari nilai tradisional setiap 64 milidetik yang kami sebutkan di atas.

Hal ini mengurangi kinerja sistem (program akan dijeda sebentar jika mereka mencoba membaca data dari DRAM ketika sedang di-refresh oleh perangkat keras), namun mengurangi kemungkinan terjadinya rowhammering dengan “mengisi ulang” muatan di semua kapasitor pada chip lebih teratur daripada sangat dibutuhkan.

Ini berarti kapasitor individual cenderung tidak terpengaruh oleh interferensi penulisan ke sel memori terdekat.

Kapasitor yang baru ditulis ulang lebih cenderung berada pada level tegangan yang menunjukkan dengan jelas apakah kapasitor tersebut terisi penuh (1-bit) atau kosong penuh (0-bit), daripada melayang secara tidak pasti di antara keduanya.

Dan banyak chip DRAM modern yang memiliki kecerdasan ekstra yang terpasang pada perangkat keras penyegaran memorinya saat ini, termasuk mitigasi yang disebut TRR (penyegaran baris target).

Sistem ini sengaja dan otomatis menulis ulang kapasitor penyimpanan di setiap jalur memori yang dekat dengan lokasi memori yang diakses berulang kali.

Oleh karena itu, TRR memiliki tujuan “mengisi ulang kapasitor” kelistrikan yang sama seperti meningkatkan kecepatan refresh secara keseluruhan, tetapi tanpa memberikan dampak kinerja pada keseluruhan chip.

Rowhammering sebagai supercookie

Menariknya, sebuah makalah baru-baru ini diterbitkan oleh para peneliti di Universitas California, Davis (UCD) menyelidiki penggunaan rowhammering bukan untuk tujuan membobol komputer dengan memodifikasi memori dengan cara yang dapat dieksploitasi dan dengan demikian membuka lubang keamanan eksekusi kode…

…tetapi hanya untuk “mencari sidik jari” pada komputer sehingga mereka dapat mengenalinya lagi nanti.

Dengan sangat disederhanakan, mereka menemukan bahwa chip DRAM dari vendor yang berbeda cenderung memiliki pola perilaku buruk pembalikan bit yang sangat berbeda ketika mereka menjadi sasaran serangan rowhammering.

Seperti yang dapat Anda bayangkan, ini berarti bahwa hanya dengan melakukan rowhammering, Anda mungkin dapat mengetahui detail perangkat keras pada komputer korban yang dapat digabungkan dengan karakteristik lainnya (seperti versi sistem operasi, tingkat patch, versi browser, kumpulan cookie browser, dan sebagainya. on) untuk membantu Anda membedakannya dari komputer lain di internet.

Dalam empat kata: pelacakan dan pengawasan licik!

Lebih dramatis lagi, para peneliti menemukan bahwa bahkan chip DRAM yang identik secara eksternal dari pabrikan yang sama biasanya menunjukkan pola bit-flip mereka sendiri yang berbeda dan dapat dideteksi, sampai pada titik di mana masing-masing chip dapat dikenali di kemudian hari hanya dengan melakukan rowhammering sekali lagi.

Dengan kata lain, cara modul memori DRAM tertentu berperilaku ketika rowhammered bertindak sebagai semacam “supercookie” yang mengidentifikasi, meskipun secara tidak sempurna, komputer yang terhubung dengannya.

Pengguna desktop jarang mengubah atau mengupgrade memorinya, dan banyak pengguna laptop tidak dapat melakukannya, karena modul DRAM disolder langsung ke motherboard dan oleh karena itu tidak dapat ditukar.

Oleh karena itu para peneliti memperingatkan bahwa rowhammering bukan hanya cara yang licik namun tidak dapat diandalkan untuk membobol komputer, tetapi juga cara yang memungkinkan untuk melacak dan mengidentifikasi perangkat Anda, bahkan tanpa adanya data lain seperti nomor seri, cookie browser. , metadata sistem file, dan sebagainya.

Pemeliharaan pelindung memperburuk keadaan

Menariknya, para peneliti mengklaim bahwa ketika mereka mencoba memastikan kesamaan dalam pekerjaan mereka dengan sengaja melepas dan secara hati-hati mengganti (meletakkan kembali) modul memori di motherboard mereka di antara pengujian…

…mendeteksi kecocokan modul memori menjadi lebih mudah.

Rupanya, membiarkan modul memori yang dapat dilepas membuat sidik jari yang rusak lebih besar kemungkinannya untuk berubah seiring waktu.

Kami menduga hal ini disebabkan oleh faktor-faktor seperti perpindahan panas, perubahan kelembapan, dan variasi lingkungan lainnya yang menyebabkan perubahan konduktivitas pada kontak logam pada memory stick, dan dengan demikian secara halus mengubah cara chip berperilaku secara internal.

Ironisnya, modul memori yang semakin lama semakin buruk dalam menahan efek samping bit-flip dari rowhammering, setidaknya secara teori, akan menjadi semakin rentan terhadap eksploitasi eksekusi kode.

Hal ini karena serangan yang sedang berlangsung secara bertahap akan memicu lebih banyak bit-flip, dan dengan demikian mungkin membuka lebih banyak peluang kerusakan memori yang dapat dieksploitasi.

Namun modul memori yang sama akan, ipso facto, menjadi semakin tahan terhadap serangan rowhammer berbasis identifikasi, karena serangan tersebut bergantung pada perilaku buruk chip yang tetap konsisten dari waktu ke waktu untuk menghasilkan hasil dengan “fidelitas” yang memadai (jika itu adalah kata yang tepat) untuk mengidentifikasi chip secara andal.

Menariknya, para peneliti menyatakan bahwa mereka tidak bisa menerapkan teknik sidik jari mereka sama sekali pada modul memori satu vendor tertentu, namun mereka menolak menyebutkan nama pembuatnya karena mereka tidak yakin mengapa.

Dari apa yang bisa kita lihat, kekebalan yang diamati dari chip tersebut terhadap identifikasi elektronik mungkin terjadi secara kebetulan, berdasarkan perilaku yang mudah diubah dalam kode yang digunakan para peneliti untuk melakukan rowhammering.

Oleh karena itu, ketahanan merek memori tersebut mungkin tidak disebabkan oleh keunggulan teknis tertentu pada produk yang bersangkutan, sehingga tidak adil bagi orang lain untuk menyebutkan nama produsennya.

Apa yang harus dilakukan?

Haruskah Anda khawatir?

Tidak banyak yang dapat Anda lakukan saat ini untuk menghindari rowhammering, mengingat ini adalah masalah “kebocoran muatan” listrik mendasar yang berasal dari ukuran yang sangat kecil dan kedekatan kapasitor dalam chip DRAM modern.

Namun demikian, menurut kami Anda tidak perlu terlalu khawatir.

Lagi pula, untuk mengekstrak “supercookie” DRAM ini, para peneliti perlu meyakinkan Anda untuk menjalankan aplikasi pilihan mereka dengan kode yang cermat.

Mereka tidak dapat mengandalkan browser dan JavaScript berbasis browser untuk trik semacam ini, terutama karena kode yang digunakan dalam penelitian ini, dijuluki centauri, membutuhkan akses sistem tingkat yang lebih rendah daripada yang diizinkan oleh sebagian besar, jika tidak semua, browser kontemporer.

Pertama, kode Cenaturi memerlukan hak istimewa untuk membersihkan cache memori CPU sesuai permintaan, sehingga setiap pembacaan memori benar-benar memicu akses listrik langsung ke chip DRAM.

Tanpa ini, akselerasi yang diberikan oleh cache tidak akan memungkinkan penulisan ulang DRAM aktual yang cukup untuk menghasilkan jumlah bit-flip yang signifikan secara statistik.

Kedua, kode Centauri mengandalkan akses tingkat sistem yang memadai untuk memaksa sistem operasi mengalokasikan memori dalam potongan 2MB yang berdekatan (dikenal dalam jargon sebagai halaman besar), bukan sebagai kumpulan halaman memori 4KB, seperti yang dilakukan Windows dan Linux secara default.

Seperti yang ditunjukkan di bawah ini, Anda perlu melakukan panggilan fungsi sistem khusus untuk mengaktifkan hak alokasi memori halaman besar untuk suatu program; akun pengguna Anda memerlukan otoritas untuk mengaktifkan hak istimewa tersebut; dan tidak ada akun pengguna Windows yang memiliki hak istimewa tersebut secara default. Sederhananya, setidaknya di jaringan perusahaan, Anda harus memerlukan kekuatan sysadmin terlebih dahulu untuk memberikan hak kepada diri Anda sendiri untuk mengaktifkan alokasi halaman besar hak istimewa untuk membuat kode Centauri berfungsi.

Untuk mengambil sidik jari komputer Anda, para peneliti perlu mengelabui Anda agar menjalankan malware, dan mungkin juga mengelabui Anda agar masuk dengan setidaknya hak administrator lokal.

Tentu saja, jika mereka dapat melakukan hal tersebut, maka ada banyak cara lain yang lebih andal dan pasti agar mereka dapat menyelidiki atau memanipulasi perangkat Anda untuk mengekstrak pengidentifikasi sistem yang kuat.

Hal ini mencakup: melakukan inventarisasi perangkat keras lengkap dengan pengidentifikasi perangkat; mengambil nomor seri hard disk; mencari nama file dan cap waktu yang unik; memeriksa pengaturan konfigurasi sistem; mengunduh daftar aplikasi yang diinstal; dan banyak lagi.

Terakhir, karena kode Centauri bertujuan untuk tidak menyerang dan mengeksploitasi komputer Anda secara langsung (dalam hal ini, mengambil risiko crash selama prosesnya mungkin sepadan), ada risiko yang mengkhawatirkan bahwa pengumpulan data yang diperlukan untuk sidik jari komputer Anda akan rusak atau hancurkan secara dramatis, dan dengan demikian menarik perhatian penuh Anda.

Rowhammering untuk tujuan eksekusi kode jarak jauh adalah jenis hal yang dapat dicoba oleh penjahat secara relatif singkat dan lembut, dengan alasan ketika berhasil, mereka ikut serta, tetapi jika tidak, mereka tidak kehilangan apa pun.

Namun Centauri secara eksplisit mengandalkan cukup banyak kesalahan bit-flip untuk membuat sidik jari yang signifikan secara statistik, yang tanpanya ia tidak dapat berfungsi sebagai pengidentifikasi “supercookie”.

Jika menyangkut perangkat lunak tidak dikenal yang Anda diundang untuk menjalankannya “karena Anda tahu Anda menginginkannya”, harap diingat: Jika ragu, tinggalkan saja!


MENGAKTIFKAN ALOKASI HALAMAN BESAR DI WINDOWS

Untuk mengkompilasi dan memainkan sendiri program ini, Anda dapat menggunakan kit pengembangan lengkap seperti Clang untuk Windows (gratis, sumber terbuka), Komunitas Visual Studio (gratis untuk penggunaan pribadi dan sumber terbuka), atau cukup unduh port kami dari Fabrice Bellard yang mengagumkan Kompiler C Kecil untuk Windows 64-bit. (Di bawah 500KB, termasuk header dasar, file biner siap pakai, dan kode sumber lengkap jika Anda ingin melihat cara kerjanya!)


Kode sumber yang dapat Anda salin dan tempel:

#termasuk #termasuk int utama(batal) { UKURAN_T ps; batal* ptr; MENANGANI token; BOOL oke; TOKEN_PRIVILEGES tp; cairan LUID; DWORD salah; ps = DapatkanLargePageMinimum(); printf("Halaman besar dimulai dari: %lld bytesn",ps); ok = OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&token); printf("Hasil OPT: %d, Token: %016llXn",ok,token); jika (!ok) { kembali 1; } ok = LookupPrivilegeValueA(0,"SeLockMemoryPrivilege",&luid); printf("Hasil LPV: %d, Cairan: %ld:%un",ok,luid.HighPart,luid.LowPart); jika (!ok) { kembali 2; } // Perhatikan bahwa akun harus memiliki "Kunci halaman di memori" // sebagai pengaturan kebijakan. Keluar dan masuk kembali untuk mengaktifkan // akses ini setelah mengotorisasi akun di GPEDIT. Dibutuhkan Admin. tp.PrivilegeCount = 1; tp.Hak Istimewa[0].Luid = luid ; tp.Hak Istimewa[0].Atribut = SE_PRIVILEGE_ENABLED; ok = AdjustTokenPrivileges(token,0,&tp,sizeof(tp),0,0); jika (!ok) { kembali 3; } // Perhatikan bahwa AdjustPrivs() akan mengembalikan TRUE jika permintaan // dibuat dengan baik, namun bukan berarti permintaan berhasil. Karena // Anda dapat meminta beberapa hak istimewa sekaligus, Anda perlu // memeriksa kesalahan 1300 (ERROR_NOT_ALL_ASSIGNED) untuk melihat apakah // ada di antara hak tersebut (walaupun hanya ada satu) yang tidak diizinkan. err = DapatkanLastError(); printf("Hasil ATP: %d, kesalahan: %un",ok,err); ptr = VirtualAlloc(NULL,ps, MEM_LARGE_PAGES|MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); err = DapatkanLastError(); printf("Kesalahan VA: %u, Penunjuk: %016llXn",err,ptr); kembali 0; }

Bangun dan jalankan dengan perintah seperti yang ditunjukkan di bawah ini.

Pada upaya pertama saya, saya mendapat kesalahan 1300 (ERROR_NOT_ALL_ASSIGNED) karena akun saya tidak dipraotorisasi untuk meminta Kunci halaman di memori hak istimewa di tempat pertama, dan kesalahan 1314 (ERROR_PRIVILEGE_NOT_HELD) ditambah a NULL (nol) penunjuk kembali dari VirtualAlloc() sebagai dampak langsung dari hal itu:

C:UsersduckPAGES> petcc64 -v -stdinc -stdlib p1.c -ladvapi32 Tiny C Compiler - Hak Cipta (C) 2001-2023 Fabrice Bellard Dipreteli oleh Paul Ducklin untuk digunakan sebagai alat pembelajaran Versi petcc64-0.9.27 [0006] - Hanya menghasilkan PE 64-bit -> p1.c ------------------------------- ukuran file virt bagian 1000 200 318 . teks 2000 600 35c .data 3000 a00 18 .pdata ------------------------------- <- p1.exe (3072 byte ) C:UsersduckPAGES> p1 Halaman besar dimulai pada: 2097152 bytes Hasil OPT: 1, Token: 00000000000000C4 Hasil LPV: 1, Luid: 0:4 Hasil ATP: 1, error: 1300 VA error: 1314, Pointer: 0000000000000000

Untuk mengotorisasi diri saya sendiri untuk meminta hak istimewa yang relevan (Windows selalu mengalokasikan halaman besar yang dikunci ke dalam RAM fisik, sehingga Anda tidak dapat memperolehnya tanpa hak istimewa itu Kunci halaman di memori benar), saya menggunakan GPEDIT.MSC utilitas untuk menetapkan sendiri hak secara lokal.

Pergi ke Kebijakan Komputer Lokal > Konfigurasi komputer > Windows Settings > Pengaturan keamanan > Kebijakan Lokal > Penetapan Hak Pengguna dan tambahkan nama pengguna Anda sendiri Kunci halaman di memori .

Jangan lakukan ini di komputer kerja tanpa izin terlebih dahulu, dan hindari melakukannya di komputer biasa di rumah (gunakan PC cadangan atau mesin virtual):


Setelah memberikan hak yang diperlukan kepada diri saya sendiri, kemudian keluar dan masuk lagi untuk memperolehnya, permintaan saya untuk mengambil 2MB RAM virtual yang dialokasikan sebagai satu blok RAM fisik berhasil seperti yang ditunjukkan:

C:UsersduckPAGES>p1 Halaman besar dimulai pada: 2097152 bytes Hasil OPT: 1, Token: 00000000000000AC Hasil LPV: 1, Luid: 0:4 Hasil ATP: 1, error: 0 VA error: 0, Pointer: 0000000001600000

tempat_img

Intelijen Terbaru

tempat_img