Advertisement

Data Execution Prevention

top computer

Cara mengatasi “The memory could not be written” di Windows

Pernah mengalami saat menjalankan sebuah program tiba – tiba muncul pesan kesalahan “The memory could not be written” di Windows? Masalah ini ada beberapa penyebab dan cara memperbaikinya. Walau error ini adalah salah satu ciri – ciri ada kerusakan hardware di komputer anda, semoga saja tidak terjadi.

Pesan error yang muncul biasanya akan seperti ini tulisannya:
iexplore.exe – Application Error

The instruction at 0xfcf21420 referenced memory at 0xfcf21420. The memory could not be written.
Click OK to terminate the program

Jadi alamat memory (RAM) tertentu tidak bisa ditulisi oleh program, ini bisa berarti buruk karena ada resiko RAM anda rusak atau minimal ada file dari sistem operasi yang korup.

Uji integritas file sistem operasi

Anda bisa menggunakan System File Checker untuk menguji integritas system file Windows, ini digunakan sekaligus untuk memperbaikinya apabila dideteksi adanya file yang rusak atau korup. Ketikkan perintah sfc /scannow pada command prompt Windows dan tunggu proses verifikasinya selesai.

Bersihkan driver hardware Windows

Cara lainnya adalah dengan menghapus bersih seluruh atau beberapa driver yang sekiranya bermasalah, ini bisa anda lakukan satu per satu atau langsung saja gunakan software Driver Sweeper untuk menghapus driver terinstall secara massal. Setelah selesai maka sekalian saja cari driver versi terbaru untuk perangkat keras yang terpasang di komputer anda.

Mematikan Data Execution Prevention

DEP (Data Execution Prevention) adalah layanan keamanan di Windows untuk mencegah suatu program mengakses alamat memori dari program lainnya, ini mencegah adanya sabotase dan pencurian data pribadi anda. Anda bisa mencoba dengan mematikan DEP supaya perlindungan ini menjadi nonaktif.

Cek RAM komputer

Solusi terakhir? adalah dengan menguji RAM anda apakah ada kerusakan secara fisik atau tidak, ini bisa dengan melepas salah satu modul memori yang terpasang kemudian menjalankan aplikasi bermasalah tadi kembali. Alternatifnya anda bisa menggunakan program Memtest86 untuk menguji RAM anda. Kalau memang ada kerusakan maka solusinya harus digantikan dengan yang baru.

Pada saat aplikasi dijalankan maka perintah dan data akan diload ke memory (RAM) , jadi disini ada 2 bagian yaitu perintah (exectable) dan data.

Mudahnya begini:
Misal,saat  kamu buka ms.word maka tampilan jendela utnuk ngetik dan ada pula tombol untuk menu, nah apa yang terlihat di layar sebernarnya mewakili apa yang sudah dimuat di memori (RAM) .

Ketika kamu mencet tombol berarti kamu mengakses dan menjalankan bagian executable di bagian memory .

Ketika kamu ngetik dan merubah settingan program seperti seting halaman,tampilan,printer dll semua data disimpan di bagian data pada memory .

Nah disetiap komputer pasti ada hak askses misalnya administrator /root memiliki hak tertinggi(bisa apapun di sistem) dan ada user biasa yang cuman isa buat ngetik dan gak bisa buat buka ini itu/rubah ini itu. batasan akses ini dibuat untuk tujuan keamanan sistem.

DEP Untuk Mencegak Serangan Buffer OverFlow

Dengan tehnik buffer overflow hacker bisa mendapatkan akses seperti administrator/root dengan cara mengexploitasi kelemahan aplikasi yang sudah berjalan dengan akses level administrator (misalnya aplikasi service dan aplikasi yang menjadi bagian operating system).

Hacker akan memasukan random data ke memory program yang vulnerable dan menempatkan shellcode di address memory yang telah ditentukan agar shellcode tereksekusi .

Shell code ini berisi payload atau perintah tertentu, misalnya membuat backdoor atau membuka shell /CMD .

Ketika payload /shell code ini tereksekusi oleh aplikasi yang vulnerable tadi maka apapun aplikasi yang telah dijalankan dalam shell code akan memiliki hak akses yang sama dengan aplikasi yang vulnerable tadi.

Ini disebut juga tehnik privilage escalation / menaikan hak akses.

Dengan tehnik buffer overflow  hacker bisa masuk kedalam server melalui port yang terbuka sebagai service.

Karena kelemahan itulah sistem modern di zaman sekarang dibekali dengan DEP dan ASLR utnuk menghindari kejadian mengerikan seperti diatas.

Memahami apa itu DEP dan ASLR

DEP dan ASLR adalah sistem keamaan windows untuk mencegah terjadinya buffer overflow.

DEP (Data Execution Prevention)

Fitur DEP diperkenalkan mulai dari windows XP sp2, fitur DEP bertujuan untuk mencegah dieksekusinya perintah dari region non executable di memory.

Tehnik buffer overflow biasnaya digunakan hacker untuk mengexploit service yang berjalan pada sistem operasi(Seperti worm yang mengexplooit celah SMB windows XP).

Dalam tehnik buffer overflow memory data pada aplikasi/service yang vulnerable akan di overwrite dan ditindih dengan shell code yang berisi perintah berbahaya, seperti perintah untuk megeksekusi payload yang berisi backdoor agar hacker bisa masuk ke sistem.Ada 2 jenis DEP yaitu hardware dan software.

Hardware bekerja dengan cara processor akan menandai alamat memory yang dipakai oleh aplikasi atau service sebagai bagian memory non-executable,dan ketika ada apliaksi lain ingin menggunakan memory ini maka akan ditolak nya.

Biasnaya pada BIOS/UEFI fitur ini dikenal dengan Execute Disable Bit (EDB) .

Software DEP bekerja dengan cara yang berbeda yaitu dengan cara mencegah overwrite pada memory ketika aplikasi atau service mengalami exeption (Error /Crash).

Atau dikenal juga dengan tehnik Structured Exception Handler (SEH) Overwrites .

ASLR(Address space layout randomization)

Ketika aplikasi di load ke memory ,settiap executable dan data  aplikasi memiliki address , addrress inilah yang digunakan hacker untuk menunjukan kepada exploit yang dibuatnya dimana akan menempatkan buffer dan payload nya.

ASLR bekerja dengan cara mengacak(dengan algoritrma khusus) address memory dari aplikasi yang di load ke memory sehinga akan  menyulitkan hacker dalam  mencari address aplikasi yang akan diexploitasi untuk diberi buffer dan payload.

Singkatnya jika DEP bekerja dengan cara menandai lokasi memory data yang telah digunakan oleh aplikasi sebagai non executable, sedangkan ASLR bekerja dengan cara mengacak address dari memory data dan executable.

Program Lawas vs  DEP

Fitur DEP diperkenalkan pada peluncuran windows XP sp2 tepatnya tanggal 24 agustus 2004 sebagai pencegahan tehnik exploitasi dengan tehnik buffer overflow.

Karena fitur ini tergolong baru maka bisa dipastikan aplikasi2 yang dibuat sebelum tanggal itu memiliki masalah kompatibility dengan DEP ini.

Tapi di zaman sekarang sudah tidak ada lagi masalah error program karena DEP karena aplikasi sudah disesuaikan dan diupdate sesuai perkembangan zaman.  

Kecuali aplikasi-aplikasi yang dibuat oleh developer yang belum berpengalaman yang memiliki masalah dengan DEP.

Terkadang ada sebagian orang yang masih menggunakan tehnologi lama di zaman ini, dan aplikasi yang digunakan masih bentrok dengan DEP,maka dengan terpaksa kita harus mematikan DEP agar aplikasi jadul ini jalan dengan mulus.

“DEP dan ASLR hanya menyulitkan exploitasi dengan tehnik buffer overflow , dan tidak mencegah terinstall nya virus/malware di komputer kamu”

Cara Disable DEP untuk program tertentu

Berikut adalah cara disable DEP untuk aplikasi yang error jika DEP dihidupkan.

  • Tekan tombol windows  dan tombol R  lalu ketik SystemPropertiesAdvanced.exe dan tekan enter
  • Setelah system properties mucul pilih tab advanced > performance settings..>
  • pilih tab Data Execution Prevention lalu cek pada “Turn on DEP for all programs and services exept those i select “
  • Lalu klik pada tombol add untuk memasukan program yang kamu akan matikan DEP nya.
  • klik apply untuk penerapan

 “Jika dibawah tombol add ada tulisan “Your Computer’s processor supports hardware-based DEP” berarti processor kamu sudah support DEP hardware. “

Cara disable /Enable DEP pada windows XP, 7 ,8,10

Jika kamu perlu disable /enable DEP secara total kamu tidak bisa menggunakan menu GUI,karena menag menunya tidak ada .

Jadi kamu harus melakukan nya lewat console command promt (CMD)

Untuk windows XP bisa langsung buka command promt dengan  tekan tombol windows  dan tombol R  lalu ketik cmd lalu tekan enter.

Untuk pengguna windows vista keatas kamu harus menjalankan cmd dengan level administrator caranya:

  • Tekan tombol start lalu ketik cmd jangan tekan enter
  • nanti di kotak pencarian bakal ada cmd.exe atau command promt
  • pada item pencarian klik kanan pada cmd(command promt) dan pilih run as administrator

Untuk disable DEP secara permanent ketikan perintah bcdedit.exe /set {current} nx AlwaysOff

Untuk Enable DEP secara permanent ketikan perintah  bcdedit.exe /set {current} nx AlwaysOn

Untuk mengecek status DEP saat ini bisa menggunakan perintah wmic OS Get DataExecutionPrevention_SupportPolicy
Sebelum menjalankan perintah ini silakan restart dulu komputer setelah menjalankan perintah disable /enable DEP 
 

Keterangan outpus status DEP
0 – DEP dimatikan untuk semua processes.
1 – DEP dihidupkan untuk semua  processes.
2 – DEP dihidupkan untuk windows komponen dan service (Default)
3 – DEP dihidupkan untuk semua processes.