2026/03/07
噂のノートPCのBIOSを調べた
CHUWI CoreBook X 7430Uを取り巻く噂の検証のため、UEFI BIOSの解析を行いました。
ご注意
本記事の情報を引用・転載などする際は、必ず この記事のURL、およびサイト名(えぬえす工房)を出典として明記してください。 動画等で紹介する場合は、概要欄への記載をお願いします。
なんか騒がしい
3/6に、CHUWIの「CoreBook X 7430U」で、CPU-Z等で得られるCPUはRyzen 5 7430Uと出るが、実際はRyzen 5 5500Uが搭載されているとの報告がありました。
CHUWIにCPU偽装疑惑。ノートPCが7430Uと表示も実は5500U?
少し調べると分かりますが、どうやらこの問題は2ヵ月ほど前からredditでも話題になっているようです。
Does the CoreBook X 7430u actually have a 5500u?
Chuwi CoreBook X 7430U, false advertising, lots of problems, and non existent support.
BIOSイメージを調べれば真相がわかりそうでしたが、BIOSアップデートが公開されていないようです。 そうなると実機からイメージを吸い出すしかないのですが、ちょうど検証目的で買った知り合い(そらりす氏)から借りることができました。
BIOSイメージのダンプと解析
このPCはAMIBIOSが使われているため、AFUWINなどのツールを使うことで、本体を分解することなくBIOSイメージをダンプすることができます。
ダンプしたイメージを、UEFIToolで調べます。 なお、ダンプしたBIOSイメージのバージョンは「AB525_V00.01_0003」です。
検索画面で非Unicode文字列の「7430U」を検索すると、一件引っかかります。 引っかかったモジュールの名前を見ると「AmdCcxVhRnPei」とあり、NVMeやファイルシステムなどのデバイスドライバがロードされるDXEよりも前の段階である、PEIで読み込まれるモジュールです。

とりあえず、このAmdCcxVhRnPeiの実行可能ファイル(*.efiファイル)をUEFIToolの「Extract Body」で抽出します。
Ghidraによる解析
抽出した実行可能ファイルを、リバースエンジニアリングツールであるGhidraに読み込ませます。
自動解析を回した後に、定義済み文字列の一覧を見ると偽装先とされている "AMD Ryzen 5 7430U with Radeon Graphics" の文字列があることが分かります。

この文字列を使っている処理を探すと、0x09C12A10 から始まる関数が見つかります。
さらにこの関数の呼び出し元を調べると、この関数の名前が CcxVhSetBrandString であることが推測できます。
7430Uの文字列を使った処理は、0x09C12A89 から始まります。

実は、3/6の夜の時点で、偽装に使っていると思わしき手法が推測されています。
https://t.co/bjXpsdfHpv
— PG_MANA@作って理解する仮想化技術 (@PG_MANA_) March 6, 2026
実はCPUIDの値はBIOSでMSRでセットされていて、BIOSで偽装すればNativeに偽装できるのだ(ここじゃないかも&違うかも) https://t.co/Pvr5sHj56J
このpostを見るまで知らなかったのですが、どうやら最近のAMDのCPUは cpuid 命令で返すCPUの名前を変更することが可能なようです。
変更先の名前はCPUモデル固有の設定を持つ場所であるMSRの 0xC0010030 ~ 0xC0010035 に格納されます。
これを踏まえて改めて7430Uの文字列を使った処理を見てみると、以下のような擬似コードで表される内容であり、MSRへの書き込みを wrmsr 命令で行っています。
msrAddr = 0xC0010030;
str = "AMD Ryzen 5 7430U with Radeon Graphics"; // BrandString
do {
// 一回のwrmsrで64bit分、つまり8文字セットできる
// レジスタは32bitのため、4文字ずつ分ける
lower = *(uint32_t *)str;
upper = *(uint32_t *)&str[4];
wrmsr(msrAddr, (upper << 32) | lower);
msrAddr++;
str += 8;
} while (msrAddr <= 0xC0010035);
よって、3/6夜に推測されていた、MSRを使う方法でCPU名の偽装が行われているということが分かりました。
対策は?
このような偽装を見破る方法としては、CPU名だけで信用せず、CPUの世代をより細かく識別できる情報(Family / Model / Stepping)が正しいか確認することが有効です。 しかし、Zen系アーキテクチャでは過去に任意のマイクロコードパッチを適用できる脆弱性(EntrySign)が発見されています。 仮に、EntrySignのようなマイクロコードを書き換えられる脆弱性が使われた場合、これらの情報も偽装される可能性があります。
また、分解して刻印を確認し、IntelであればS-spec(スペックコード)、AMDであればOPNなどから実際の製品が何かを調べるという方法もあります。 しかし、これもCPU刻印の偽装(リマーク)がされる等の問題があり、限界があるのは確かです。
結局のところ完璧な方法は存在しないのが現状ですが、上記の方法である程度は緩和できると思われます。