■Error:1802 Unauthorized network card
前回の続き>そのうちチェックルーチン自体を潰しておきたいかなー。
という所で終わっていたのでその続き。
Lenovo製パソコンのWi-Fiカードの交換制限をなんとかするよ。
ホワイトリストはエラーメッセージと同じモジュールに存在するらしいので、まずはそれを探す。
UEFITool 0.28.0にて「Power off and remove」で検索すると、3FEDD4A3-8112-4534-8DB2-E886EB35075Eが引っ掛かるので、Extract bodyで抽出。
バイナリエディタで抽出したファイルを読み込み、ホワイトリストを確認。
元々のWi-Fiカード(AC 3165)のIDがPCI¥VEN_8086&DEV_3166なので0x8680_6631を探すと、それらしき物が。
目を細めてよく見ると0x8c16_4200〜0x8680_F324辺りがそれっぽいのと、0xAA55_AA55が意味ありげな数値なので多分テーブルの終端マークかなと予想。
8086がintelのベンダIDなのは知っていたけれど、168cはAtherosのベンダIDだった。
IDAのフリー版にて逆アセンブル。
Binary searchで55AA55AAを検索すると、
cmp eax,55AA55AA
が見つかったので、周辺を見るとループしながら何かと比較して0x55AA_55AAなら飛び出している部分がエラー終了で、6行上の、
cmp [rsp+48h],eax
jz short loc_6499
がID一致として正常終了している様子なので、ここを
jmp short loc_6499
と無条件ジャンプするように書き換えてやるとよさそう。
具体的には抽出したファイルのアドレス$647eを 74>EB に書き換え。
後は書き換えたファイルをUEFIToolにてReplace bodyしてUEFIに書き戻して、出来上がったファイルをCH341Aで直接フラッシュメモリーに書き込んで終了。
無事起動を確認…これでどんなWi-Fiカードも使えるようになった。
ホワイトリストを書き換えるよりも許可処理自体を無効化した方が汎用性があって気分がいいけれど次にWi-Fiカードを交換するのは当分先だろうし、その頃にはこのパソコンは陳腐化しているので多分交換なんてしない予感。
まぁ単なる頭の体操と自己満足だけれど楽しかった。
さらっと書いてるけれど慣れないことだらけで、実際は二週間以上掛かってると言うね( ´Д`)y~
2021-01-29(金) 03:43:17|全般
ツイッターはこっち
年齢:すっかりいいオヤジ。