Něco málo a CMOS aneb heslo do Setupu

       Jak  asi jistě  všichni víte  CMOS je  64 bytů  velká paměť s velmi
     malou spotřebou. Proto  může být napájena baterkou a běžet, i když je
     počítač  bez přísunu  energie. Jsou  tam uložena  různá důležitá data
     (viz. tabulka)

     +----------------------------------------------------------------------+
     |                          Struktura paměti CMOS                       |
     +----------------------------------------------------------------------+
                                                       
     00H-0dH použito hodinami reálného času
     0eH     stavový byte POSTu
     0fH     stavový byte spadnutí (shutdown)
     10H     typ mechaniky            -----+
     11H     rezervováno                   |
     12H     typ hard disku                |
     13H     rezervováno                   +-> konfigurační záznam chráněný
     14H     byte vybavení                 |   kontrolním součtem (10H-20H)
     15H-16H velikost základní paměti      |
     17H-18H přídavná paměť nad 1M         |
     19H     typ hard disku 1 ( > 15)      |
     1aH     typ hard disku 2 ( > 15)      |
     1bH-2dH rezervováno              -----+
     2eH-2fH místo kontrolního součtu paměti CMOS adres 10H až 20H
     30H-31H přídavná paměť nad 1M
     32H     století v BCD (např. 19H)
     33H     různé
     34H-3fH rezervováno

       Ale jak jste  si jistě všimli není zde ani  zmínka o uložení hesla.
     Že by  nebylo uloženo v CMOSce?  Ale když ne tam, tak kde tedy? Nikde
     jinde být nemůže. A to, že v této tabulce není, není moje chyba,je to
     chyba literatury. Nikde se o heslu  v CMOS nedočtete (alespoň já jsem
     se  nedočetl). Takže, kde ho  najít. Logicky  jsem uhodl,  že budou v
     místech označených  jako rezervováno. Jelikož  má heslo 6 znaků, musí
     být buď  v oblasti 1bH -  2dH  nebo v 34h  - 3fh. Myslel jsem  si, že
     bude uloženo  v té první, protože  je kontrolováno CheckSumem. Napsal
     jsem  si prográmek,  který čte  CMOS. (je  to v  Plácalu abyste  tomu
     rozuměli.)

     Var c,d:byte;
     begin
       Writeln('Vypis CMOS');
       for c:=0 to 3f do
       begin
        asm
          mov al,c
          out 70h,al
          in al,71h
          mov d,al
        end;
        write(d:3,'; ');
       end;
       writeln;
     end.

     Několikrát jsem změnil  heslo a zjistil jsem, že se  mění byty od 37h
     do 3f(tedy v  místě o kterém SYSMAN píše, že  si tam můžete zapsat co
     chcete!). Pokusil jsem se zjistit, jak jsou šifrovány, ale nepodařilo
     se to. Nu což musel jsem použít silnější kalibr. Prostě jsem tu část,
     ve které je uloženo heslo, přepsal  tak, aby vypadala jako  bez něho.
     A opravdu, už to fungovalo. Tady  máte prográmek, který  vám to heslo
     vymaže.  (Upozornění: funguje  jistě jen  na AMIBIOS  1992, na jiných
     může CMOSku rozladit, takže si radši tu původní uložte. Budete-li ale
     postupovat podle tohoto návodu, můžete si program jednoduše přepsat.)

                                                                      HIPP


            výheň