Общее·количество·просмотров·страницы

понедельник, 31 декабря 2012 г.

Последний пост в 2012.

Ну что друзья,вот и подошел к концу этот трудный, 2012 год.Сегодня, напоследок, я хочу выложить сорсы дампера биос вот к этой теме: тема.Вообще я хотел еще сегодня выложить микро наработку по загрузчику буткита,но мне кажется что я уже не успею потому что там еще только сектор написан и кусок джампера)))

Сорсы с комментами:



[bits 16]
segment code
..start:
mov ax, data ; настраиваем сегменты данных,стэка и его вершины.
mov ds, ax
mov ax, stack
mov ss, ax
mov sp, stacktop

mov dx, hello ; выводим сообщение
mov ah, 0x09
int 0x21

mov ah, 0x3C ; создаем файл через описатель
xor cx,cx
mov dx, fn
int 0x21
jnc createdfile ; если удалось-переходим к записи

mov dx, openerr ; если не удалось-оповестим о ошибке
mov ah, 0x09
int 0x21
jmp exit

createdfile:
mov [hfile], ax

mov bx, ax
mov ax, 0xF000 ; биос стартует отсюда
mov ds, ax
mov cx, 0xFFFF ; до сюда 
xor dx,dx
mov ah, 0x40 ; пишем в файл что по тем адресам
int 0x21
mov ax, data
mov ds, ax
jnc written ; удалось-записываем

mov dx, wrtnerr ; не удалось-выводим еррор
mov ah, 0x09
int 0x21

written:
mov bx, [hfile] ; закрываем файл
mov ah, 0x3E
int 0x21
jnc exit ; и выходим
mov dx, closerr ; ошибка закрытия
mov ah, 0x09
int 0x21

exit:
mov ax, 0x4c00 ; выход
int 0x21

segment data
hello: db 'I"ll dump bios to file', 0dh, 0ah, '$'
openerr: db 'File create error', 0dh, 0ah, '$'
wrtnerr: db 'File write error', 0dh, 0ah, '$'
closerr: db 'File close error', 0dh, 0ah, '$'
fn: db 'BIOS.ROM', 0
hfile: resw 1 ; описатель- слово

segment stack stack
resb 64 ; выделим под стэк 64 байта
stacktop:

Уходит пусть старый,злой год и приходит новый!


Всем хорошего праздника,позитива и веселья!УРА!!!


1 комментарий:

  1. Baccarat, Craps, Craps, and Poker - Casino.com
    Baccarat, craps, craps and 샌즈카지노 poker. The tables 바카라사이트 at Casino.com bring you the best in 바카라 사이트 gaming. Our live dealers make your bets every day!

    ОтветитьУдалить