Windowsセキュリティに起因するダウンロードファイルの「不正な浮動小数点演算命令.」エラーとその解消策

PC編

はじめに

 今日は冒頭、何ともアンティークなお話なのですが、ファイラーの「SeeZ」ってご存じでしょうか。如月柚葉さんが開発された多機能ファイラーなのですが、現在は入手できないソフトです。配布はVectorで行われていましたが、現在は削除されています。如月柚葉さんのサイト「K Life」は生きているのですが、SeeZのダウンロードリンクがVectorなのでダウンロードできません。Vectorからは2017年7月頃を最後に削除されたようです。

 SeeZはVersion 2.04(実行ファイルタイムスタンプ:2009年5月22日)を最後に更新を中断したままです。管理人はSeeZを毎日使っており、他のファイラーに乗り換えるつもりはありません。管理人が使いたい機能が全てそろっているSeeZは手放せません。

 10年以上前のソフトですが、Windows10でも問題なく動いています。

 ところが、先ほど、SeeZで「不正な浮動小数点演算命令.」というこれまで見たことのないエラーが発生しました。今日の記事は、SeeZの話しではなく、「不正な浮動小数点演算命令.」というエラーとダウンロードしたファイルに書き込まれるゾーンIDについて書きたいと思います。

エラーの状況

 SeeZで画像ファイルを選択し、右クリック。すると、「不正な浮動小数点演算命令.」というエラーメッセージが出ます。こんなメッセージは見たことがないので、いよいよSeeZともお別れかも知れないと不安が頭をよぎります。

 問題のファイルは、管理人がスマホで撮影した画像で、スマホからGmailで転送し、パソコンにダウンロードしたものです。二枚の写真を2回に分けて送信・ダウンロードしたのですが、二枚とも右クリック時にエラーが出ます。ファイル自体は普通に開くことは可能です。ファイルが壊れているわけではありません。

 エクスプローラーでこのファイルを右クリックするとエラーは出ません。デスクトップ上にあるファイルを右クリックしても正常に表示されます。

 名前を変更してもSeeZではエラーが出ます。やはり、このエラーはSeeZでのみ発生しているようですが、果たしてそうなのか。

 なぜ、SeeZについて書いたかというと、もし、SeeZを使っていなかったらこの不具合に気づかず、原因の究明が難しかったと感じたからです。

状況を整理する

 SeeZでエラーが出るのは、今回ダウンロードした二つのファイルだけなので、SeeZの問題ではなくファイルの問題と考えられることから、状況を整理した方が良さそうです。

  • SeeZでエラーが出るのは、Gmailからダウンロードした二つの画像ファイルのみ
  • 問題のファイルをSeeZで右クリックすると上図の「不正な浮動小数点演算命令.」というエラーメッセージが出る。エクスプローラでは正常に表示される。
  • ファイルを移動しようとするとSeeZでもエクスプローラでも失敗、あるいはフリーズする。また、一度SeeZでエラー表示されると、エクスプローラーでも削除できない。この場合は、再起動し、エクスプローラーで削除する。
  • ファイルを右クリックして表示される、DLしたファイルを警告するプロパティの「セキュリティ」で「許可する」としても、SeeZのエラーは解消されない。

  以上のことから、問題は、SeeZではなく、DLしたファイルにあると推定できます。エクスプローラーでもファイルの移動に失敗するのですから、やはり、ファイル自体に何らかの不具合があると考えられます。

 これまで、スマホ撮影、Gmail送付、PCでGmailからDL、という一連の作業は何度もやってきたことで、目新しい作業は何もありません。過去の作業では、何の問題も発生していません。なぜ、今回だけエラーが発生したのでしょうか。

原因はダウンロードの仕様にあるらしい

 どの段階で画像ファイルがおかしくなったのか確認します。

 Gmailを開き、添付画像サムネイルをダブルクリックして画像を開きます。

 次に、ブラウザの表示サイズを少し小さくし、デスクトップが見えるようにします。そして、画像をデスクトップにドラッグドロップ。 これでGmailのファイルがデスクトップにダウンロードされます。SeeZでこのダウンロードされたファイルを右クリックすると正常に表示できました。ちなみに、ファイル名は「0.jpg」になっています。

 もう一つの方法で確認します。Gmailのサムネイルにオンマウスすると、下向き矢印のダウンロードアイコンが現れます。これをクリックしてファイルをダウンロードします。ファイル名は「IMG_20230115_172820.jpg」となっています。

 このファイルをSeeZで右クリックすると「不正な浮動小数点演算命令.」エラーが発生。移動しようとするとSeeZがフリーズします。エクスプローラーでは右クリックできますが、移動しようとするといつまで待っても処理が終わらない状態になります。

 この検証は、Firefoxで行っていたのですが、Chromeでも同じ不具合が再現されました。

 ということで、原因の所在がかなり絞り込まれてきました。原因はWindowsのセキュリティです。

 Windows10のセキュリティ機能で、ダウンロードしたファイルにゾーンIDが添付されます。このセキュリティマーカーとして書き込まれるタグに不具合があるようです。

 Gmailから画像ファイルをダウンロードするという同じ作業をFirefoxとChromeで行うと、違いがあります。Firefoxでダウンロードしたファイルには、上図の「セキュリティ:このファイルは・・・」が表示されます。しかし、Chromeでダウンロードしたファイルにはこの表示はありません。

 FirefoxはWindowsのセキュリティ機能を踏襲する設計になっているため、ゾーンIDが書き込まれますが、Chromeは独自の設計なので書き込まれない? 書き込まれる場合もあるので、検証できません。

バイナリーエディタで開けない 

 この「不正な浮動小数点演算命令.」エラーが発生したファイルはどうもおかしいようです。バイナリーエディタでも開くことができず、エディターがフリーズします。

 四つのバイナリーエディタで試してみましたが、とれもフリーズしてしまいます。

 ウイルスを疑いますが、ESETセキュリティで調べた限り、問題ありません。

エラーはどこ?

 やはり、ファイルがおかしいようです。では、ファイルのどこがおかしいのでしょうか。

 調べてみると、000003B3から00001365の間でエラーが発生しています。ヘッダの部分です。

JPEGファイルエディタ 0.95β

 画像自体は問題なく表示されるので、このエラーは重大なものではないのかも知れませんが、ファイルの移動できない、削除できないなどの不具合を引き起こすと考えられます。

 ゾーンIDをファイルに書き込む過程で不正な文字が書き込まれでいるのではないかと思うのですが、管理人の調査はここまでにします。

ゾーンID(ゾーン識別子)について

 ゾーンID(ゾーン識別子)は、Windowsがインターネットからダウンロードしたファイルに対し書き込む目印です。画像ファイルだけではなく、動画ファイルにも書き込まれます。

 この「ゾーン」とは?

 コントロールパネルを開き、[インターネットオプション]をクリック。[インターネットのプロパティ]が開くので[セキュリティ]タブをクリック。

 下のように、ゾーンを[インターネット]とし、[レベルのカスタマイズ]をクリック。

 [セキュリティ設定-インターネットゾーン]ダイアログが開くので、下のように設定し、[OK]をクリック。

 これで、インターネットからダウンロードしたファイルを開くときに表示される下図のようなセキュリティ警告が表示されなくなります。

 この設定をすると「セキュリティで保護されていない」と赤く表示されますし、「このゾーンの変更をしますか? 現在のセキュリティ設定では、コンピューターが危険にさらされます」と確認の画面が表示されます。「はい」をクリックします。

 WindowsのゾーンID機能がどれだけ有効化は分かりません。はっきり言えば、何の役にも立っていない迷惑機能だと管理人は考えています。その証拠に、インターネットからダウンロードしたファイルでもゾーンIDが書き込まれていない場合があるからです。これでは、Windowsの言葉を借りれば、「インターネットからDLしたファイルにゾーンIDが書き込まれていないので、コンピューターが危険にさらされています」、となります。

 もともとWindowsのセキュリティを信用している人は皆無だから、別途、セキュリティソフトを導入しています。Windowsの「セキュリティで保護されていない」の意味は、結局、「インターネットからダウンロードしたファイルを開こうとしています。開きますか?」の警告が表示されなくなるだけのこと。

 不安な方はこのような設定をしなければよいだけです。

 これで、ゾーンIDを使ったWindowsの迷惑セキュリティ機能を回避できます。

ゾーンIDを添付されないように設定する方法

 個人使用のパソコンの場合、インターネットからダウンロードしたファイルにゾーンIDが添付されるのは迷惑以外の何者でもありません。そこで、ゾーンIDが添付されないように設定します。

 レジストリの修正になるので、操作は慎重に。レジストリエディタは、値を入力した時点でそれが反映されます。リターンキーを押すまで確定しない他のソフトとは違います。くれぐれも慎重に操作して下さい。

1. [WIN]+[R]で、[ファイル名を指定して実行]ダイアログを開き、[regedit]と入力して[OK]。

2. ユーザーアカウント制御画面が表示されるので[はい]をクリック。レジストリエディタが起動します。

3. [ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Attachments ]と辿っていきます。

4. 右ペインにある[SaveZoneInformation]を右クリック。 ⇒ 開いたリストの[修正]をクリック。

5. [DWORD(32ビット)値の編集]画面が開くので、[値のデータ]を[2]から[1]に変更して、[OK]。

6. レジストリエディタ画面右上の[X]をクリックしてレジストリエディタを閉じます。

 以上です。

おわりに

 今回の不具合は、実態がよく分かりません。再現できない場合があるからです。この操作をすればこうなる、とは限らないことが問題を難しくしています。

 Firefoxのアドオンが影響している可能性があるため、全てのアドオンを停止して検証しましたが、エラーは再現されました。ChromeとFirefoxで明らかにエラーの状況が異なるのですが、それが再現できない。なんだこれ? の世界です。

 たぶん、誰も気づいていない不具合。そのうち、大問題に発展するかも知れません。

 管理人が気になっていることは、Gmailから問題のファイルをダウンロードするときに失敗する場合があることです。過去にこんなことは一度も経験していません。もしかしたら、Gmailに問題があるのかも。

参考:

添付ファイル マネージャーの構成」、マイクロソフトサポート