e-mail    Debatní kniha    Mapa stránek    Hlavní  
 perličky 
 

Pro zapomnětlivé uživatele počítačů aneb jak se dostat do setupu

Ing. Petr Mandík

Možná trpíte, stejně jako někteří ostatní uživatelé počítačů, jistým stihomamem. Máte pocit, že vám neustále někdo mění autoexec.bat, config.sys a dokonce i nastavení v CMOS. Kvůli konfiguračním souborům máte zablokovaný disk, heslo do setupu měníte každý den dvakrát. Až jednoho dne to heslo zapomenete...

V této situaci nezbývá, než vzít šroubovák, kus drátu a drsně zkratovat zálohovací baterii. Nebo spustit následující perličku, která vám přístup do setupu zase odblokuje.

Její princip vychází z faktu, že se po resetu počítače provádí kontrola obsahu paměti CMOS podle v ní uloženého kontrolního součtu. Je-li součet v pořádku, pak se normálně nabootuje. Není-li, pak heslo-neheslo, vstup do setupu je volný, neb se předpokládá, že je vybitá zálohovací baterie, nebo došlo k jiné chybě. Můj program tedy změní jeden z bajtů v CMOS, chráněný kontrolní sumou (přičte k němu jedničku) a provede studený restart počítače.

Program COM, který vznikne (kompilací: tasm cmosopen.asm, linkováním: tlink cmosopen.obj /t), zabírá 31 bajtů.

(Předpokládám, že máte kdesi opsán obsah paměti CMOS svého počítače. Pokud něco takového považujete za zbytečné, pak vám vřele doporučuji doplnit perličku ještě zálohováním obsahu CMOS na disk. Jinak byste mohli strávit další hodiny nepříjemným hledáním původního nastavení.)

Je mi velmi líto, že jsem vaši paranoiu zřejmě ještě zhoršil. Můžete věřit, že se uvedená informace nedostane do rukou těm, kdo s takovou radostí modifikují vaši CMOSku? Nebo vám stále ještě zbývá možnost, zablokovat heslem celý počítač. Tady bude moje perlička bezmocná i v případě vaší zapomnětlivosti.

Program byl odzkoušen na počítačích s AMI BIOSem různých verzí a Award Modular Biosem 4.20.

;****************************************************** ; VSTUP DO BLOKOVANÉHO SETUPU (CMOS-OPEN) ; (c) Petr Mandík 1993 ;****************************************************** MODEL TINY CODESEG STARTUPCODE start: mov al,20h out 70h,al ;z adresy 20h CMOS jmp $+2 ;(prodleva) in al,71h ;přečti obsah inc al ;a zvětši jej o 1 mov bl,al mov al,20h out 70h,al ;na stejnou adresu jmp $+2 ;(prodleva) mov al,bl out 71h,al ;ulož tuto změněnou ;hodnotu =>BAD CHECKSUM jmp dword ptr cs:[reset] ;a resetni počítač reset: dw 0 ;offset pro adr. stud. startu dw 0ffffh ;segment pro adr. stud. startu end


Pascal - hlavní
Překladače
Vlastní články
Převzaté články
Věci na stáhnutí
Odkazy k tématu
BP7 buglist
Chyba Run-time 200

BASIC