FSC EM v5535 bios hack

Tegnap igertem, hogy ma leirom hogyan is oldottam meg hogy mukodjon a Hardware-s Virtualizacio:

Eloszor is kerestem egy ujabb biost, letoltottem, es felfrissitettem.Igy most a legujabb biosal fut a gep, allitolag javigattak benne valamit.Virtualizaciot tovabbra sem lehet bekapcsolni :(
Talaltam egy progit: Phoenix BIOS Editor - ezzel lehet modositani a phoenix biosokat,

de ez sem volt jarhato ut, ugyanis mikor kinyittam a bios filet, mindenfele errorokat dobott a program, de vegul kinyitta.Ezekutan nem mertem az altala generalt uj biost raflashelni, tehat ez igy nem jarhato ut. Tovabb keresgeltem, es rajottem hogy az editor kicsomagolja a bios-t egy temp mappaba(mivel LZINT-el tomoritett a bios file).Elovettem a Netwide Assembler-t es disasselereltem a fileoat, es kerestem bene ezt:


mov ecx,0x3a

Megtalaltam a BIOSCOD5.ROM -ban
Hozzatartozo kod reszlet:


00008E9A  66B93A000000      mov ecx,0x3a
00008EA0  0F32              rdmsr
00008EA2  668BD8            mov ebx,eax
00008EA5  83E305            and bx,byte +0x5
00008EA8  B8AD01            mov ax,0x1ad
00008EAB  9AEA5A00F0        call word 0xf000:0x5aea
00008EB0  C1E002            shl ax,0x2
00008EB3  40                inc ax
00008EB4  38D8              cmp al,bl
00008EB6  7432              jz 0x8eea
00008EB8  B8AD01            mov ax,0x1ad
00008EBB  9AEA5A00F0        call word 0xf000:0x5aea
00008EC0  7412              jz 0x8ed4
00008EC2  6683CB04          or ebx,byte +0x4
00008EC6  B88400            mov ax,0x84
00008EC9  9AEA5A00F0        call word 0xf000:0x5aea
00008ECE  7404              jz 0x8ed4
00008ED0  6683CB02          or ebx,byte +0x2
00008ED4  F6C301            test bl,0x1
00008ED7  7408              jz 0x8ee1
00008ED9  BAF90C            mov dx,0xcf9
00008EDC  B00F              mov al,0xf
00008EDE  EE                out dx,al
00008EDF  EBFE              jmp short 0x8edf
00008EE1  668BC3            mov eax,ebx
00008EE4  6683C801          or eax,byte +0x1
00008EE8  0F30              wrmsr

A fenti kodban lathato egy hivatkozas a 0x1ad memoriacimre


00008EB8  B8AD01            mov ax,0x1ad

Ezt a cimet az nvramban kell keresni, es atirni 0 rol 1 re. Ezt vagy linuxon miutan beolvastuk az nvram module-t a /dev/nvram -on keresztul lehet megcsinalni, vagy pedig van egy jo oreg DOS program: symcmos.exe
En a symcmos -al csinaltam, ugyanis itt nagyon egyszeruen kidumpoljuk az nvramot:


symcmos -v2 -lcmos.sav

utana szerkesztjuk a file-t(ez egy szoveges file) megkeressuk a kovetkezo sort:


(01AD) [0000]

atirjuk erre:


(01AD) [0001]

Ezutan visszairjuk a cmosba:


symcmos -v2 -ucmos.sav 

Kikapcsoljuk a szamitogepet(reboot nem jo), es maris hasznalhato a Hardware-s Virtualizacio. :) Gyonyoruen fut a XEN.Es a biost sem kellett modositani.Egyetlen hatranya a dolognak, ha resetaljuk a biost, vagy beolvassuk a defaultot, akkor ujra meg kell patchelni :P.
Ha valakinek hasonlo problemaja van, irjon, es segitek neki megoldani.

U.I: Nem ertem hogy miert jo az FSCnek ha ki van kapcsolva.Adott hozza a hardware(1 biten mulik az egesz)

Hozzászólások

Ez szép. grat ;)
---
Ketchup elementál megidézése a sajt síkra

Ez a szép, nem a hardware hack. :)

Irigyellek, azért ehhez kell egy kis bátorság is. Meg aztán ebből is látszik, hogy mire jó az assembly tudás. Nekem is kellene, csak ahhoz kellene jó doksi, meg kitartás a részemről. :)

és tényleg csak a cmos-ban történik változás? tehát el sem lehet (végleg) rontani...

lehet, hogy pont erre van szükségünk, nagyon állat lenne ha működne :)

Nem ertem hogy miert jo az FSCnek ha ki van kapcsolva.Adott hozza a hardware(1 biten mulik az egesz)

Pénzügyi okok? :))