以下が必要です。
•サムスンのFWモジュールエクストラクター
•Phoenix BIOSエディター
•SYMCMOS-リーダー/ライターCMOS
•NDISASM-x86コードの逆アセンブラー
•DOSを使用した起動可能なフラッシュドライブ/ディスケット
さあ、始めましょう!
SamsungのWebサイトからファームウェアをダウンロードします。 ファームウェアにはフラッシャーとともに1つの.exeファイルが付属しているため、ファームウェアファイル自体を取得する必要があります。 これには、SamsungのFW Modules Extractorを使用します。
すべてのファイルが解凍されるわけではありませんが、重要ではありません。
Phoenix BIOS Editorでファームウェアを開き、折りたたみ、TEMP Phoenix BIOS EditorフォルダーからBIOSCOD * .ROMファイルを抽出します。 彼はファームウェアを解凍しました。 ファイルを別のフォルダーにコピーし、Phoenix BIOS Editorを閉じます。
楽しみが始まります。 ファームウェアからファイルを分解します。私の場合、7(0-6)がありました:
$ for i in {0..6}; do ndisasm -a -p intel -b 16 BIOSCOD0$i.ROM > BIOSCOD0$i.dasm; done
グーグルで、mov ecx、0x3aコマンドを探す必要があることがわかりました:
$ grep 'mov ecx,0x3a' *.dasm
BIOSCOD04.dasm:0000BE99 66B93A000000 mov ecx,0x3a
素晴らしい、コマンドはBIOSCOD04.dasmファイルにあります!
0000BE99 66B93A000000 mov ecx,0x3a
0000BE9F 0F32 rdmsr
0000BEA1 668BD8 mov ebx,eax
0000BEA4 83E305 and bx,byte +0x5
0000BEA7 B86F06 mov ax, 0x66f
0000BEAA 9A355400F0 call word 0xf000:0x5435
0000BEAF C1E002 shl ax,0x2
0000BEB2 40 inc ax
0000BEB3 38D8 cmp al,bl
0000BEB5 7432 jz 0xbee9
コードから、アドレス0x66fの値がaxレジスタに書き込まれ、alとblの間で比較が行われ、両方の値が同じ場合、アドレス0xbee9(仮想化無効化アドレス)にジャンプすることがわかります。
SYMCMOSの時代が来ました。 起動可能なUSBフラッシュドライブ/ディスケットを作成し、プログラムをメディアに書き込み、起動して実行する
symcmos -v2 -lNVRAM.TXT
サンプルコンテンツを含むnvram.txtファイルが作成されました。
( SYMBOLIC CMOS EDITOR - Version 643710-035 )
CRC = 350F
(0015) [0000]
(0018) [0001]
(001B) [0001]
(0021) [0000]
(0024) [0001]
(0027) [0001]
(002A) [0000]
(002D) [0001]
(0030) [0000]
(0036) [0000]
(0039) [0000]
(003F) [0001]
(0042) [0000]
...
(066F) [0000]
(0672) [0000]
(0675) [0000]
(0678) [0002]
(067B) [0000]
(067E) [0000]
(0681) [0002]
仮想化を担当するパラメーターの値が0に設定されていることがわかります。このファイルで直接変更します。
(066F) [0001]
DOSを再度起動して実行します。
symcmos -v2 -uNVRAM.TXT
再起動します。 タダム! ハードウェア仮想化が有効化されました!
興味深いリンク:
http://tjworld.net/wiki/Sony/Vaio/FE41Z/HackingBiosNvram-Linux用のCMOSファームウェアなしでVT-xをアクティブ化するプログラム
http://forum.notebookreview.com/acer/465936-acer-laptop-phoenix-bios-enable-virtualization-test-machine-acer-aspire-9420-a.html-すべての始まり