Backup, Reset & Restore CMOS
Posted on 2000-04-16 11:13:00 - #Hits : 967
General Information
Abstract
For Security sake,
computer is often protected. One of the method is
CMOS (Computer Management Operating
System) with using password.
but when we want to change the password and we forgot the
password,
so the password can be reset either by hardware or by software.
Metode Mereset CMOS
Ada beberapa cara untuk
mengatasinya. Dari yang sangat mudah,
sampai yang sedikit beresiko, antara lain :
- Menunggu sampai baterai CMOS habis.
Dengan cara
ini, kita tidak melakukan kegiatan apa-apa
selain menunggu dan menunggu sampai baterai
CMOS habis.
Apabila baterai CMOS habis, maka secara otomatis password
tersebut hilang. Tetapi lama waktu yang dibutuhkan untuk
menghabiskan baterai tersebut
amat tergantung dari daya
yang tersimpan dari baterai yang digunakan, sehingga
waktunya tidak dapat diestimasi, kapan baterai CMOS tersebut
habis.
- Menggunakan password default.
Adakalanya perusahaan pembuat
BIOS menciptakan password default
sebagai jalan pintas bagi para teknisinya untuk
memperbaiki BIOS.
Sebenarnya password ini merupakan password rahasia yang tidak
boleh diketahui oleh orang selain teknisi perusahaan tersebut.
Tetapi
kenyataannya, password tersebut juga diketahui oleh orang
selain teknisi perusahaan
tersebut.
Sebagai contoh, AWARD SOFTWARE mempunyai beberapa
password
default yaitu antara lain : AWARD_SW, AWARD_MN, AWARD_SN, j262,
dan sebagainya. Cara ini memiliki kelemahan yaitu tidak setiap
perusahaan pembuat BIOS
mempunyai password default yang sama.
Password default dari AWARD SOFTWARE tentunya
berbeda dengan
password default dari AMI, Phoenix, dan sebagainya.
- Melepas/konsletting baterai CMOS.
Cara ini cukup ampuh. Dengan melepas
baterai CMOS dari
motherboard atau melakukan konsletting pada baterai CMOS,
maka data pada CMOS otomatis akan hilang, tidak bergantung
pada jenis BIOS. Tetapi
cara ini mempunyai kelemahan yaitu
pada motherboard tertentu, letak atau bentuk baterai
CMOS
disamarkan.
- Mereset CMOS secara software.
Dengan cara ini, CMOS direset tanpa mempedulikan jenis BIOS
maupun
motherboardnya. Cara inilah yang akan dibahas.
Untuk mereset CMOS secara software, kita harus memprogram
PORT CMOS. Tetapi sebelum
melangkah lebih jauh, perlu dijelaskan
dahulu mengenai port.
Port
Port dapat diartikan sebagai terminal tempat komputer
berhubungan
dengan alat - alat / peripheral lain, seperti diskdrive, keyboard,
monitor, speaker, dan sebagainya. Karena port berhubungan langsung
dengan perangkat keras
komputer, maka kita harus mengetahui dengan
jelas cara mengaksesnya. Ada port yang hanya
bisa ditulis, dibaca,
atau bisa keduanya (baca-tulis).
Untuk
port yang mempunyai fungsi baca-tulis, biasanya mempunyai
suatu port lagi yang digunakan
sebagai port pengontrol yang
berfungsi untuk mengatur modus dari operasi yang akan
dilakukan
terhadap alat tersebut, atau bisa juga sebagai index dari data
yang
disimpan pada port tersebut.
Port berdasarkan pengolahan datanya
dibedakan menjadi dua yaitu :
- Port bertipe byte
Yaitu port yang dalam operasi pengolahannya menggunakan data
bertipe
byte. Apabila data yang akan dimasukkan bertipe word,
maka data dimasukkan secara
bertahap yaitu Most Significant
Byte (MSB, Byte tinggi dari data tersebut) baru
kemudian Least
Significant Byte (LSB, Byte rendah dari data tersebut), atau
sebaliknya dimana telah diatur modus operasinya pada port
pengontrol.
- Port bertipe word
Yaitu port yang dalam operasi
pengolahannya menggunakan data
bertipe word.
Port CMOS termasuk dalam kategori port baca-tulis dimana indexnya
terletak
pada port 70hexa (70h) yang merupakan suatu
index bertipe byte sebanyak 255,
yaitu nomor 1 sampai 255 dan
datanya terletak pada port 71hexa (71h). Untuk
melakukan
operasi baca-tulis pada port CMOS, terlebih dahulu diisikan nomor /
posisi data yang akan dibaca/ditulis pada port 70h, baru kemudian
membaca / mengisikan
datanya pada port 71h.
Sebagai contoh kita ingin mengisi data ke-50
dengan nilai 20, maka
algoritmanya adalah sebagai berikut :
- Isi port 70h dengan 50
- Isi port 71h dengan 20
- Selesai
Untuk membaca data ke-200 dan
menampilkan isinya, maka algoritmanya
adalah sebagai berikut :
- Isi port 70h dengan 200
- Baca port 71h dan nilainya dimasukkan ke variabel
N
- Tulis N
- Selesai
Backup, Reset, dan Restore CMOS
Untuk mereset CMOS, kita tinggal mengisikan
nilai nol pada setiap
data pada port 71h. Algoritmanya adalah sebagai berikut :
- Ulangi langkah 2 dari i = 1 sampai 255
- a. Isi
port 70h dengan i
b. Isi port 71h dengan 0
- Selesai
Seperti yang telah dijelaskan di atas bahwa
dengan mereset CMOS
maka secara otomatis data yang ada menjadi hilang dan nilainya
merupakan default dari perusahaan pembuatnya. Untuk hal-hal khusus,
kita perlu melakukan
backup terhadap data CMOS agar bila di kemudian
hari data CMOS tidak valid, misalnya karena
virus atau orang iseng,
kita dapat melakukan pemulihan (restore) data CMOS.
Untuk melakukan backup data CMOS, diperlukan file untuk menyimpan
datanya. Algoritmanya adalah sebagai berikut :
- Buat dan
buka file backup
- Ulagi langkah 3 dari i=1 sampai 255
- a. Isi
port 70h dengan i
b. Baca port 71h dan nilainya dimasukkan pada variabel
array buffer[i]
- Tulis nilai pada variabel array buffer ke
file backup
- Tutup file backup
- Selesai
Sedangkan untuk melakukan pemulihan data CMOS, maka
algoritmanya
adalah sebagai berikut :
- Buka file
backup
- Baca nilai yang ada pada file backup ke variabel
array
buffer
- Ulangi langkah 4 dari i=1 sampai 255
- a. Isi port 70h
dengan i
b. Isi port 71h dengan nilai yang ada pada variabel array
buffer[i]
- Tutup file backup
- Selesai
Implementasi
Untuk
mengimplementasikan algoritma di atas menjadi sebuah program,
maka penulis menggunakan
compiler PASCAL. Pada bahasa PASCAL,
perintah untuk mengakses port adalah :
- PORT[Nomor] , bila port yang diakses bertipe byte;
- PORTW[Nomor], bila port yang diakses bertipe word.
Dimana nomor merupakan nomor port
yang akan diakses.
Sebagai contoh kita ingin
mengisi data ke-50 dengan nilai 20,
maka perintahnya adalah sebagai berikut :
- PORT[$70] := 50;
- PORT[$71] := 20;
Untuk membaca data ke-200, perintahnya adalah sebagai berikut :
- PORT[$70] := 200;
- Isi := PORT[$71];
Penutup
Dengan mereset CMOS, maka secara
otomatis tidak hanya data
password saja yang hilang, tetapi seluruh data CMOS, misalnya
jenis Harddisk. Dalam kondisi ini, CMOS berisi data default
dari perusahaan
pembuatnya. Jadi berhati - hatilah. Tanggung
sendiri akibatnya.
Program ini telah dicoba dan berjalan dengan baik pada Merek BIOS :
- Award Modular BIOS versi 4.51PG
- PhoenixBIOS versi 4.03
Listing Program :
Program Reset;
var
i:byte;
begin
writeln('Reset CMOS');
for i:=1 to 255 do
begin
port[$70]:=i;
port[$71]:=0;
end;
writeln('Reset CMOS sukses');
end.
Program Backup;
var
i:byte;
buffer : array[1..255] of byte;
f : file;
nm : string;
begin
writeln('Backup CMOS');
for i:=1 to 255 do
begin
port[$70]:=i;
buffer[i]:=port[$71];
end;
write('Masukkan nama file backup : ');readln(nm);
assign(f,nm);
{$I-}Rewrite(f,1);{$I+}
if IOResult <> 0 then
begin
writeln('Gagal membuat backup');
halt(1);
end;
blockwrite(f,buffer,sizeof(buffer));
close(f);
writeln('Backup CMOS sukses');
end.
Program Restore;
var
i:byte;
buffer : array[1..255] of byte;
f : file;
nm : string;
begin
writeln('Restore CMOS');
write('Masukkan nama file backup : ');readln(nm);
assign(f,nm);
{$I-}Reset(f,1);{$I+}
if IOResult <> 0 then
begin
writeln('Gagal membuka backup');
halt(1);
end;
blockread(f,buffer,sizeof(buffer));
for i:=1 to 255 do
begin
port[$70]:=i;
port[$71]:=buffer[i];
end;
close(f);
writeln('Restore CMOS sukses');
end.