none
自作GINAでWindowsシャットダウンダイアログだけ呼ばれません… RRS feed

  • 質問

  • WindowsXP Professionalで、VC++ 2008 Express Edition を使っています。

     

    system32内のmsgina.dllの代わりとなる自作dllを作り、
    そのdllへのパスをレジストリ「HKLM\software\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL」に設定しました。

     

    これによりログオン・ログオフ関連のほとんどの処理は自作dllのほうが呼ばれるようになったのですが、
    タスクバーの「スタート」→「シャットダウン」で出てくるWindowsのシャットダウンダイアログだけが
    どうしてもデフォルトのsystem32内にあるmsgina.dllのほうが呼ばれてしまいます。

     

    自作dllのほうを呼ばれるようにするにはどうすればいいでしょうか?
    どこか別のレジストリに設定すればいい、と言うのであれば楽なのですが…。

     

    何かご存知の方がいらっしゃいましたら、ご教授よろしくお願いします。

    2008年11月11日 14:55

回答

  • OSのセキュリティ上、あたりまえだと思います。

    Embedded系ならエクスプローラをインストールしないという手が

    あります。

    ところで、いったい何がしたいのでしょう。

    2008年11月13日 7:23
  • 仲澤@失業者 さん

     

    お返事ありがとうございます。

    なるほど、セキュリティ的にこういうところは簡単に変更できないようになっているのですね。

     

    ログオン・ログオフ時に表示されるダイアログのWindowsロゴ画像を別なものに出来ないかと思い、

    まずはスタブを作ってGINAの動作を確認していました。

     

    シャットダウンダイアログ以外はレジストリに設定したGINAが呼ばれてるので

    なぜこれだけ呼ばれないのかなぁと思った次第です。

     

    もう少し自分で試行錯誤してみます。

    ありがとうございました!

    2008年11月13日 13:48

すべての返信

  • OSのセキュリティ上、あたりまえだと思います。

    Embedded系ならエクスプローラをインストールしないという手が

    あります。

    ところで、いったい何がしたいのでしょう。

    2008年11月13日 7:23
  • 仲澤@失業者 さん

     

    お返事ありがとうございます。

    なるほど、セキュリティ的にこういうところは簡単に変更できないようになっているのですね。

     

    ログオン・ログオフ時に表示されるダイアログのWindowsロゴ画像を別なものに出来ないかと思い、

    まずはスタブを作ってGINAの動作を確認していました。

     

    シャットダウンダイアログ以外はレジストリに設定したGINAが呼ばれてるので

    なぜこれだけ呼ばれないのかなぁと思った次第です。

     

    もう少し自分で試行錯誤してみます。

    ありがとうございました!

    2008年11月13日 13:48
  • まず、その様なOSの改造はMicrosoftが禁止しています。

     

    しかし、ブート画面やログオン画面を変更できるフリーソフトが

    多数出回っているのも事実です。変更することだけが目的なら、このようなソフトを「実験的に」

    利用してみてはどうでしょうか、ただし、これらのソフトの内のいくつかはボットであったりして、

    極めてセキュリティ上の危険がありますので、覚悟(OSの再インストール等)して使ってください。

     

    さて、その中でMicrosoftが唯一公式に許しているのが起動時のロゴ画面の変更です。

    これは、Boot.ini の変更と、640×480(16色)のビットマップを作成するだけで、危険性も

    ありません。 Boot.ini のオプション /BOOTLOGO /NOGUIBOOT について調べてみてください。

     

    「それでも挑戦する」という気概があるのであれば、

    1.起動時ロード画面は「ntoskrnl.exe」の中のリソースにあります。

    2.カーネル自体を差し替えるにはHDDのMBR(マスターブートレコード)を変更します。

      パーティションがきってある場合はBR(ブートレコード)も変更しなければなりません。

      成功すると MBR->BR->自作カーネル->ntoskrnlの順に起動できる「かも」しれません。

    3.残念ながらログインの詳細については知りません。

    4.本気でやるならWindows XP Embedded 開発ツールを購入しましょう。

      これを使うと(メインボードにもよりますが)USBストレージ(メモリ/HDD)から起動できる

      ようにできるため、より安全に実験ができます。

    5.Embeddedの関連ドキュメントにはサードパーティーのGINAに関する情報が含まれています。

     

    では、くれぐれも自己責任でお願いします。

     

     

    2008年11月14日 5:20
  • 仲澤@失業者 さん

     

    >まず、その様なOSの改造はMicrosoftが禁止しています。

    そうでしたか…。以後気を付けます。

    いろいろとありがとうございました!

    2008年11月14日 11:30
  •  仲澤@失業者 さんからの引用

    まず、その様なOSの改造はMicrosoftが禁止しています。

    「そのような」の範囲がよく分からないのですが、ログオン画面のカスタマイズ等は結構行われている印象がありました。(メーカー製ノートPC等)

    禁止としているソースや、「そのような」が指し示す範囲について教えて頂けないでしょうか。

     

    GINAは、Vistaでは廃止されていますけれども、参考までに知っておきたいと思って質問させて頂きました。

    2008年11月14日 16:33
    モデレータ
  • 指紋認証なんかもXPではGINAで実装してましたね。

    VistaではCredentialProviderに変わっているだけで認証部分の変更は禁止されていないと思います。

     

    2008年11月17日 11:31
  • 「OSを改造しちゃいかん」と箱にかいてあります。が、詳しい範囲は不明。一般に

    1.BIOS ・・・変更できない

    2.MBR/BR ・・権利関係を知りません。 まぁ、やってる人もいます。

    3.ローダー・・・ntldr 改造不許可

    4.カーネル・・・ntoskrnl.exe 改造不許可 画面を変更できるソフトあり

    5.ログオン・・・winlogon.exe(だけだったかな)改造不許可 画面を変更できるソフトあり

    6.シェル・・・・・explorer.exeは改造不許可 独自shellに差し替えは許可

    ローダーから先はMS製品なので改造不許可です。

    XP Embeddedについては作成対象がOS自体になるのでOSの製品化はOK

    ただし、FP2007ごろまでは「Loading...」画面の改造はだめ(カーネルの改造にあたる)

    という記述がどっかにあった・・・けど、たぶんEmbeddedの英文マニュアルの中だとおもいます。

    ログオン、ログオフについてはまったくしりません。あしからず。

     

     

    2008年11月18日 2:59
  •  仲澤@失業者 さんからの引用

    「OSを改造しちゃいかん」と箱にかいてあります。が、詳しい範囲は不明。一般に

    すみません。

    先の追及するようなコメントは、下記のやりたいことを受けた発言だったというのが読み取れていませんでした。

    失礼しました。

     

     kelp さんからの引用

    ログオン・ログオフ時に表示されるダイアログのWindowsロゴ画像を別なものに出来ないかと思い、

    まずはスタブを作ってGINAの動作を確認していました。

     

    確かにWindowsであることを隠したいのであれば、Embedded系でないといけませんね…。

    2008年11月18日 14:33
    モデレータ