Subscribe

Powered By

Free XML Skins for Blogger

Powered by Blogger

..:: Perbuatan yang baik selalu dihasilkan oleh pikiran yang baik::..

"Kegagalan bukanlah untuk ditangisi,tetapi untuk di insyafi.
Manakala kejayaan bukan untuk dimegahi,tapi untuk disyukuri!"

الأحد، 16 مارس 2008

AKSES LOW LEVEL

QBasic menyediakan beberapa perintah dan fungsi untuk akses Low
Level seperti akses memory langsung maupun akses ke nomor port
tertentu. Walaupun fasilitas Low Level yang disediakan sangat
terbatas jika dibandingkan dengan akses Low Level Turbo Pascal
maupun C Language.

Akses Low Level sangat menarik bagi programmer-programmer muda,
karena mampu menghasilkan proses-proses yang tidak mungkin
dilakukan dengan menggunakan pemrograman yang
yang normal.

Beberapa perintah QBasic yang berkaitan dengan akses Low Level
adalah :

DEF SEG = alamat_segment

PEEK(alamat_offset), digunakan untuk mengambil data byte yang
dari alamat memori segment:offset.

POKE alamat_offset, ekspresi, digunakan untuk mengisi ekspres
byte ke alamat memori segment:offset

OUT nomor_port, ekspresi, digunakan untuk mengakses port dengan
nilai ekspresi.

INP(nomor_port), digunakan untuk mengambil nilai dari port.

Contoh :

'Anda dapat mengetahui tanggal ROM BIOS anda dengan menggambil
'8 byte mulai dari alamat FFFF:0005

CLS
PRINT "Tanggal Bios komputer anda :";
'Set Data Segment ke hexa FFFFF
DEF SEG = &HFFFF
FOR i = 0 TO 7
'Mencetak byte per byte dari offset hexa 0005
PRINT CHR$(PEEK(i + 5));
NEXT i


'Anda dapat mengetahui jumlah RAM komputer anda dengan menggambil
'1 word (1 word = 2 byte) dari alamat 0040:0013
'Dalam hal ini RAM adalah konventional Memory

'Set Data Segment ke hexa 0040
DEF SEG = &H40
RAM = PEEK(&H13) + PEEK(&H14) * &H100
PRINT
PRINT "Jumlah konventional Memory :"; RAM; "KB"

'Pada jaman kejayaan DOS, dan diskete sebagai media penyimpanan,
'Virus Boot adalah Virus yang sangat terkenal misalnya Virus
'C Brain, Stoned, MichaelAngelo
'Salah satu metode melacak keberadaan Virus Boot di memory komputer
'kita adalah memeriksa konventional Memory komputer
'Jika jumlahnya < 640, maka komputer dicurigai mengandung Virus Boot


'Anda dapat menggambil Real Time Clock PC dengan memanfaatkan
'Port 70H dan 71H, pada register :
' 00 RTC seconds
' 02 RTC minutes
' 04 RTC hours
' 06 RTC day of week
' 07 RTC day of month
' 08 RTC month
' 09 RTC year
'Masukkan register yang akan dibaca/tulis ke port 70h
'baca/tulis pada port 71h

PRINT "Tanggal menurut RTC :";
OUT &H70, &H6
PRINT HEX$(INP(&H71)); "/";
OUT &H70, &H8
PRINT HEX$(INP(&H71)); "/";
OUT &H70, &H9
PRINT HEX$(INP(&H71))

DO
LOCATE 13, 35
OUT &H70, 0
PRINT HEX$(INP(&H71)); ":";
OUT &H70, 2
PRINT HEX$(INP(&H71)); ":";
OUT &H70, 4
PRINT HEX$(INP(&H71))
LOOP UNTIL INKEY$ <> ""


'Anda dapat Menghapus Setting BIOS dengan kode berikut
'Diambil dari software BIOS 3.1 Crack
'
'Catatan : Jangan mencoba program ini tanpa pengetahuan tentang
'setting BIOS, segala yang anda lakukan adalah resiko anda
'sendiri
'
'mov dx, 070h
'mov al, 02Eh
'out dx, al
'inc dx
'xor al, al
'out dx, al
'mov dx, 070h
'mov al, 02Fh
'out dx, al
'inc dx
'xor al, al
'out dx, al
'int 20h
'
'Adapun Kode QBasicnya adalah sebagai berikut :
'
PRINT "Program reset BIOS"
PRINT "Proses ..."
OUT &H70, &H2E
OUT &H71, &H00
OUT &H70, &H2F
OUT &H71, &H00
PRINT "Selesai !"
END

ليست هناك تعليقات: