パスワードを忘れた? アカウント作成
15449878 story
Windows

Windows 11、レジストリキーにASCII外の文字を使用するアプリと互換性の問題 59

ストーリー by nagazou
互換性結構やばそうなようで 部門より
headless 曰く、

サブキーを含むレジストリキー名で ASCII 以外の文字を使用するアプリと Windows 11 との間に互換性の問題が確認されたそうだ (Windows 11 の既知の問題と通知BetaNews の記事Softpedia の記事)。

影響を受けるアプリは開けなくなるほか、BSOD が発生する可能性もあるという。また、影響を受けるレジストリキーに ASCII 以外の文字が含まれている場合は修復できない可能性もあるとのこと。そのため、影響を受けるアプリのインストールされたデバイスでは Windows 11 の提供が保留されており、問題が解決するまで強制的なアップグレードを実施しないことも推奨される。

組織で更新コンプライアンスを利用している場合、Cốc Cốc Browser のあるデバイスのセーフガード ID は 35891494、Aplicação Autenticação.gov のあるデバイスのセーフガード ID は 36632506 とのこと。

ただし、これらのアプリを実際にインストールして起動してみたが、問題は発生しなかった。これらのアプリが作成するレジストリキーはそれぞれ「HKCU\Software\CocCoc」「HKCU\Software\PTEID」であり、サブキーを含めて ASCII 以外の文字が使われている部分はない。Cốc Cốc は本件を受けた検証記事を公開し、特に問題は見つからなかったと説明している。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2021年10月14日 12時06分 (#4131960)

    「公的個人認証サービス 利用者クライアントソフト」(JPKI利用者ソフト)のインストーラーが途中で応答不能になるらしい。
    https://forest.watch.impress.co.jp/docs/news/1358208.html [impress.co.jp]

  • by Anonymous Coward on 2021年10月14日 12時23分 (#4131970)

    Linuxの/etc/に日本語名のディレクトリやファイル作るようなもんだよなぁ
    それでまともに動くOSってかなり歪なんじゃないかな

    • by Anonymous Coward on 2021年10月14日 12時28分 (#4131976)

      Unicodeで表現できる範囲は使えるようにしなきゃ駄目でしょ。近代的なOSならば。

      親コメント
      • by Anonymous Coward

        Unicodeで表現できる範囲は使えるようにしなきゃ駄目でしょ。近代的なOSならば。

        /etc/オレが作ったイカしたソフト/オレの最強設定.conf

        こうですね

      • by Anonymous Coward
        理想ではあるけれどUnicodeって高機能すぎて大丈夫?って不安になる
        サロゲートペアとか人間とマシンが中途半端に関わるところだとね…
        もう人間がレジストリ触るなって感じだろうけど
        • by Anonymous Coward

          個別のアプリや実装で再発明すんなって話だよ。必ず文字列扱う共通のライブラリなりを経由して、操作してればUNICODEの複雑さなんか(ライブラリ作者以外は)気にする必要はない。

          • by Anonymous Coward
            うーん。どんどん追加されるUNICODE文字に対してそれはそれで怖い
            Windowsのビルドバージョンによってレジストリの解釈が変わってBSODが…
            • by Anonymous Coward

              XML 1.0がそれをやろうとして失敗してXML 1.1で対応しようとしたらXML 1.1自体が失敗して、結局XML 1.0 5th Editionで後方互換性を一部犠牲にしてまでXML 1.1の変更をほとんど丸呑みする羽目になってたな。

      • by Anonymous Coward

        そのへんがダメな限りLinuxデスクトップに覇権は来ないでしょうね〜
        Androidみたいにガチガチに縛った時のみ例外。

        …だったらWindowsの方がいいや。

    • by Anonymous Coward on 2021年10月14日 12時55分 (#4132002)

      HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings
      ここ見てみ。多分すごいことになってると思うよ。

      VB4(?)~VB6とVBAが好きに使えるレジストリ領域で、設定保存のために気軽に使える。
      ホント気軽。こんなコード。

              Call SaveSetting("アプリ名だぞ", "セクションその①", "キー名の指定", "値です")

      当たり前のように非ASCII使ってるはずだ。特に動作不良起きるとか聞いたことも無い。

      実際、Windows10環境で簡単なプログラム組んでみたけど当然なんら支障は無いし、レジストリエディタで見れば非Asciiのキーができている。
      「能」とかの「\」文字入れてもなんもおきない。(unicodeだから当たり前)

      おそらくMSがWindows11で効率化か何かのためにやらかしたんだろう。

      ところで、上記コードのVB6アプリを作ってWindows11で実行したけど特になんもおきなかったね。
      制御文字になっちゃうとか左右逆転コードとか何か特殊な修飾文字ついてる時に起きるんじゃないのかな。
      非Asciiてだけで落ちるわけではない模様。

      親コメント
      • by Anonymous Coward

        システムロケールに依存するとかじゃないの。

      • by Anonymous Coward

        It is the use of non-ASCII characters not in app names but in registry keys that is causing the issue. In the case of Cốc Cốc browser, it would appear to be the ố character that is causing problems, while the newly added warning for Aplicação Autenticação.gov features the characters ç and ã.

        修飾文字かなと思ったけど、サロゲートでもない普通の文字みたい。

      • by Anonymous Coward

        見てみたけど、殆ど空っぽだな??

      • そうだレジストリやめてINIファイルにもどそう

    • by Anonymous Coward

      いまだにASCII文字以外ダメってほうが時代遅れだと思うけどね
      Unicode文字くらい使えるようにしてくんないと

      • by Anonymous Coward

        いいよ英数字で
        ソースやDBテーブルが日本語なの気持ち悪いし

        • by Anonymous Coward

          いっぱい触れば慣れて気持ちよくなるから大丈夫

          • by Anonymous Coward

            おまわりさんこいつです

    • by Anonymous Coward

      /etc/ の下に多バイト文字のディレクトリやファイル作っても問題ないし、少なくともWin95からWin10までは全く問題ないよ。
      むしろ、いまどきASCII以外を扱えないようなOSのほうが歪だよ。

      レジストリに関しては、Win95でも UTF-16だし、Win11でも、UTF-16なのは変わらず。
      UTF-16のデータで、ASCIIコード以外でおかしくなるって実装のほうが、かなり変わったことしてるはず。

      • by jzkey (47353) on 2021年10月14日 14時45分 (#4132123)

        フォレンジックの記事とかでレジストリのファイル形式を解説してるのを見ると、キー保存形はAsciiなんだよね。
        たぶんキーがAscii Onlyのみで構成されるときの最適化なんだろうけど、そこらのコードの改造をしくじったのかな?

        親コメント
        • by Anonymous Coward

          レジストリエディターで作成した.regファイルをバイナリエディターで開いてみ? UTF-16を使っているから。

          • by Anonymous Coward

            .regファイルは単に拡張子が.regのテキストファイルであって、レジストリの実体じゃないぞ……
            メモ帳で開いてみ?バイナリデータじゃないから軽く開けるから

            せめて System32/config/SYSTEM とか NTUSER.DAT とか見よーや
            で、キーの値は Ascii か UTF-16LE なので最適化にミスってるかもという考察は別にありだと思うぞ

      • by Anonymous Coward

        状況を見るに多分アプリ側の問題な気がする

        • by Anonymous Coward

          BSoDを起こしている時点でOSの問題(アプリが独自のドライバーをインストールしたりしていない限り)。

      • by Anonymous Coward

        Windowsでユーザー名を全角日本語にしてると動作不良起こすゲームなんて今でも珍しくない
        OSが大丈夫でもアプリ側が駄目なパターン
        こういうの見てると、多言語対応してるから平気で使っていこうなんて言いにくい

      • by Anonymous Coward

        かなり微妙な書き方なんで、わかってて書いてるのかとも思うが。

        UTF-8で処理するプログラムをWindowsへ持っていくとASCIIじゃないと
        動かないことがある、と聞いた。
        Windows10のどこからかは大丈夫だとかなんとか……

    • by Anonymous Coward
      /etcに日本語名のディレクトリがあるくらいで動かなくなるOSのがよっぽど歪なんじゃないかな
    • by Anonymous Coward

      だが、日本語ファイル名があったとしても、起動しなくなるってどういうこと?
      サービスが一つ二つならわかるけど、カーネルパニックって。

    • by Anonymous Coward

      最初からならまだしも、そんな基本的なところで何で今更バカになるんだろうな
      ゼロから書き直してテストもしてないなんてことは無いだろうし

  • by Anonymous Coward on 2021年10月14日 12時29分 (#4131977)

    Microsoftがマルチランゲージ向けのテストをろくにしていないというのが丸わかりだ。

  • by Anonymous Coward on 2021年10月14日 12時34分 (#4131982)

    てかNTカーネルは全部UTF-16(少なくとも16-bit透過)で動いてるはずなので、なんでいまさらこんなことが。

    • by Anonymous Coward

      コードページ概念残してるからじゃないの

    • by Anonymous Coward

      MSも文字列処理でコケるとは
      ほんとAppleの後追いが好きだな

  • by Anonymous Coward on 2021年10月14日 12時40分 (#4131991)

    BSODにならずに検知して適切な処置を自動で行うか、ダイアログを表示して適切な操作をオペレータに実行させる事は出来ないのか?
    NT3.5からWindows2000あたりまではそう簡単に落ちなかったように思うが。

    • by Anonymous Coward
      ダイアログを表示して適切な操作をオペレータに実行させるようなことが出来なくなったから、わざわざpanic()を呼んで故意に落としているのです。できるんなら当然やっています。
      昔は実行出来なくなったことに気づかず漫然と実行を続けていただけ。
    • by Anonymous Coward

      BSOD になるってことは、かなり強烈なぶっ壊れ方をしているかシステム権限で変な動きしているか、って感じですかね
      文字列終端の検出か文字列長の解釈あたりにミスがあって、読み書きしちゃいけない領域を触っているとか?
      # そんなところに手が入るとも思えないけどね

    • by Anonymous Coward

      > BSODにならずに検知して適切な処置を自動で行うか
       
      問題を検知して適切※に処置してるのがBSODではないのか?

      ※ 個人の感想です

  • だんな、もっと面白いものが
    Windows11には搭載されおります。
    Windowsのアップグレードゲームの隠しイベントです。

    どぞ
    「Windows 11のアクセス キーが漢字」問題がゲームボーイを使った力技で解決される
    漢字でしか起動できないないというなら漢字を使うまでよ!!!!
    https://forest.watch.impress.co.jp/docs/serial/yajiuma/1357980.html [impress.co.jp]

typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...