Creativeサウンドカード 2 ― ドライバのデジタル署名が消える

Temp内を削除したら、ドライバのデジタル署名がなくなった。

Creative Sound Blasterのドライバインストール後、C:\Windows\Tempに残るものがあります。

SBXF_PCDRV_L11_2_18_0015B.exeの場合
(OS:Windows8 32bit)

  • C:\Windows\Temp\CRF000 (フォルダー)
  • C:\Windows\Temp\ctpxst32.exe
  • C:\Windows\Temp\cttele32.dll

(64bit Windowsの場合は、ctpxst64.exe、cttele64.dllもあるかもしれません)

普通、C:\Windows\Tempフォルダーにあるものは保管する必要のないものばかりなので、削除しています。

しかし、このCreative Sound Blasterドライバの場合、下の2つをを削除すると、ctpxst32.exeとcttele32.dllだけデジタル署名がなくなります。サウンドカードの動作には特に影響はないようです。

C:\Windows\Temp内削除 ビフォー・アフター

変化は、サウンドカードの使用ドライバの一覧に表れます。

ドライバ一覧の表示方法

デバイスマネージャー
→サウンド、ビデオ、およびゲームコントローラー
→Creative SB X-Fi
→ドライバータブ
→ドライバーの詳細

  • C:\Windows\Temp\ctpxst32.exe
  • C:\Windows\Temp\cttele32.dll

上の2つのファイルを削除する前

  • C:\Windows\Temp\ctpxst32.exe : デジタル署名あり
  • C:\Windows\Temp\cttele32.dll : デジタル署名あり

SB-Fi Drivers - 2 files in C:\Windows\Temp

削除した後

  • C:\Windows\system32\ctpxst32.exe : デジタル署名なし
  • C:\Windows\system32\cttele32.dll : デジタル署名なし

SB-Fi Drivers - 2 files moved to system32 folder, No Digital Signature

Tempフォルダー内とsystem32フォルダー内にあるものは、まったく同じファイルです。改変、バージョン違いの可能性はありません。

sigverifコマンドでチェックしてみると、もうファイルが存在しないのにもかかわらず、C:\Windows\Tempフォルダー内のctpxst32.exeとcttele32.dllの署名がないと表示されます。

(署名が有効でない時だけでなく、対象のファイルが存在しない時も署名がないと表示されます)

ちなみに、C:\Windows\Temp\cttele32.dllの削除直後はC:\Windows\system32\cttele32.dllがありません。PCを再起動などすると作成されるようです。

C:\Windows\System32\DriverStore\FileRepository\wdma_emu.inf_x86_c0739f2cbe60cf4c\Common\i386\cttele32.dllを、C:\Windows\system32フォルダー内に手動でコピーしても大丈夫でした。でもやっぱりデジタル署名がありません。

なくなったデジタル署名を復活させる。

デジタル署名がないままでも動作に支障はなさそうですが、ずっと気になっていました。

いろいろ試して、やっとドライバのデジタル署名マークを表示させる方法が見つかりました。なんの得にもなりませんが。

問題は、セキュリティカタログ(wdm_emu.cat、wdmemu64.cat)の.iniファイル、その中でのドライバの場所指定にありました。

そこで、wdma_emu.infを編集。解決しました。
(32bit Windowsの場合はwdma_emu.infだけですが、64bitの場合はwdmemu64.infも編集することになるでしょう)

C:\Windows\System32\DriverStore\FileRepository\wdma_emu.inf_x86_c0739f2cbe60cf4c\wdma_emu.inf を編集します。
以下、編集方法です。

管理者権限のあるユーザーアカウントでWindowsにログオン。

ファイルへの書き込み許可を取得する。

  1. wdma_emu.infのプロパティから、ファイルの所有者をSYSTEM → Administratorsに変更
  2. Administratorsによる書き込みを許可する。
  3. ファイルの所有者をSYSTEMに戻す。

メモ帳を「管理者として実行」

(メモ帳またはnotepad.exeで検索、右クリック→管理者として実行)

  1. ファイル→開く
  2. ファイル名のBOXに、
    C:\Windows\System32\DriverStore\FileRepository\wdma_emu.inf_x86_c0739f2cbe60cf4c\wdma_emu.inf
    と入力して、開く
  3. [DestinationDirs]の少し下にある2行を変更。

    Temp.CopyList.ntx86 = 10,Temp ; %SystemRoot%\Temp

    Temp.CopyList.ntamd64 = 10,Temp ; %SystemRoot%\Temp

    Temp.CopyList.ntx86 = 11 ; %SystemRoot%\System(Win98), %SystemRoot%\System32(Win2K)

    Temp.CopyList.ntamd64 = 11 ; %SystemRoot%\System(Win98), %SystemRoot%\System32(Win2K)

    edit wdma_emu.inf

  4. ファイルを上書き保存
    (書き込み許可がなかったり、メモ帳を管理者権限で起動していない場合は、上書きできません)

SB-Fi Drivers - 2 files in system32 folder, Digital Signature ok

肝心なのは、「=」の後ろの「10,Temp」を「11」に変えること。
Temp.CopyListに含まれるファイルがどのフォルダーに入っているかを示します。

  • 10,Temp … C:\Windows\Temp
  • 10 … C:\Windows
  • 11 … C:\Windows\system32

(Windows(XP以降)がCドライブにインストールされている場合)

Temp.CopyList.ntx86とTemp.CopyList.ntamd64の各リストに含まれるもの。

[Temp.CopyList.ntx86]
ctpxst32.exe
cttele32.dll

[Temp.CopyList.ntamd64]
ctpxst32.exe
cttele32.dll
ctpxst64.exe
cttele64.dll

それにしても、なぜTempフォルダー内のファイルを使う前提になっているのか。不思議です。

関連記事